groovy for-in parser fix
[idea/community.git] / plugins / groovy / src / org / jetbrains / plugins / groovy / lang / lexer / TokenSets.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.jetbrains.plugins.groovy.lang.lexer;
18
19 import com.intellij.psi.tree.TokenSet;
20
21 /**
22  * Utility classdef, tha contains various useful TokenSets
23  *
24  * @author ilyas
25  */
26 public abstract class TokenSets implements GroovyTokenTypes {
27
28   public static TokenSet COMMENTS_TOKEN_SET = TokenSet.create(
29       mSL_COMMENT,
30       mML_COMMENT,
31       GROOVY_DOC_COMMENT
32   );
33
34   public static TokenSet SEPARATORS = TokenSet.create(
35       mNLS,
36       mSEMI
37   );
38
39
40   public static TokenSet WHITE_SPACE_TOKEN_SET = TokenSet.create(
41       mWS,
42       mGDOC_WHITESPACE
43   );
44
45   public static TokenSet SUSPICIOUS_EXPRESSION_STATEMENT_START_TOKEN_SET = TokenSet.create(
46       mMINUS,
47       mPLUS,
48       mLBRACK,
49       mLPAREN,
50       mLCURLY
51   );
52
53   public static final TokenSet NUMBERS = TokenSet.create(mNUM_INT,
54       mNUM_BIG_DECIMAL,
55       mNUM_BIG_INT,
56       mNUM_DOUBLE,
57       mNUM_FLOAT,
58       mNUM_LONG);
59
60
61   public static final TokenSet CONSTANTS = TokenSet.create(
62       mNUM_INT,
63       mNUM_BIG_DECIMAL,
64       mNUM_BIG_INT,
65       mNUM_DOUBLE,
66       mNUM_FLOAT,
67       mNUM_LONG,
68       kTRUE,
69       kFALSE,
70       kNULL,
71       mSTRING_LITERAL,
72       mGSTRING_LITERAL,
73       mREGEX_LITERAL
74   );
75
76   public static final TokenSet BUILT_IN_TYPE = TokenSet.create(
77       kVOID,
78       kBOOLEAN,
79       kBYTE,
80       kCHAR,
81       kSHORT,
82       kINT,
83       kFLOAT,
84       kLONG,
85       kDOUBLE
86   );
87
88   public static TokenSet KEYWORD_REFERENCE_NAMES = TokenSet.orSet(TokenSet.create(
89       kCLASS,
90       kIN,
91       kAS,
92       kDEF,
93       kIF,
94       kELSE,
95       kFOR,
96       kWHILE,
97       kSWITCH,
98       kTRY,
99       kCATCH,
100       kFINALLY,
101       kSTATIC,
102       kDEFAULT
103   ), BUILT_IN_TYPE);
104
105   public static final TokenSet PROPERTY_NAMES = TokenSet.create(mIDENT, mSTRING_LITERAL, mGSTRING_LITERAL);
106
107   public static TokenSet REFERENCE_NAMES = TokenSet.orSet(KEYWORD_REFERENCE_NAMES, PROPERTY_NAMES);
108
109
110   public static TokenSet VISIBILITY_MODIFIERS = TokenSet.create(
111       kPRIVATE,
112       kPROTECTED,
113       kPUBLIC
114   );
115
116   public static TokenSet MODIFIERS = TokenSet.create(
117       kABSTRACT,
118       kPRIVATE,
119       kPUBLIC,
120       kPROTECTED,
121       kSTATIC,
122       kTRANSIENT,
123       kFINAL,
124       kABSTRACT,
125       kNATIVE,
126       kSYNCHRONIZED,
127       kSTRICTFP,
128       kVOLATILE,
129       kSTRICTFP
130   );
131
132   public static TokenSet STRING_LITERALS = TokenSet.create(
133       mSTRING_LITERAL,
134       mREGEX_LITERAL,
135       mGSTRING_LITERAL
136   );
137
138   public static TokenSet FOR_IN_DELIMITERS = TokenSet.create(kIN, mCOLON);
139 }