diff --git a/.idea/ant.xml b/.idea/ant.xml
index 2581ca3fe84..dca320aa923 100644
--- a/.idea/ant.xml
+++ b/.idea/ant.xml
@@ -2,6 +2,14 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 00000000000..22221267f8b
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,350 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 00000000000..3b312839bf2
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 6159fa0c023..045cd2dcb39 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -23,7 +23,7 @@
http://www.w3.org/1999/xhtml
-
+
diff --git a/.idea/projectCodeStyle.xml b/.idea/projectCodeStyle.xml
new file mode 100644
index 00000000000..d2909863543
--- /dev/null
+++ b/.idea/projectCodeStyle.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/idea/META-INF/plugin.xml b/idea/META-INF/plugin.xml
new file mode 100644
index 00000000000..9584e7bc7b5
--- /dev/null
+++ b/idea/META-INF/plugin.xml
@@ -0,0 +1,22 @@
+
+ Jet
+ Jet Language support
+ 1.0
+ JetBrains
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/idea/buildLexer.xml b/idea/buildLexer.xml
new file mode 100644
index 00000000000..5f9bb7afa20
--- /dev/null
+++ b/idea/buildLexer.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/idea/idea.iml b/idea/idea.iml
index 60a321a1ac4..5da9bde713e 100644
--- a/idea/idea.iml
+++ b/idea/idea.iml
@@ -1,11 +1,12 @@
-
+
+
-
+
diff --git a/idea/src/org/jetbrains/jet/lang/JetFileFactory.java b/idea/src/org/jetbrains/jet/lang/JetFileFactory.java
new file mode 100644
index 00000000000..2f162c1dcb2
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lang/JetFileFactory.java
@@ -0,0 +1,15 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lang;
+
+import com.intellij.openapi.fileTypes.FileTypeConsumer;
+import com.intellij.openapi.fileTypes.FileTypeFactory;
+import org.jetbrains.annotations.NotNull;
+
+public class JetFileFactory extends FileTypeFactory {
+ @Override
+ public void createFileTypes(@NotNull FileTypeConsumer consumer) {
+ consumer.consume(JetFileType.INSTANCE, "jet;jetl;jets");
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lang/JetFileType.java b/idea/src/org/jetbrains/jet/lang/JetFileType.java
new file mode 100644
index 00000000000..2865a7fd09a
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lang/JetFileType.java
@@ -0,0 +1,38 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lang;
+
+import com.intellij.lang.Language;
+import com.intellij.openapi.fileTypes.LanguageFileType;
+import com.intellij.util.Icons;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
+
+public class JetFileType extends LanguageFileType {
+ public static final JetFileType INSTANCE = new JetFileType();
+
+ private JetFileType() {
+ super(JetLanguage.INSTANCE);
+ }
+
+ @NotNull
+ public String getName() {
+ return "jet";
+ }
+
+ @NotNull
+ public String getDescription() {
+ return "Jet Language";
+ }
+
+ @NotNull
+ public String getDefaultExtension() {
+ return "jet";
+ }
+
+ public Icon getIcon() {
+ return Icons.PROJECT_ICON;
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lang/JetHighlighter.java b/idea/src/org/jetbrains/jet/lang/JetHighlighter.java
new file mode 100644
index 00000000000..c884d9ed437
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lang/JetHighlighter.java
@@ -0,0 +1,86 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lang;
+
+import com.intellij.lexer.Lexer;
+import com.intellij.openapi.editor.HighlighterColors;
+import com.intellij.openapi.editor.SyntaxHighlighterColors;
+import com.intellij.openapi.editor.colors.TextAttributesKey;
+import com.intellij.openapi.fileTypes.SyntaxHighlighterBase;
+import com.intellij.psi.tree.IElementType;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.jet.lexer.JetLexer;
+import org.jetbrains.jet.lexer.JetTokens;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class JetHighlighter extends SyntaxHighlighterBase {
+ private static final Map keys1;
+ private static final Map keys2;
+
+ static final TextAttributesKey JET_KEYWORD = TextAttributesKey.createTextAttributesKey(
+ "JET.KEYWORD",
+ SyntaxHighlighterColors.KEYWORD.getDefaultAttributes()
+ );
+
+ static final TextAttributesKey JET_SOFT_KEYWORD = TextAttributesKey.createTextAttributesKey(
+ "JET.SOFT.KEYWORD",
+ SyntaxHighlighterColors.KEYWORD.getDefaultAttributes()
+ );
+
+ static final TextAttributesKey JET_NUMBER = TextAttributesKey.createTextAttributesKey(
+ "JET.NUMBER",
+ SyntaxHighlighterColors.NUMBER.getDefaultAttributes()
+ );
+
+ static final TextAttributesKey JET_STRING = TextAttributesKey.createTextAttributesKey(
+ "JET.STRING",
+ SyntaxHighlighterColors.STRING.getDefaultAttributes()
+ );
+
+ static final TextAttributesKey JET_COMMENT = TextAttributesKey.createTextAttributesKey(
+ "JET.COMMENT",
+ SyntaxHighlighterColors.LINE_COMMENT.getDefaultAttributes()
+ );
+
+ static final TextAttributesKey JET_BAD_CHARACTER = TextAttributesKey.createTextAttributesKey(
+ "JET.BADCHARACTER",
+ HighlighterColors.BAD_CHARACTER.getDefaultAttributes()
+ );
+
+
+
+
+
+
+ @NotNull
+ public Lexer getHighlightingLexer() {
+ return new JetLexer();
+ }
+
+ @NotNull
+ public TextAttributesKey[] getTokenHighlights(IElementType tokenType) {
+ return pack(keys1.get(tokenType), keys2.get(tokenType));
+ }
+
+ static {
+ keys1 = new HashMap();
+ keys2 = new HashMap();
+
+
+ fillMap(keys1, JetTokens.KEYWORDS, JET_KEYWORD);
+
+ keys1.put(JetTokens.INTEGER_LITERAL, JET_NUMBER);
+ keys1.put(JetTokens.FLOAT_LITERAL, JET_NUMBER);
+
+ keys1.put(JetTokens.STRING_LITERAL, JET_STRING);
+ keys1.put(JetTokens.CHARACTER_LITERAL, JET_STRING);
+ keys1.put(JetTokens.RAW_STRING_LITERAL, JET_STRING);
+
+ keys1.put(JetTokens.EOL_COMMENT, JET_COMMENT);
+ keys1.put(JetTokens.BLOCK_COMMENT, JET_COMMENT);
+ keys1.put(JetTokens.DOC_COMMENT, JET_COMMENT);
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lang/JetLanguage.java b/idea/src/org/jetbrains/jet/lang/JetLanguage.java
new file mode 100644
index 00000000000..e91f287972f
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lang/JetLanguage.java
@@ -0,0 +1,26 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lang;
+
+import com.intellij.lang.Language;
+import com.intellij.openapi.fileTypes.SingleLazyInstanceSyntaxHighlighterFactory;
+import com.intellij.openapi.fileTypes.SyntaxHighlighter;
+import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
+import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.NotNull;
+
+public class JetLanguage extends Language {
+ public static JetLanguage INSTANCE = new JetLanguage();
+
+ private JetLanguage() {
+ super("jet");
+
+ SyntaxHighlighterFactory.LANGUAGE_FACTORY.addExplicitExtension(this, new SingleLazyInstanceSyntaxHighlighterFactory() {
+ @NotNull
+ protected SyntaxHighlighter createHighlighter() {
+ return new JetHighlighter();
+ }
+ });
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lexer/Jet.flex b/idea/src/org/jetbrains/jet/lexer/Jet.flex
index c6377c9d7b6..8c9bc6d8541 100644
--- a/idea/src/org/jetbrains/jet/lexer/Jet.flex
+++ b/idea/src/org/jetbrains/jet/lexer/Jet.flex
@@ -5,6 +5,7 @@ import com.intellij.lexer.*;
import com.intellij.psi.*;
import com.intellij.psi.tree.IElementType;
+import org.jetbrains.jet.lexer.JetTokens;
%%
@@ -19,216 +20,135 @@ import com.intellij.psi.tree.IElementType;
DIGIT=[0-9]
HEX_DIGIT=[0-9A-Fa-f]
WHITE_SPACE_CHAR=[\ \n\t\f]
-BINARY_DIGIT=[0-1]
IDENTIFIER=[:jletter:] [:jletterdigit:]*
-EOL_ESC=\\[\ \t]*\n
-NON_EOL=[^\n]|{EOL_ESC}
-
-BLOCK_COMMENT=("/*" {COMMENT_TAIL})|"/*"
+BLOCK_COMMENT=("/*"[^"*"]{COMMENT_TAIL})|"/*"
+DOC_COMMENT="/*""*"+("/"|([^"/""*"]{COMMENT_TAIL}))?
COMMENT_TAIL=([^"*"]*("*"+[^"*""/"])?)*("*"+"/")?
-EOL_COMMENT="/""/"{NON_EOL}*
+EOL_COMMENT="/""/"[^\n]*
-INTEGER_LITERAL=({DECIMAL_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}|{BINARY_INTEGER_LITERAL})
+INTEGER_LITERAL={DECIMAL_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}|{BIN_INTEGER_LITERAL}
DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT})*))
HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT})*
-BINARY_INTEGER_LITERAL=0[Bb]({BINARY_DIGIT})+
+BIN_INTEGER_LITERAL=0[Bb]({DIGIT})*
+LONG_LITERAL=({INTEGER_LITERAL})[Ll]
FLOAT_LITERAL=(({FLOATING_POINT_LITERAL1})[Ff])|(({FLOATING_POINT_LITERAL2})[Ff])|(({FLOATING_POINT_LITERAL3})[Ff])|(({FLOATING_POINT_LITERAL4})[Ff])
-DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Ll]?)|(({FLOATING_POINT_LITERAL2})[Ll]?)|(({FLOATING_POINT_LITERAL3})[Ll]?)|(({FLOATING_POINT_LITERAL4})[Ll])
+DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Dd]?)|(({FLOATING_POINT_LITERAL2})[Dd]?)|(({FLOATING_POINT_LITERAL3})[Dd]?)|(({FLOATING_POINT_LITERAL4})[Dd])
FLOATING_POINT_LITERAL1=({DIGIT})+"."({DIGIT})*({EXPONENT_PART})?
FLOATING_POINT_LITERAL2="."({DIGIT})+({EXPONENT_PART})?
FLOATING_POINT_LITERAL3=({DIGIT})+({EXPONENT_PART})
FLOATING_POINT_LITERAL4=({DIGIT})+
EXPONENT_PART=[Ee]["+""-"]?({DIGIT})*
-HEX_FLOAT_LITERAL={HEX_SIGNIFICANT}{BINARY_EXPONENT}[Ff]
-HEX_DOUBLE_LITERAL={HEX_SIGNIFICANT}{BINARY_EXPONENT}[Ll]?
+HEX_FLOAT_LITERAL={HEX_SIGNIFICAND}{BINARY_EXPONENT}[Ff]
+HEX_DOUBLE_LITERAL={HEX_SIGNIFICAND}{BINARY_EXPONENT}[Dd]?
BINARY_EXPONENT=[Pp][+-]?{DIGIT}+
-HEX_SIGNIFICANT={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+
+HEX_SIGNIFICAND={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+
-CHARACTER_LITERAL=[L]?"'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
+CHARACTER_LITERAL="'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
STRING_LITERAL=\"([^\\\"\n]|{ESCAPE_SEQUENCE})*(\"|\\)?
-ESCAPE_SEQUENCE=\\[^\n]|{EOL_ESC}
+ESCAPE_SEQUENCE=\\[^\n]
-NON_EOL_WS=[\ \t]|{EOL_ESC}
-PRP=# {NON_EOL_WS}*
-
-DIRECTIVE_CONTENT=({NON_EOL}|{BLOCK_COMMENT})*
-
-%state DIRECTIVE
+// ANY_ESCAPE_SEQUENCE = \\[^]
+THREE_QUO = (\"\"\")
+ONE_TWO_QUO = (\"[^\"]) | (\"\"[^\"])
+QUO_STRING_CHAR = [^\"] | {ONE_TWO_QUO}
+RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
%%
+ {BLOCK_COMMENT} { return JetTokens.BLOCK_COMMENT; }
+ {DOC_COMMENT} { return JetTokens.DOC_COMMENT; }
- {BLOCK_COMMENT} { return OCTokenTypes.BLOCK_COMMENT; }
+ ({WHITE_SPACE_CHAR})+ { return JetTokens.WHITE_SPACE; }
- {DIRECTIVE_CONTENT} {return OCTokenTypes.DIRECTIVE_CONTENT; }
- ({WHITE_SPACE_CHAR}|{EOL_ESC})+ { yybegin(YYINITIAL); return TokenType.WHITE_SPACE; }
+ {EOL_COMMENT} { return JetTokens.EOL_COMMENT; }
- {EOL_COMMENT} { return OCTokenTypes.EOL_COMMENT; }
+ {INTEGER_LITERAL} { return JetTokens.INTEGER_LITERAL; }
- {INTEGER_LITERAL} { return OCTokenTypes.INTEGER_LITERAL; }
+ {FLOAT_LITERAL} { return JetTokens.FLOAT_LITERAL; }
+ {HEX_FLOAT_LITERAL} { return JetTokens.FLOAT_LITERAL; }
+ {DOUBLE_LITERAL} { return JetTokens.FLOAT_LITERAL; }
+ {HEX_DOUBLE_LITERAL} { return JetTokens.FLOAT_LITERAL; }
- {FLOAT_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
- {HEX_FLOAT_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
- {DOUBLE_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
- {HEX_DOUBLE_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
+ {CHARACTER_LITERAL} { return JetTokens.CHARACTER_LITERAL; }
+ {STRING_LITERAL} { return JetTokens.STRING_LITERAL; }
+ {RAW_STRING_LITERAL} { return JetTokens.RAW_STRING_LITERAL; }
- {CHARACTER_LITERAL} { return OCTokenTypes.CHARACTER_LITERAL; }
- "@" {STRING_LITERAL} { return OCTokenTypes.NSSTRING_LITERAL; }
- {STRING_LITERAL} { return OCTokenTypes.STRING_LITERAL; }
+ "namespace" { return JetTokens.NAMESPACE_KEYWORD ;}
+ "import" { return JetTokens.IMPORT_KEYWORD ;}
+ "as" { return JetTokens.AS_KEYWORD ;}
+ "type" { return JetTokens.TYPE_KEYWORD ;}
+ "class" { return JetTokens.CLASS_KEYWORD ;}
+ "this" { return JetTokens.THIS_KEYWORD ;}
+ "val" { return JetTokens.VAL_KEYWORD ;}
+ "var" { return JetTokens.VAR_KEYWORD ;}
+ "fun" { return JetTokens.FUN_KEYWORD ;}
+ "decomposer" { return JetTokens.DECOMPOSER_KEYWORD ;}
+ "extension" { return JetTokens.EXTENSION_KEYWORD ;}
+ "for" { return JetTokens.FOR_KEYWORD ;}
+ "null" { return JetTokens.NULL_KEYWORD ;}
+ "typeof" { return JetTokens.TYPEOF_KEYWORD ;}
+ "new" { return JetTokens.NEW_KEYWORD ;}
+ "true" { return JetTokens.TRUE_KEYWORD ;}
+ "false" { return JetTokens.FALSE_KEYWORD ;}
+ "is" { return JetTokens.IS_KEYWORD ;}
+ "isnot" { return JetTokens.ISNOT_KEYWORD ;}
+ "in" { return JetTokens.IN_KEYWORD ;}
+ "throw" { return JetTokens.THROW_KEYWORD ;}
+ "return" { return JetTokens.RETURN_KEYWORD ;}
+ "break" { return JetTokens.BREAK_KEYWORD ;}
+ "continue" { return JetTokens.CONTINUE_KEYWORD ;}
+ "object" { return JetTokens.OBJECT_KEYWORD ;}
+ "if" { return JetTokens.IF_KEYWORD ;}
+ "else" { return JetTokens.ELSE_KEYWORD ;}
+ "while" { return JetTokens.WHILE_KEYWORD ;}
+ "do" { return JetTokens.DO_KEYWORD ;}
+ "match" { return JetTokens.MATCH_KEYWORD ;}
- {PRP} "if" { yybegin(DIRECTIVE); return OCTokenTypes.IF_DIRECTIVE ;}
- {PRP} "ifdef" { yybegin(DIRECTIVE); return OCTokenTypes.IFDEF_DIRECTIVE ;}
- {PRP} "ifndef" { yybegin(DIRECTIVE); return OCTokenTypes.IFNDEF_DIRECTIVE ;}
- {PRP} "elif" { yybegin(DIRECTIVE); return OCTokenTypes.ELIF_DIRECTIVE ;}
- {PRP} "else" { yybegin(DIRECTIVE); return OCTokenTypes.ELSE_DIRECTIVE ;}
- {PRP} "endif" { yybegin(DIRECTIVE); return OCTokenTypes.ENDIF_DIRECTIVE ;}
- {PRP} "include" { yybegin(DIRECTIVE); return OCTokenTypes.INCLUDE_DIRECTIVE;}
- {PRP} "include_next" { yybegin(DIRECTIVE); return OCTokenTypes.INCLUDE_NEXT_DIRECTIVE;}
- {PRP} "import" { yybegin(DIRECTIVE); return OCTokenTypes.IMPORT_DIRECTIVE ;}
- {PRP} "define" { yybegin(DIRECTIVE); return OCTokenTypes.DEFINE_DIRECTIVE ;}
- {PRP} "undef" { yybegin(DIRECTIVE); return OCTokenTypes.UNDEF_DIRECTIVE ;}
- {PRP} "line" { yybegin(DIRECTIVE); return OCTokenTypes.LINE_DIRECTIVE ;}
- {PRP} "error" { yybegin(DIRECTIVE); return OCTokenTypes.ERROR_DIRECTIVE ;}
- {PRP} "warning" { yybegin(DIRECTIVE); return OCTokenTypes.WARNING_DIRECTIVE ;}
- {PRP} "pragma" { yybegin(DIRECTIVE); return OCTokenTypes.PRAGMA_DIRECTIVE ;}
- "#" {IDENTIFIER} { return OCTokenTypes.UNKNOWN_DIRECTIVE; }
- "auto" { return OCTokenTypes.AUTO_KEYWORD; }
- "break" { return OCTokenTypes.BREAK_KEYWORD; }
- "case" { return OCTokenTypes.CASE_KEYWORD; }
- "char" { return OCTokenTypes.CHAR_KEYWORD; }
- "continue" { return OCTokenTypes.CONTINUE_KEYWORD; }
- "default" { return OCTokenTypes.DEFAULT_KEYWORD; }
- "do" { return OCTokenTypes.DO_KEYWORD; }
- "double" { return OCTokenTypes.DOUBLE_KEYWORD; }
- "else" { return OCTokenTypes.ELSE_KEYWORD; }
- "enum" { return OCTokenTypes.ENUM_KEYWORD; }
- "extern" { return OCTokenTypes.EXTERN_KEYWORD; }
- "float" { return OCTokenTypes.FLOAT_KEYWORD; }
- "for" { return OCTokenTypes.FOR_KEYWORD; }
- "goto" { return OCTokenTypes.GOTO_KEYWORD; }
- "if" { return OCTokenTypes.IF_KEYWORD; }
+ {IDENTIFIER} { return JetTokens.IDENTIFIER; }
- "const" { return OCTokenTypes.CONST_KEYWORD; }
- "__const" { return OCTokenTypes.CONST_KEYWORD; }
- "__const__" { return OCTokenTypes.CONST_KEYWORD; }
+ "[" { return JetTokens.LBRACKET ; }
+ "]" { return JetTokens.RBRACKET ; }
+ "{" { return JetTokens.LBRACE ; }
+ "}" { return JetTokens.RBRACE ; }
+ "(" { return JetTokens.LPAR ; }
+ ")" { return JetTokens.RPAR ; }
+ "." { return JetTokens.DOT ; }
+ "++" { return JetTokens.PLUSPLUS ; }
+ "--" { return JetTokens.MINUSMINUS; }
+ "*" { return JetTokens.MUL ; }
+ "+" { return JetTokens.PLUS ; }
+ "-" { return JetTokens.MINUS ; }
+ "!" { return JetTokens.EXCL ; }
+ "/" { return JetTokens.DIV ; }
+ "%" { return JetTokens.PERC ; }
+ "<" { return JetTokens.LT ; }
+ ">" { return JetTokens.GT ; }
+ "<=" { return JetTokens.LTEQ ; }
+ ">=" { return JetTokens.GTEQ ; }
+ "===" { return JetTokens.EQEQEQ ; }
+ "==" { return JetTokens.EQEQ ; }
+ "!=" { return JetTokens.EXCLEQ ; }
+ "&&" { return JetTokens.ANDAND ; }
+ "||" { return JetTokens.OROR ; }
+ "?." { return JetTokens.SAFE_ACCESS;}
+ "?:" { return JetTokens.ELVIS ; }
+ ".*" { return JetTokens.MAP ; }
+ ".?" { return JetTokens.FILTER ; }
+ "?" { return JetTokens.QUEST ; }
+ ":" { return JetTokens.COLON ; }
+ ";" { return JetTokens.SEMICOLON ; }
+ ".." { return JetTokens.RANGE ; }
+ "=" { return JetTokens.EQ ; }
+ "*=" { return JetTokens.MULTEQ ; }
+ "/=" { return JetTokens.DIVEQ ; }
+ "%=" { return JetTokens.PERCEQ ; }
+ "+=" { return JetTokens.PLUSEQ ; }
+ "-=" { return JetTokens.MINUSEQ ; }
+ "," { return JetTokens.COMMA ; }
- "inline" { return OCTokenTypes.INLINE_KEYWORD; }
- "__inline" { return OCTokenTypes.INLINE_KEYWORD; }
- "__inline__" { return OCTokenTypes.INLINE_KEYWORD; }
-
- "signed" { return OCTokenTypes.SIGNED_KEYWORD; }
- "__signed" { return OCTokenTypes.SIGNED_KEYWORD; }
- "__signed__" { return OCTokenTypes.SIGNED_KEYWORD; }
-
- "volatile" { return OCTokenTypes.VOLATILE_KEYWORD; }
- "__volatile" { return OCTokenTypes.VOLATILE_KEYWORD; }
- "__volatile__" { return OCTokenTypes.VOLATILE_KEYWORD; }
-
- "int" { return OCTokenTypes.INT_KEYWORD; }
- "long" { return OCTokenTypes.LONG_KEYWORD; }
- "register" { return OCTokenTypes.REGISTER_KEYWORD; }
- "restrict" { return OCTokenTypes.RESTRICT_KEYWORD; }
- "__strong" { return OCTokenTypes.STRONG_KEYWORD; }
- "__weak" { return OCTokenTypes.WEAK_KEYWORD; }
- "__block" { return OCTokenTypes.BLOCK_KEYWORD; }
- "return" { return OCTokenTypes.RETURN_KEYWORD; }
- "short" { return OCTokenTypes.SHORT_KEYWORD; }
- "sizeof" { return OCTokenTypes.SIZEOF_KEYWORD; }
- "__alignof__" { return OCTokenTypes.ALIGNOF_KEYWORD; }
- "__typeof__" { return OCTokenTypes.TYPEOF_KEYWORD; }
- "static" { return OCTokenTypes.STATIC_KEYWORD; }
- "struct" { return OCTokenTypes.STRUCT_KEYWORD; }
- "switch" { return OCTokenTypes.SWITCH_KEYWORD; }
- "typedef" { return OCTokenTypes.TYPEDEF_KEYWORD; }
- "union" { return OCTokenTypes.UNION_KEYWORD; }
- "unsigned" { return OCTokenTypes.UNSIGNED_KEYWORD; }
- "void" { return OCTokenTypes.VOID_KEYWORD; }
- "while" { return OCTokenTypes.WHILE_KEYWORD; }
- "_Bool" { return OCTokenTypes._BOOL_KEYWORD; }
- "_Complex" { return OCTokenTypes._COMPLEX_KEYWORD; }
- "_Imaginary" { return OCTokenTypes._IMAGINARY_KEYWORD; }
- "__attribute__" { return OCTokenTypes.__ATTRIBUTE_KEYWORD; }
- "__asm" { return OCTokenTypes.__ASM_KEYWORD; }
-
- "@interface" { return OCTokenTypes.INTERFACE_KEYWORD ; }
- "@implementation" { return OCTokenTypes.IMPLEMENTATION_KEYWORD; }
- "@protocol" { return OCTokenTypes.PROTOCOL_KEYWORD ; }
- "@end" { return OCTokenTypes.END_KEYWORD ; }
- "@private" { return OCTokenTypes.PRIVATE_KEYWORD ; }
- "@protected" { return OCTokenTypes.PROTECTED_KEYWORD ; }
- "@public" { return OCTokenTypes.PUBLIC_KEYWORD ; }
- "@package" { return OCTokenTypes.PACKAGE_KEYWORD ; }
- "@optional" { return OCTokenTypes.OPTIONAL_KEYWORD ; }
- "@required" { return OCTokenTypes.REQUIRED_KEYWORD ; }
- "@try" { return OCTokenTypes.TRY_KEYWORD ; }
- "@throw" { return OCTokenTypes.THROW_KEYWORD ; }
- "@catch" { return OCTokenTypes.CATCH_KEYWORD ; }
- "@finally" { return OCTokenTypes.FINALLY_KEYWORD ; }
- "@class" { return OCTokenTypes.CLASS_KEYWORD ; }
- "@selector" { return OCTokenTypes.SELECTOR_KEYWORD ; }
- "@encode" { return OCTokenTypes.ENCODE_KEYWORD ; }
- "@synchronized" { return OCTokenTypes.SYNCHRONIZED_KEYWORD ; }
- "@property" { return OCTokenTypes.PROPERTY_KEYWORD ; }
- "@synthesize" { return OCTokenTypes.SYNTHESIZE_KEYWORD ; }
- "@dynamic" { return OCTokenTypes.DYNAMIC_KEYWORD ; }
- "@" {IDENTIFIER} { return OCTokenTypes.UNKNOWN_AT_KEYWORD ; }
-
- {IDENTIFIER} { return OCTokenTypes.IDENTIFIER; }
-
- "[" { return OCTokenTypes.LBRACKET ; }
- "]" { return OCTokenTypes.RBRACKET ; }
- "{" { return OCTokenTypes.LBRACE ; }
- "}" { return OCTokenTypes.RBRACE ; }
- "(" { return OCTokenTypes.LPAR ; }
- ")" { return OCTokenTypes.RPAR ; }
- "." { return OCTokenTypes.DOT ; }
- "->" { return OCTokenTypes.DEREF ; }
- "++" { return OCTokenTypes.PLUSPLUS ; }
- "--" { return OCTokenTypes.MINUSMINUS; }
- "&" { return OCTokenTypes.AND ; }
- "*" { return OCTokenTypes.MUL ; }
- "+" { return OCTokenTypes.PLUS ; }
- "-" { return OCTokenTypes.MINUS ; }
- "~" { return OCTokenTypes.TILDE ; }
- "!" { return OCTokenTypes.EXCL ; }
- "/" { return OCTokenTypes.DIV ; }
- "%" { return OCTokenTypes.PERC ; }
- "<<" { return OCTokenTypes.LTLT ; }
- ">>" { return OCTokenTypes.GTGT ; }
- "<" { return OCTokenTypes.LT ; }
- ">" { return OCTokenTypes.GT ; }
- "<=" { return OCTokenTypes.LTEQ ; }
- ">=" { return OCTokenTypes.GTEQ ; }
- "==" { return OCTokenTypes.EQEQ ; }
- "!=" { return OCTokenTypes.EXCLEQ ; }
- "^" { return OCTokenTypes.XOR ; }
- "|" { return OCTokenTypes.OR ; }
- "&&" { return OCTokenTypes.ANDAND ; }
- "||" { return OCTokenTypes.OROR ; }
- "?" { return OCTokenTypes.QUEST ; }
- ":" { return OCTokenTypes.COLON ; }
- ";" { return OCTokenTypes.SEMICOLON ; }
- "..." { return OCTokenTypes.ELLIPSIS ; }
- "=" { return OCTokenTypes.EQ ; }
- "*=" { return OCTokenTypes.MULTEQ ; }
- "/=" { return OCTokenTypes.DIVEQ ; }
- "%=" { return OCTokenTypes.PERCEQ ; }
- "+=" { return OCTokenTypes.PLUSEQ ; }
- "-=" { return OCTokenTypes.MINUSEQ ; }
- "<<=" { return OCTokenTypes.LTLTEQ ; }
- ">>=" { return OCTokenTypes.GTGTEQ ; }
- "&=" { return OCTokenTypes.ANDEQ ; }
- "^=" { return OCTokenTypes.XOREQ ; }
- "|=" { return OCTokenTypes.OREQ ; }
- "," { return OCTokenTypes.COMMA ; }
- "#" { return OCTokenTypes.HASH ; }
- "<#" { return OCTokenTypes.TEMPLATE_START_MARK; }
- "#>" { return OCTokenTypes.TEMPLATE_STOP_MARK; }
- "##" { return OCTokenTypes.HASHHASH ; }
-
- . { yybegin(YYINITIAL); return TokenType.BAD_CHARACTER; }
+ . { return TokenType.BAD_CHARACTER; }
diff --git a/idea/src/org/jetbrains/jet/lexer/JetLexer.java b/idea/src/org/jetbrains/jet/lexer/JetLexer.java
new file mode 100644
index 00000000000..675a4c556ed
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lexer/JetLexer.java
@@ -0,0 +1,15 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lexer;
+
+import com.intellij.lexer.FlexAdapter;
+import com.intellij.lexer.FlexLexer;
+
+import java.io.Reader;
+
+public class JetLexer extends FlexAdapter {
+ public JetLexer() {
+ super(new _JetLexer((Reader) null));
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lexer/JetToken.java b/idea/src/org/jetbrains/jet/lexer/JetToken.java
new file mode 100644
index 00000000000..a928a4d8818
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lexer/JetToken.java
@@ -0,0 +1,17 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lexer;
+
+import com.intellij.lang.Language;
+import com.intellij.psi.tree.IElementType;
+import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.jet.lang.JetLanguage;
+
+public class JetToken extends IElementType {
+ public JetToken(@NotNull @NonNls String debugName) {
+ super(debugName, JetLanguage.INSTANCE);
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lexer/JetTokens.java b/idea/src/org/jetbrains/jet/lexer/JetTokens.java
new file mode 100644
index 00000000000..283afeaf663
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lexer/JetTokens.java
@@ -0,0 +1,132 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lexer;
+
+import com.intellij.psi.TokenType;
+import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.tree.TokenSet;
+import gnu.trove.THashSet;
+
+import java.util.Arrays;
+import java.util.Set;
+
+public interface JetTokens {
+ JetToken BLOCK_COMMENT = new JetToken("BLOCK_COMMENT");
+ JetToken DOC_COMMENT = new JetToken("DOC_COMMENT");
+ JetToken EOL_COMMENT = new JetToken("EOL_COMMENT");
+
+ IElementType WHITE_SPACE = TokenType.WHITE_SPACE;
+
+ JetToken INTEGER_LITERAL = new JetToken("INTEGER_LITERAL");
+ JetToken FLOAT_LITERAL = new JetToken("FLOAT_LITERAL");
+ JetToken CHARACTER_LITERAL = new JetToken("CHARACTER_LITERAL");
+ JetToken STRING_LITERAL = new JetToken("STRING_LITERAL");
+ JetToken RAW_STRING_LITERAL = new JetToken("RAW_STRING_LITERAL");
+
+ JetToken NAMESPACE_KEYWORD = new JetToken("NAMESPACE_KEYWORD");
+ JetToken IMPORT_KEYWORD = new JetToken("IMPORT_KEYWORD");
+ JetToken AS_KEYWORD = new JetToken("AS_KEYWORD");
+ JetToken TYPE_KEYWORD = new JetToken("TYPE_KEYWORD");
+ JetToken CLASS_KEYWORD = new JetToken("CLASS_KEYWORD");
+ JetToken THIS_KEYWORD = new JetToken("THIS_KEYWORD");
+ JetToken VAL_KEYWORD = new JetToken("VAL_KEYWORD");
+ JetToken VAR_KEYWORD = new JetToken("VAR_KEYWORD");
+ JetToken FUN_KEYWORD = new JetToken("FUN_KEYWORD");
+ JetToken DECOMPOSER_KEYWORD = new JetToken("DECOMPOSER_KEYWORD");
+ JetToken EXTENSION_KEYWORD = new JetToken("EXTENSION_KEYWORD");
+ JetToken FOR_KEYWORD = new JetToken("FOR_KEYWORD");
+ JetToken NULL_KEYWORD = new JetToken("NULL_KEYWORD");
+ JetToken TYPEOF_KEYWORD = new JetToken("TYPEOF_KEYWORD");
+ JetToken NEW_KEYWORD = new JetToken("NEW_KEYWORD");
+ JetToken TRUE_KEYWORD = new JetToken("TRUE_KEYWORD");
+ JetToken FALSE_KEYWORD = new JetToken("FALSE_KEYWORD");
+ JetToken IS_KEYWORD = new JetToken("IS_KEYWORD");
+ JetToken ISNOT_KEYWORD = new JetToken("ISNOT_KEYWORD");
+ JetToken IN_KEYWORD = new JetToken("IN_KEYWORD");
+ JetToken THROW_KEYWORD = new JetToken("THROW_KEYWORD");
+ JetToken RETURN_KEYWORD = new JetToken("RETURN_KEYWORD");
+ JetToken BREAK_KEYWORD = new JetToken("BREAK_KEYWORD");
+ JetToken CONTINUE_KEYWORD = new JetToken("CONTINUE_KEYWORD");
+ JetToken OBJECT_KEYWORD = new JetToken("OBJECT_KEYWORD");
+ JetToken IF_KEYWORD = new JetToken("IF_KEYWORD");
+ JetToken ELSE_KEYWORD = new JetToken("ELSE_KEYWORD");
+ JetToken WHILE_KEYWORD = new JetToken("WHILE_KEYWORD");
+ JetToken DO_KEYWORD = new JetToken("DO_KEYWORD");
+ JetToken MATCH_KEYWORD = new JetToken("MATCH_KEYWORD");
+
+
+ JetToken IDENTIFIER = new JetToken("IDENTIFIER");
+
+ JetToken LBRACKET = new JetToken("LBRACKET");
+ JetToken RBRACKET = new JetToken("RBRACKET");
+ JetToken LBRACE = new JetToken("LBRACE");
+ JetToken RBRACE = new JetToken("RBRACE");
+ JetToken LPAR = new JetToken("LPAR");
+ JetToken RPAR = new JetToken("RPAR");
+ JetToken DOT = new JetToken("DOT");
+ JetToken PLUSPLUS = new JetToken("PLUSPLUS");
+ JetToken MINUSMINUS = new JetToken("MINUSMINUS");
+ JetToken MUL = new JetToken("MUL");
+ JetToken PLUS = new JetToken("PLUS");
+ JetToken MINUS = new JetToken("MINUS");
+ JetToken EXCL = new JetToken("EXCL");
+ JetToken DIV = new JetToken("DIV");
+ JetToken PERC = new JetToken("PERC");
+ JetToken LT = new JetToken("LT");
+ JetToken GT = new JetToken("GT");
+ JetToken LTEQ = new JetToken("LTEQ");
+ JetToken GTEQ = new JetToken("GTEQ");
+ JetToken EQEQEQ = new JetToken("EQEQEQ");
+ JetToken EQEQ = new JetToken("EQEQ");
+ JetToken EXCLEQ = new JetToken("EXCLEQ");
+ JetToken ANDAND = new JetToken("ANDAND");
+ JetToken OROR = new JetToken("OROR");
+ JetToken SAFE_ACCESS = new JetToken("SAFE_ACCESS");
+ JetToken ELVIS = new JetToken("ELVIS");
+ JetToken MAP = new JetToken("MAP");
+ JetToken FILTER = new JetToken("FILTER");
+ JetToken QUEST = new JetToken("QUEST");
+ JetToken COLON = new JetToken("COLON");
+ JetToken SEMICOLON = new JetToken("SEMICOLON");
+ JetToken RANGE = new JetToken("RANGE");
+ JetToken EQ = new JetToken("EQ");
+ JetToken MULTEQ = new JetToken("MULTEQ");
+ JetToken DIVEQ = new JetToken("DIVEQ");
+ JetToken PERCEQ = new JetToken("PERCEQ");
+ JetToken PLUSEQ = new JetToken("PLUSEQ");
+ JetToken MINUSEQ = new JetToken("MINUSEQ");
+ JetToken COMMA = new JetToken("COMMA");
+
+ JetToken WRAPS_KEYWORD = new JetToken("wraps");
+ JetToken WHERE_KEYWORD = new JetToken("where");
+ JetToken BY_KEYWORD = new JetToken("by");
+ JetToken LAZY_KEYWORD = new JetToken("lazy");
+ JetToken GET_KEYWORD = new JetToken("get");
+ JetToken SET_KEYWORD = new JetToken("set");
+ JetToken ABSTRACT_KEYWORD = new JetToken("abstract");
+ JetToken VIRTUAL_KEYWORD = new JetToken("virtual");
+ JetToken ENUM_KEYWORD = new JetToken("enum");
+ JetToken OPEN_KEYWORD = new JetToken("open");
+ JetToken ATTRIBUTE_KEYWORD = new JetToken("attribute");
+ JetToken OVERRIDE_KEYWORD = new JetToken("override");
+ JetToken PRIVATE_KEYWORD = new JetToken("private");
+ JetToken PUBLIC_KEYWORD = new JetToken("public");
+ JetToken INTERNAL_KEYWORD = new JetToken("internal");
+ JetToken PROTECTED_KEYWORD = new JetToken("protected");
+ JetToken OUT_KEYWORD = new JetToken("out");
+ JetToken REF_KEYWORD = new JetToken("ref");
+
+ TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, IMPORT_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD,
+ THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, DECOMPOSER_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD,
+ NULL_KEYWORD, TYPEOF_KEYWORD, NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, ISNOT_KEYWORD,
+ IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
+ ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, MATCH_KEYWORD
+ );
+
+ TokenSet SOFT_KEYWORDS = TokenSet.create(WRAPS_KEYWORD, WHERE_KEYWORD, BY_KEYWORD, LAZY_KEYWORD, GET_KEYWORD,
+ SET_KEYWORD, ABSTRACT_KEYWORD, VIRTUAL_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, ATTRIBUTE_KEYWORD,
+ OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD, OUT_KEYWORD,
+ REF_KEYWORD
+ );
+}
diff --git a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java
new file mode 100644
index 00000000000..7d569480545
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java
@@ -0,0 +1,1132 @@
+/* The following code was generated by JFlex 1.4.3 on 12/10/10 9:22 PM */
+
+/* It's an automatically generated code. Do not modify it. */
+package org.jetbrains.jet.lexer;
+
+import com.intellij.lexer.*;
+import com.intellij.psi.*;
+import com.intellij.psi.tree.IElementType;
+
+import org.jetbrains.jet.lexer.JetTokens;
+
+
+/**
+ * This class is a scanner generated by
+ * JFlex 1.4.3
+ * on 12/10/10 9:22 PM from the specification file
+ * /Users/max/Projects/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex
+ */
+class _JetLexer implements FlexLexer {
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
+
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0
+ };
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\5\1\3\1\10\1\0\1\3\1\0\16\5\4\0\1\3\1\62"+
+ "\1\23\1\0\1\4\1\63\1\67\1\21\1\57\1\60\1\7\1\61"+
+ "\1\74\1\17\1\15\1\6\1\11\11\1\1\72\1\73\1\64\1\66"+
+ "\1\65\1\71\1\0\1\2\1\13\1\2\1\14\1\16\1\14\5\4"+
+ "\1\4\3\4\1\20\7\4\1\12\2\4\1\53\1\22\1\54\1\0"+
+ "\1\4\1\0\1\25\1\50\1\32\1\45\1\27\1\43\1\4\1\41"+
+ "\1\33\1\52\1\51\1\40\1\26\1\24\1\34\1\31\1\4\1\35"+
+ "\1\30\1\36\1\44\1\42\1\47\1\46\1\37\1\4\1\55\1\70"+
+ "\1\56\1\0\41\5\2\0\4\4\4\0\1\4\2\0\1\5\7\0"+
+ "\1\4\4\0\1\4\5\0\27\4\1\0\37\4\1\0\u013f\4\31\0"+
+ "\162\4\4\0\14\4\16\0\5\4\11\0\1\4\21\0\130\5\5\0"+
+ "\23\5\12\0\1\4\13\0\1\4\1\0\3\4\1\0\1\4\1\0"+
+ "\24\4\1\0\54\4\1\0\46\4\1\0\5\4\4\0\202\4\1\0"+
+ "\4\5\3\0\105\4\1\0\46\4\2\0\2\4\6\0\20\4\41\0"+
+ "\46\4\2\0\1\4\7\0\47\4\11\0\21\5\1\0\27\5\1\0"+
+ "\3\5\1\0\1\5\1\0\2\5\1\0\1\5\13\0\33\4\5\0"+
+ "\3\4\15\0\4\5\14\0\6\5\13\0\32\4\5\0\13\4\16\5"+
+ "\7\0\12\5\4\0\2\4\1\5\143\4\1\0\1\4\10\5\1\0"+
+ "\6\5\2\4\2\5\1\0\4\5\2\4\12\5\3\4\2\0\1\4"+
+ "\17\0\1\5\1\4\1\5\36\4\33\5\2\0\3\4\60\0\46\4"+
+ "\13\5\1\4\u014f\0\3\5\66\4\2\0\1\5\1\4\20\5\2\0"+
+ "\1\4\4\5\3\0\12\4\2\5\2\0\12\5\21\0\3\5\1\0"+
+ "\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0\1\4\3\0"+
+ "\4\4\2\0\1\5\1\4\7\5\2\0\2\5\2\0\3\5\11\0"+
+ "\1\5\4\0\2\4\1\0\3\4\2\5\2\0\12\5\4\4\15\0"+
+ "\3\5\1\0\6\4\4\0\2\4\2\0\26\4\1\0\7\4\1\0"+
+ "\2\4\1\0\2\4\1\0\2\4\2\0\1\5\1\0\5\5\4\0"+
+ "\2\5\2\0\3\5\13\0\4\4\1\0\1\4\7\0\14\5\3\4"+
+ "\14\0\3\5\1\0\11\4\1\0\3\4\1\0\26\4\1\0\7\4"+
+ "\1\0\2\4\1\0\5\4\2\0\1\5\1\4\10\5\1\0\3\5"+
+ "\1\0\3\5\2\0\1\4\17\0\2\4\2\5\2\0\12\5\1\0"+
+ "\1\4\17\0\3\5\1\0\10\4\2\0\2\4\2\0\26\4\1\0"+
+ "\7\4\1\0\2\4\1\0\5\4\2\0\1\5\1\4\6\5\3\0"+
+ "\2\5\2\0\3\5\10\0\2\5\4\0\2\4\1\0\3\4\4\0"+
+ "\12\5\1\0\1\4\20\0\1\5\1\4\1\0\6\4\3\0\3\4"+
+ "\1\0\4\4\3\0\2\4\1\0\1\4\1\0\2\4\3\0\2\4"+
+ "\3\0\3\4\3\0\10\4\1\0\3\4\4\0\5\5\3\0\3\5"+
+ "\1\0\4\5\11\0\1\5\17\0\11\5\11\0\1\4\7\0\3\5"+
+ "\1\0\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4"+
+ "\4\0\7\5\1\0\3\5\1\0\4\5\7\0\2\5\11\0\2\4"+
+ "\4\0\12\5\22\0\2\5\1\0\10\4\1\0\3\4\1\0\27\4"+
+ "\1\0\12\4\1\0\5\4\2\0\1\5\1\4\7\5\1\0\3\5"+
+ "\1\0\4\5\7\0\2\5\7\0\1\4\1\0\2\4\4\0\12\5"+
+ "\22\0\2\5\1\0\10\4\1\0\3\4\1\0\27\4\1\0\20\4"+
+ "\4\0\6\5\2\0\3\5\1\0\4\5\11\0\1\5\10\0\2\4"+
+ "\4\0\12\5\22\0\2\5\1\0\22\4\3\0\30\4\1\0\11\4"+
+ "\1\0\1\4\2\0\7\4\3\0\1\5\4\0\6\5\1\0\1\5"+
+ "\1\0\10\5\22\0\2\5\15\0\60\4\1\5\2\4\7\5\4\0"+
+ "\10\4\10\5\1\0\12\5\47\0\2\4\1\0\1\4\2\0\2\4"+
+ "\1\0\1\4\2\0\1\4\6\0\4\4\1\0\7\4\1\0\3\4"+
+ "\1\0\1\4\1\0\1\4\2\0\2\4\1\0\4\4\1\5\2\4"+
+ "\6\5\1\0\2\5\1\4\2\0\5\4\1\0\1\4\1\0\6\5"+
+ "\2\0\12\5\2\0\2\4\42\0\1\4\27\0\2\5\6\0\12\5"+
+ "\13\0\1\5\1\0\1\5\1\0\1\5\4\0\2\5\10\4\1\0"+
+ "\42\4\6\0\24\5\1\0\2\5\4\4\4\0\10\5\1\0\44\5"+
+ "\11\0\1\5\71\0\42\4\1\0\5\4\1\0\2\4\1\0\7\5"+
+ "\3\0\4\5\6\0\12\5\6\0\6\4\4\5\106\0\46\4\12\0"+
+ "\51\4\7\0\132\4\5\0\104\4\5\0\122\4\6\0\7\4\1\0"+
+ "\77\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\1\4\1\0"+
+ "\4\4\2\0\47\4\1\0\1\4\1\0\4\4\2\0\37\4\1\0"+
+ "\1\4\1\0\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0"+
+ "\7\4\1\0\7\4\1\0\27\4\1\0\37\4\1\0\1\4\1\0"+
+ "\4\4\2\0\7\4\1\0\47\4\1\0\23\4\16\0\11\5\56\0"+
+ "\125\4\14\0\u026c\4\2\0\10\4\12\0\32\4\5\0\113\4\3\0"+
+ "\3\4\17\0\15\4\1\0\4\4\3\5\13\0\22\4\3\5\13\0"+
+ "\22\4\2\5\14\0\15\4\1\0\3\4\1\0\2\5\14\0\64\4"+
+ "\40\5\3\0\1\4\3\0\2\4\1\5\2\0\12\5\41\0\3\5"+
+ "\2\0\12\5\6\0\130\4\10\0\51\4\1\5\126\0\35\4\3\0"+
+ "\14\5\4\0\14\5\12\0\12\5\36\4\2\0\5\4\u038b\0\154\4"+
+ "\224\0\234\4\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4"+
+ "\2\0\6\4\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4"+
+ "\1\0\37\4\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4"+
+ "\1\0\7\4\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4"+
+ "\1\0\7\4\17\0\4\5\32\0\5\5\20\0\2\4\23\0\1\4"+
+ "\13\0\4\5\6\0\6\5\1\0\1\4\15\0\1\4\40\0\22\4"+
+ "\36\0\15\5\4\0\1\5\3\0\6\5\27\0\1\4\4\0\1\4"+
+ "\2\0\12\4\1\0\1\4\3\0\5\4\6\0\1\4\1\0\1\4"+
+ "\1\0\1\4\1\0\4\4\1\0\3\4\1\0\7\4\3\0\3\4"+
+ "\5\0\5\4\26\0\44\4\u0e81\0\3\4\31\0\11\4\6\5\1\0"+
+ "\5\4\2\0\5\4\4\0\126\4\2\0\2\5\2\0\3\4\1\0"+
+ "\137\4\5\0\50\4\4\0\136\4\21\0\30\4\70\0\20\4\u0200\0"+
+ "\u19b6\4\112\0\u51a6\4\132\0\u048d\4\u0773\0\u2ba4\4\u215c\0\u012e\4\2\0"+
+ "\73\4\225\0\7\4\14\0\5\4\5\0\1\4\1\5\12\4\1\0"+
+ "\15\4\1\0\5\4\1\0\1\4\1\0\2\4\1\0\2\4\1\0"+
+ "\154\4\41\0\u016b\4\22\0\100\4\2\0\66\4\50\0\15\4\3\0"+
+ "\20\5\20\0\4\5\17\0\2\4\30\0\3\4\31\0\1\4\6\0"+
+ "\5\4\1\0\207\4\2\0\1\5\4\0\1\4\13\0\12\5\7\0"+
+ "\32\4\4\0\1\4\1\0\32\4\12\0\132\4\3\0\6\4\2\0"+
+ "\6\4\2\0\6\4\2\0\3\4\3\0\2\4\3\0\2\4\22\0"+
+ "\3\5\4\0";
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
+
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\2"+
+ "\1\7\1\10\1\11\1\12\16\3\1\13\1\14\1\15"+
+ "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+
+ "\1\26\2\1\1\27\1\30\1\31\1\32\3\33\1\34"+
+ "\1\35\1\36\1\37\1\0\2\2\1\40\1\41\1\42"+
+ "\1\43\1\44\2\11\3\12\3\3\1\45\5\3\1\46"+
+ "\1\3\1\47\1\50\12\3\1\51\2\3\1\52\1\53"+
+ "\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+
+ "\1\64\1\33\1\35\1\65\2\0\1\12\1\66\1\3"+
+ "\1\67\16\3\1\70\1\71\1\3\1\72\1\73\3\3"+
+ "\1\74\1\0\2\65\1\0\1\33\2\0\1\3\1\75"+
+ "\1\3\1\76\7\3\1\77\1\100\1\101\5\3\1\35"+
+ "\1\0\1\33\1\0\1\3\1\102\2\3\1\103\1\3"+
+ "\1\104\3\3\1\105\1\106\1\3\1\107\1\110\1\66"+
+ "\3\3\1\111\1\112\1\113\1\114\7\3\1\115\1\3"+
+ "\1\116\1\117\1\3\1\120";
+
+ private static int [] zzUnpackAction() {
+ int [] result = new int[199];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
+
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\75\0\172\0\267\0\364\0\u0131\0\u016e\0\u01ab"+
+ "\0\u01e8\0\u0225\0\u0262\0\u029f\0\u02dc\0\u0319\0\u0356\0\u0393"+
+ "\0\u03d0\0\u040d\0\u044a\0\u0487\0\u04c4\0\u0501\0\u053e\0\u057b"+
+ "\0\u05b8\0\u05f5\0\75\0\75\0\75\0\75\0\75\0\75"+
+ "\0\u0632\0\u066f\0\u06ac\0\u06e9\0\u0726\0\u0763\0\u07a0\0\u07dd"+
+ "\0\u081a\0\75\0\75\0\75\0\75\0\u0857\0\u0894\0\u08d1"+
+ "\0\u090e\0\75\0\75\0\u094b\0\u0988\0\u09c5\0\75\0\75"+
+ "\0\75\0\75\0\75\0\75\0\u0a02\0\u0a3f\0\u0a7c\0\u0ab9"+
+ "\0\u0af6\0\u0b33\0\u0b70\0\267\0\u0bad\0\u0bea\0\u0c27\0\u0c64"+
+ "\0\u0ca1\0\267\0\u0cde\0\u0d1b\0\267\0\u0d58\0\u0d95\0\u0dd2"+
+ "\0\u0e0f\0\u0e4c\0\u0e89\0\u0ec6\0\u0f03\0\u0f40\0\u0f7d\0\267"+
+ "\0\u0fba\0\u0ff7\0\75\0\75\0\75\0\75\0\75\0\75"+
+ "\0\u1034\0\75\0\75\0\75\0\75\0\u1071\0\u10ae\0\u10eb"+
+ "\0\u1128\0\u1165\0\75\0\u11a2\0\u11df\0\267\0\u121c\0\u1259"+
+ "\0\u1296\0\u12d3\0\u1310\0\u134d\0\u138a\0\u13c7\0\u1404\0\u1441"+
+ "\0\u147e\0\u14bb\0\u14f8\0\u1535\0\267\0\267\0\u1572\0\267"+
+ "\0\267\0\u15af\0\u15ec\0\u1629\0\75\0\u1666\0\u16a3\0\75"+
+ "\0\u16e0\0\u171d\0\u175a\0\u1797\0\u17d4\0\267\0\u1811\0\267"+
+ "\0\u184e\0\u188b\0\u18c8\0\u1905\0\u1942\0\u197f\0\u19bc\0\267"+
+ "\0\u19f9\0\267\0\u1a36\0\u1a73\0\u1ab0\0\u1aed\0\u1b2a\0\75"+
+ "\0\u1b67\0\u1128\0\u1ba4\0\u1be1\0\267\0\u1c1e\0\u1c5b\0\267"+
+ "\0\u1c98\0\267\0\u1cd5\0\u1d12\0\u1d4f\0\267\0\267\0\u1d8c"+
+ "\0\267\0\267\0\75\0\u1dc9\0\u1e06\0\u1e43\0\267\0\267"+
+ "\0\267\0\267\0\u1e80\0\u1ebd\0\u1efa\0\u1f37\0\u1f74\0\u1fb1"+
+ "\0\u1fee\0\267\0\u202b\0\267\0\267\0\u2068\0\267";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[199];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
+ }
+ return j;
+ }
+
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
+
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\2\1\3\1\4\1\5\1\4\1\2\1\6\1\7"+
+ "\1\5\1\10\3\4\1\11\1\4\1\12\1\4\1\13"+
+ "\1\2\1\14\1\15\1\16\1\17\1\20\2\4\1\21"+
+ "\1\22\1\23\1\24\1\25\3\4\1\26\1\27\1\4"+
+ "\1\30\1\4\1\31\1\32\2\4\1\33\1\34\1\35"+
+ "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45"+
+ "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\76\0"+
+ "\1\3\7\0\1\3\2\0\1\55\1\56\1\57\10\0"+
+ "\1\57\13\0\1\55\1\0\1\55\30\0\2\4\1\0"+
+ "\2\4\3\0\4\4\1\0\1\4\1\0\1\4\3\0"+
+ "\27\4\25\0\1\5\4\0\1\5\72\0\1\60\1\61"+
+ "\56\0\1\62\74\0\1\63\7\0\1\64\7\0\1\64"+
+ "\1\65\1\66\1\55\1\56\1\57\10\0\1\57\13\0"+
+ "\1\55\1\0\1\55\1\65\1\0\1\66\25\0\1\56"+
+ "\5\0\1\67\1\0\1\56\3\0\1\70\53\0\1\71"+
+ "\22\0\1\72\46\0\1\73\6\0\10\13\1\0\10\13"+
+ "\1\74\1\75\52\13\10\76\1\0\11\76\1\77\1\100"+
+ "\51\76\1\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\1\4\1\101\1\4\1\102"+
+ "\14\4\1\103\6\4\23\0\2\4\1\0\2\4\3\0"+
+ "\4\4\1\0\1\4\1\0\1\4\3\0\4\4\1\104"+
+ "\22\4\23\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\1\4\1\105\25\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\14\4\1\106\5\4\1\107\4\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\10\4\1\110\3\4\1\111\12\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\1\112\1\4\1\113\1\4\1\114\12\4"+
+ "\1\115\7\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\24\4\1\116\2\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\117\23\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\11\4\1\120\1\4\1\121\1\4\1\122\11\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\1\4\1\123\25\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\1\4\1\124\6\4\1\125\7\4\1\126\6\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\127\4\4\1\130\16\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\15\4\1\131\11\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\11\4\1\132\15\4\103\0\1\133\4\0\1\134"+
+ "\74\0\1\135\74\0\1\136\74\0\1\137\74\0\1\140"+
+ "\74\0\1\141\75\0\1\142\75\0\1\143\21\0\1\144"+
+ "\54\0\1\145\3\0\1\56\7\0\1\56\2\0\1\55"+
+ "\1\0\1\57\10\0\1\57\13\0\1\55\1\0\1\55"+
+ "\30\0\1\146\7\0\1\146\2\0\1\55\2\0\1\146"+
+ "\23\0\1\55\1\0\1\55\13\0\1\146\13\0\10\60"+
+ "\1\0\64\60\7\147\1\150\65\147\1\0\1\64\7\0"+
+ "\1\64\2\0\1\55\1\56\1\57\10\0\1\57\13\0"+
+ "\1\55\1\0\1\55\27\0\1\151\2\65\5\151\1\0"+
+ "\1\65\1\151\2\65\1\151\1\65\1\151\1\152\4\151"+
+ "\1\65\1\151\1\65\1\151\1\152\1\65\10\151\1\65"+
+ "\1\151\1\65\2\151\1\65\24\151\1\0\1\66\7\0"+
+ "\1\66\63\0\10\13\1\0\64\13\10\76\1\0\11\76"+
+ "\1\77\1\153\61\76\1\0\64\76\23\0\1\154\52\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\2\4\1\155\24\4\23\0\2\4\1\0"+
+ "\2\4\3\0\4\4\1\0\1\4\1\0\1\4\3\0"+
+ "\23\4\1\156\3\4\23\0\2\4\1\0\2\4\3\0"+
+ "\4\4\1\0\1\4\1\0\1\4\3\0\14\4\1\157"+
+ "\12\4\23\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\12\4\1\160\14\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\4\4\1\161\22\4\23\0\2\4\1\0"+
+ "\2\4\3\0\4\4\1\0\1\4\1\0\1\4\3\0"+
+ "\12\4\1\162\14\4\23\0\2\4\1\0\2\4\3\0"+
+ "\4\4\1\0\1\4\1\0\1\4\3\0\1\163\26\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\1\4\1\164\25\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\5\4\1\165\21\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\1\166"+
+ "\26\4\23\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\26\4\1\167\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\12\4\1\170\14\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\20\4"+
+ "\1\171\6\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\5\4\1\172\21\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\7\4\1\173\1\4\1\174\15\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\11\4\1\175\2\4\1\176\12\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\14\4\1\177\12\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\11\4\1\200\15\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\1\201"+
+ "\26\4\23\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\6\4\1\202\20\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\7\4\1\203\17\4\23\0\2\4\1\0"+
+ "\2\4\3\0\4\4\1\0\1\4\1\0\1\4\3\0"+
+ "\3\4\1\204\23\4\110\0\1\205\7\0\1\146\7\0"+
+ "\1\146\2\0\1\55\26\0\1\55\1\0\1\55\27\0"+
+ "\7\147\1\206\65\147\6\207\1\210\1\150\65\207\1\0"+
+ "\2\151\6\0\1\151\1\0\2\151\1\0\1\151\1\0"+
+ "\1\211\4\0\1\151\1\0\1\151\1\0\1\211\1\151"+
+ "\10\0\1\151\1\0\1\151\2\0\1\151\25\0\1\212"+
+ "\1\151\6\0\1\212\1\0\2\151\1\0\1\151\1\213"+
+ "\1\211\4\0\1\151\1\0\1\151\1\0\1\211\1\151"+
+ "\10\0\1\151\1\0\1\151\2\0\1\151\10\0\1\213"+
+ "\13\0\23\154\1\214\51\154\1\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\3\4"+
+ "\1\215\23\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\14\4\1\216\12\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\6\4\1\217\20\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\3\4\1\220\23\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\3\4"+
+ "\1\221\23\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\12\4\1\222\14\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\4\4\1\223\22\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\10\4\1\224\16\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\10\4"+
+ "\1\225\16\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\3\4\1\226\23\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\20\4\1\227\6\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\3\4\1\230\23\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\3\4"+
+ "\1\231\23\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\4\4\1\232\22\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\10\4\1\233\16\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\4\4\1\234\22\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\10\4"+
+ "\1\235\16\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\14\4\1\236\12\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\1\4\1\237\25\4\22\0\6\147"+
+ "\1\240\1\206\65\147\7\207\1\241\65\207\1\0\1\146"+
+ "\7\0\1\146\5\0\1\213\41\0\1\213\14\0\1\212"+
+ "\1\151\6\0\1\212\1\0\1\151\1\242\1\0\1\151"+
+ "\1\0\1\211\4\0\1\151\1\0\1\151\1\0\1\211"+
+ "\1\151\10\0\1\242\1\0\1\242\2\0\1\151\25\0"+
+ "\1\146\7\0\1\146\63\0\23\154\1\243\51\154\1\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\4\4\1\244\22\4\23\0\2\4\1\0"+
+ "\2\4\3\0\4\4\1\0\1\4\1\0\1\4\3\0"+
+ "\15\4\1\245\11\4\23\0\2\4\1\0\2\4\3\0"+
+ "\4\4\1\0\1\4\1\0\1\4\3\0\1\246\26\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\7\4\1\247\17\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\4\4\1\250\22\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\11\4"+
+ "\1\251\15\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\12\4\1\252\14\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\6\4\1\253\20\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\11\4\1\254\15\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\10\4"+
+ "\1\255\16\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\23\4\1\256\3\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\257\23\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\2\4\1\260\24\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\3\4"+
+ "\1\261\23\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\25\4\1\262\1\4"+
+ "\22\0\6\207\1\210\1\241\65\207\23\154\1\263\51\154"+
+ "\1\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\5\4\1\264\21\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\4\4\1\265\22\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\1\266"+
+ "\26\4\23\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\12\4\1\267\14\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\12\4\1\270\14\4\23\0\2\4\1\0"+
+ "\2\4\3\0\4\4\1\0\1\4\1\0\1\4\3\0"+
+ "\1\271\26\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\17\4\1\272\7\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\5\4\1\273\21\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\1\4\1\274\25\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\7\4"+
+ "\1\275\17\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\20\4\1\276\6\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\10\4\1\277\16\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\6\4\1\300\20\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\10\4"+
+ "\1\301\16\4\23\0\2\4\1\0\2\4\3\0\4\4"+
+ "\1\0\1\4\1\0\1\4\3\0\3\4\1\302\23\4"+
+ "\23\0\2\4\1\0\2\4\3\0\4\4\1\0\1\4"+
+ "\1\0\1\4\3\0\4\4\1\303\22\4\23\0\2\4"+
+ "\1\0\2\4\3\0\4\4\1\0\1\4\1\0\1\4"+
+ "\3\0\3\4\1\304\23\4\23\0\2\4\1\0\2\4"+
+ "\3\0\4\4\1\0\1\4\1\0\1\4\3\0\1\305"+
+ "\26\4\23\0\2\4\1\0\2\4\3\0\4\4\1\0"+
+ "\1\4\1\0\1\4\3\0\3\4\1\306\23\4\23\0"+
+ "\2\4\1\0\2\4\3\0\4\4\1\0\1\4\1\0"+
+ "\1\4\3\0\11\4\1\307\15\4\22\0";
+
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[8357];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
+ private static final char[] EMPTY_BUFFER = new char[0];
+ private static final int YYEOF = -1;
+ private static java.io.Reader zzReader = null; // Fake
+
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\1\0\1\11\30\1\6\11\11\1\4\11\4\1\2\11"+
+ "\1\0\2\1\6\11\36\1\6\11\1\1\4\11\3\1"+
+ "\2\0\1\11\31\1\1\11\1\0\1\1\1\11\1\0"+
+ "\1\1\2\0\23\1\1\11\1\0\1\1\1\0\17\1"+
+ "\1\11\24\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[199];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+ /** the current state of the DFA */
+ private int zzState;
+
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
+
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private CharSequence zzBuffer = "";
+
+ /** this buffer may contains the current text array to be matched when it is cheap to acquire it */
+ private char[] zzBufferArray;
+
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
+
+ /** the textposition at the last state to be included in yytext */
+ private int zzPushbackPos;
+
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
+
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
+
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
+
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
+
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+
+ _JetLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+ /**
+ * Creates a new scanner.
+ * There is also java.io.Reader version of this constructor.
+ *
+ * @param in the java.io.Inputstream to read input from.
+ */
+ _JetLexer(java.io.InputStream in) {
+ this(new java.io.InputStreamReader(in));
+ }
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x10000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 1784) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+ public final int getTokenStart(){
+ return zzStartRead;
+ }
+
+ public final int getTokenEnd(){
+ return getTokenStart() + yylength();
+ }
+
+ public void reset(CharSequence buffer, int start, int end,int initialState){
+ zzBuffer = buffer;
+ zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer);
+ zzCurrentPos = zzMarkedPos = zzStartRead = start;
+ zzPushbackPos = 0;
+ zzAtEOF = false;
+ zzAtBOL = true;
+ zzEndRead = end;
+ yybegin(initialState);
+ }
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+ return true;
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final CharSequence yytext() {
+ return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos);
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Contains user EOF-code, which will be executed exactly once,
+ * when the end of file is reached
+ */
+ private void zzDoEOF() {
+ if (!zzEOFDone) {
+ zzEOFDone = true;
+
+ }
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public IElementType advance() throws java.io.IOException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ CharSequence zzBufferL = zzBuffer;
+ char[] zzBufferArrayL = zzBufferArray;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ zzAction = -1;
+
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
+
+
+ zzForAction: {
+ while (true) {
+
+ if (zzCurrentPosL < zzEndReadL)
+ zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++]:zzBufferL.charAt(zzCurrentPosL++);
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++]:zzBufferL.charAt(zzCurrentPosL++);
+ }
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
+
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
+
+ }
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 3:
+ { return JetTokens.IDENTIFIER;
+ }
+ case 81: break;
+ case 58:
+ { return JetTokens.FOR_KEYWORD ;
+ }
+ case 82: break;
+ case 75:
+ { return JetTokens.RETURN_KEYWORD ;
+ }
+ case 83: break;
+ case 61:
+ { return JetTokens.NULL_KEYWORD ;
+ }
+ case 84: break;
+ case 20:
+ { return JetTokens.LT ;
+ }
+ case 85: break;
+ case 41:
+ { return JetTokens.DO_KEYWORD ;
+ }
+ case 86: break;
+ case 17:
+ { return JetTokens.PLUS ;
+ }
+ case 87: break;
+ case 54:
+ { return JetTokens.RAW_STRING_LITERAL;
+ }
+ case 88: break;
+ case 43:
+ { return JetTokens.PLUSEQ ;
+ }
+ case 89: break;
+ case 26:
+ { return JetTokens.COMMA ;
+ }
+ case 90: break;
+ case 66:
+ { return JetTokens.MATCH_KEYWORD ;
+ }
+ case 91: break;
+ case 21:
+ { return JetTokens.GT ;
+ }
+ case 92: break;
+ case 4:
+ { return JetTokens.WHITE_SPACE;
+ }
+ case 93: break;
+ case 76:
+ { return JetTokens.TYPEOF_KEYWORD ;
+ }
+ case 94: break;
+ case 16:
+ { return JetTokens.RPAR ;
+ }
+ case 95: break;
+ case 63:
+ { return JetTokens.TRUE_KEYWORD ;
+ }
+ case 96: break;
+ case 49:
+ { return JetTokens.ANDAND ;
+ }
+ case 97: break;
+ case 53:
+ { return JetTokens.DOC_COMMENT;
+ }
+ case 98: break;
+ case 27:
+ { return JetTokens.FLOAT_LITERAL;
+ }
+ case 99: break;
+ case 28:
+ { return JetTokens.EOL_COMMENT;
+ }
+ case 100: break;
+ case 24:
+ { return JetTokens.COLON ;
+ }
+ case 101: break;
+ case 46:
+ { return JetTokens.LTEQ ;
+ }
+ case 102: break;
+ case 73:
+ { return JetTokens.IMPORT_KEYWORD ;
+ }
+ case 103: break;
+ case 11:
+ { return JetTokens.LBRACKET ;
+ }
+ case 104: break;
+ case 9:
+ { return JetTokens.CHARACTER_LITERAL;
+ }
+ case 105: break;
+ case 56:
+ { return JetTokens.VAR_KEYWORD ;
+ }
+ case 106: break;
+ case 47:
+ { return JetTokens.GTEQ ;
+ }
+ case 107: break;
+ case 2:
+ { return JetTokens.INTEGER_LITERAL;
+ }
+ case 108: break;
+ case 14:
+ { return JetTokens.RBRACE ;
+ }
+ case 109: break;
+ case 67:
+ { return JetTokens.CLASS_KEYWORD ;
+ }
+ case 110: break;
+ case 18:
+ { return JetTokens.EXCL ;
+ }
+ case 111: break;
+ case 44:
+ { return JetTokens.EXCLEQ ;
+ }
+ case 112: break;
+ case 36:
+ { return JetTokens.MINUSEQ ;
+ }
+ case 113: break;
+ case 69:
+ { return JetTokens.THROW_KEYWORD ;
+ }
+ case 114: break;
+ case 71:
+ { return JetTokens.WHILE_KEYWORD ;
+ }
+ case 115: break;
+ case 35:
+ { return JetTokens.MINUSMINUS;
+ }
+ case 116: break;
+ case 77:
+ { return JetTokens.CONTINUE_KEYWORD ;
+ }
+ case 117: break;
+ case 5:
+ { return JetTokens.DIV ;
+ }
+ case 118: break;
+ case 52:
+ { return JetTokens.ELVIS ;
+ }
+ case 119: break;
+ case 23:
+ { return JetTokens.QUEST ;
+ }
+ case 120: break;
+ case 50:
+ { return JetTokens.OROR ;
+ }
+ case 121: break;
+ case 19:
+ { return JetTokens.PERC ;
+ }
+ case 122: break;
+ case 45:
+ { return JetTokens.PERCEQ ;
+ }
+ case 123: break;
+ case 33:
+ { return JetTokens.RANGE ;
+ }
+ case 124: break;
+ case 1:
+ { return TokenType.BAD_CHARACTER;
+ }
+ case 125: break;
+ case 51:
+ { return JetTokens.SAFE_ACCESS;
+ }
+ case 126: break;
+ case 78:
+ { return JetTokens.NAMESPACE_KEYWORD ;
+ }
+ case 127: break;
+ case 80:
+ { return JetTokens.DECOMPOSER_KEYWORD ;
+ }
+ case 128: break;
+ case 6:
+ { return JetTokens.MUL ;
+ }
+ case 129: break;
+ case 12:
+ { return JetTokens.RBRACKET ;
+ }
+ case 130: break;
+ case 42:
+ { return JetTokens.PLUSPLUS ;
+ }
+ case 131: break;
+ case 65:
+ { return JetTokens.THIS_KEYWORD ;
+ }
+ case 132: break;
+ case 7:
+ { return JetTokens.DOT ;
+ }
+ case 133: break;
+ case 25:
+ { return JetTokens.SEMICOLON ;
+ }
+ case 134: break;
+ case 40:
+ { return JetTokens.IF_KEYWORD ;
+ }
+ case 135: break;
+ case 22:
+ { return JetTokens.EQ ;
+ }
+ case 136: break;
+ case 15:
+ { return JetTokens.LPAR ;
+ }
+ case 137: break;
+ case 8:
+ { return JetTokens.MINUS ;
+ }
+ case 138: break;
+ case 70:
+ { return JetTokens.FALSE_KEYWORD ;
+ }
+ case 139: break;
+ case 64:
+ { return JetTokens.TYPE_KEYWORD ;
+ }
+ case 140: break;
+ case 59:
+ { return JetTokens.FUN_KEYWORD ;
+ }
+ case 141: break;
+ case 39:
+ { return JetTokens.IS_KEYWORD ;
+ }
+ case 142: break;
+ case 30:
+ { return JetTokens.DIVEQ ;
+ }
+ case 143: break;
+ case 79:
+ { return JetTokens.EXTENSION_KEYWORD ;
+ }
+ case 144: break;
+ case 37:
+ { return JetTokens.AS_KEYWORD ;
+ }
+ case 145: break;
+ case 62:
+ { return JetTokens.ELSE_KEYWORD ;
+ }
+ case 146: break;
+ case 38:
+ { return JetTokens.IN_KEYWORD ;
+ }
+ case 147: break;
+ case 48:
+ { return JetTokens.EQEQ ;
+ }
+ case 148: break;
+ case 57:
+ { return JetTokens.VAL_KEYWORD ;
+ }
+ case 149: break;
+ case 60:
+ { return JetTokens.EQEQEQ ;
+ }
+ case 150: break;
+ case 55:
+ { return JetTokens.NEW_KEYWORD ;
+ }
+ case 151: break;
+ case 31:
+ { return JetTokens.MULTEQ ;
+ }
+ case 152: break;
+ case 10:
+ { return JetTokens.STRING_LITERAL;
+ }
+ case 153: break;
+ case 13:
+ { return JetTokens.LBRACE ;
+ }
+ case 154: break;
+ case 68:
+ { return JetTokens.ISNOT_KEYWORD ;
+ }
+ case 155: break;
+ case 74:
+ { return JetTokens.OBJECT_KEYWORD ;
+ }
+ case 156: break;
+ case 72:
+ { return JetTokens.BREAK_KEYWORD ;
+ }
+ case 157: break;
+ case 29:
+ { return JetTokens.BLOCK_COMMENT;
+ }
+ case 158: break;
+ case 34:
+ { return JetTokens.FILTER ;
+ }
+ case 159: break;
+ case 32:
+ { return JetTokens.MAP ;
+ }
+ case 160: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ zzDoEOF();
+ return null;
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
+ }
+ }
+
+
+}