diff --git a/compiler/frontend/buildLexer.xml b/compiler/frontend/buildLexer.xml index f4baffab192..f39f99d46cd 100644 --- a/compiler/frontend/buildLexer.xml +++ b/compiler/frontend/buildLexer.xml @@ -24,10 +24,7 @@ jvmargs="-Xmx512M" fork="true" failonerror="true"> - - diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex b/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex index 310fce39033..22b106b2185 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex @@ -12,8 +12,6 @@ import org.jetbrains.jet.lexer.JetTokens; %unicode %class _JetLexer %implements FlexLexer -%column -%line %{ private static final class State { @@ -34,9 +32,6 @@ import org.jetbrains.jet.lexer.JetTokens; private final Stack states = new Stack(); private int lBraceCount; - private int yyline; - private int yycolumn; - private int commentStart; private int commentDepth; @@ -219,7 +214,7 @@ LONG_TEMPLATE_ENTRY_END=\} {EOL_COMMENT} { return JetTokens.EOL_COMMENT; } {SHEBANG_COMMENT} { - if (yyline == 0 && yycolumn == 0) { + if (zzCurrentPos == 0) { return JetTokens.SHEBANG_COMMENT; } else { diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java b/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java index d76319fd7ad..f3d44c4cbe9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 5/28/12 10:57 PM */ +/* The following code was generated by JFlex 1.4.3 on 5/29/12 11:33 AM */ package org.jetbrains.jet.lexer; @@ -13,8 +13,8 @@ import org.jetbrains.jet.lexer.JetTokens; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 5/28/12 10:57 PM from the specification file - * /Users/yozh/devel/jb/jet/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex + * on 5/29/12 11:33 AM from the specification file + * /Users/abreslav/work/kotlin/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex */ class _JetLexer implements FlexLexer { /** initial size of the lookahead buffer */ @@ -609,9 +609,6 @@ class _JetLexer implements FlexLexer { private final Stack states = new Stack(); private int lBraceCount; - private int yyline; - private int yycolumn; - private int commentStart; private int commentDepth; @@ -834,57 +831,6 @@ class _JetLexer implements FlexLexer { while (true) { zzMarkedPosL = zzMarkedPos; - boolean zzR = false; - for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL; - zzCurrentPosL++) { - switch (zzBufferL.charAt(zzCurrentPosL)) { - case '\u000B': - case '\u000C': - case '\u0085': - case '\u2028': - case '\u2029': - yyline++; - yycolumn = 0; - zzR = false; - break; - case '\r': - yyline++; - yycolumn = 0; - zzR = true; - break; - case '\n': - if (zzR) - zzR = false; - else { - yyline++; - yycolumn = 0; - } - break; - default: - zzR = false; - yycolumn++; - } - } - - if (zzR) { - // peek one character ahead if it is \n (if we have counted one line too much) - boolean zzPeek; - if (zzMarkedPosL < zzEndReadL) - zzPeek = zzBufferL.charAt(zzMarkedPosL) == '\n'; - else if (zzAtEOF) - zzPeek = false; - else { - boolean eof = zzRefill(); - zzEndReadL = zzEndRead; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - if (eof) - zzPeek = false; - else - zzPeek = zzBufferL.charAt(zzMarkedPosL) == '\n'; - } - if (zzPeek) yyline--; - } zzAction = -1; zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; @@ -896,7 +842,7 @@ class _JetLexer implements FlexLexer { while (true) { if (zzCurrentPosL < zzEndReadL) - zzInput = zzBufferL.charAt(zzCurrentPosL++); + zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++]:zzBufferL.charAt(zzCurrentPosL++); else if (zzAtEOF) { zzInput = YYEOF; break zzForAction; @@ -916,7 +862,7 @@ class _JetLexer implements FlexLexer { break zzForAction; } else { - zzInput = zzBufferL.charAt(zzCurrentPosL++); + zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++]:zzBufferL.charAt(zzCurrentPosL++); } } int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; @@ -1170,8 +1116,178 @@ class _JetLexer implements FlexLexer { { return JetTokens.QUEST ; } case 159: break; + case 70: + { pushState(DOC_COMMENT); + commentDepth = 0; + commentStart = getTokenStart(); + } + case 160: break; + case 62: + { return JetTokens.OROR ; + } + case 161: break; + case 21: + { return JetTokens.PERC ; + } + case 162: break; + case 73: + { return JetTokens.EXCLEQEQEQ; + } + case 163: break; + case 63: + { return JetTokens.PERCEQ ; + } + case 164: break; + case 45: + { return JetTokens.RANGE ; + } + case 165: break; + case 1: + { return TokenType.BAD_CHARACTER; + } + case 166: break; + case 64: + { pushState(SHORT_TEMPLATE_ENTRY); + yypushback(yylength() - 1); + return JetTokens.SHORT_TEMPLATE_ENTRY_START; + } + case 167: break; + case 71: + { return JetTokens.NOT_IS; + } + case 168: break; + case 15: + { return JetTokens.MUL ; + } + case 169: break; + case 23: + { return JetTokens.RBRACKET ; + } + case 170: break; + case 60: + { return JetTokens.PLUSPLUS ; + } + case 171: break; + case 41: + { pushState(BLOCK_COMMENT); + commentDepth = 0; + commentStart = getTokenStart(); + } + case 172: break; + case 86: + { return JetTokens.THIS_KEYWORD ; + } + case 173: break; + case 9: + { return JetTokens.DOT ; + } + case 174: break; + case 27: + { return JetTokens.SEMICOLON ; + } + case 175: break; + case 51: + { return JetTokens.IF_KEYWORD ; + } + case 176: break; + case 66: + { return JetTokens.ESCAPE_SEQUENCE; + } + case 177: break; + case 31: + { popState(); return JetTokens.CLOSING_QUOTE; + } + case 178: break; + case 18: + { return JetTokens.EQ ; + } + case 179: break; + case 5: + { return JetTokens.AT ; + } + case 180: break; + case 76: + { return JetTokens.AS_SAFE; + } + case 181: break; + case 24: + { return JetTokens.LPAR ; + } + case 182: break; + case 10: + { return JetTokens.MINUS ; + } + case 183: break; + case 100: + { return JetTokens.FALSE_KEYWORD ; + } + case 184: break; + case 88: + { return JetTokens.TYPE_KEYWORD ; + } + case 185: break; + case 67: + { commentDepth++; + } + case 186: break; + case 77: + { return JetTokens.FUN_KEYWORD ; + } + case 187: break; + case 49: + { return JetTokens.IS_KEYWORD ; + } + case 188: break; + case 30: + { popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE; + } + case 189: break; + case 34: + { lBraceCount++; return JetTokens.LBRACE; + } + case 190: break; + case 85: + { yypushback(3); return JetTokens.EXCL; + } + case 191: break; + case 42: + { return JetTokens.DIVEQ ; + } + case 192: break; + case 90: + { return JetTokens.ELSE_KEYWORD ; + } + case 193: break; + case 53: + { return JetTokens.AS_KEYWORD ; + } + case 194: break; + case 50: + { return JetTokens.IN_KEYWORD ; + } + case 195: break; + case 58: + { return JetTokens.EQEQ ; + } + case 196: break; + case 83: + { return JetTokens.EQEQEQ ; + } + case 197: break; + case 80: + { return JetTokens.VAL_KEYWORD ; + } + case 198: break; + case 92: + { return JetTokens.CAPITALIZED_THIS_KEYWORD ; + } + case 199: break; + case 52: + { return JetTokens.MULTEQ ; + } + case 200: break; case 43: - { if (yyline == 0 && yycolumn == 0) { + { if (zzCurrentPos == 0) { return JetTokens.SHEBANG_COMMENT; } else { @@ -1179,176 +1295,6 @@ class _JetLexer implements FlexLexer { return JetTokens.HASH; } } - case 160: break; - case 70: - { pushState(DOC_COMMENT); - commentDepth = 0; - commentStart = getTokenStart(); - } - case 161: break; - case 62: - { return JetTokens.OROR ; - } - case 162: break; - case 21: - { return JetTokens.PERC ; - } - case 163: break; - case 73: - { return JetTokens.EXCLEQEQEQ; - } - case 164: break; - case 63: - { return JetTokens.PERCEQ ; - } - case 165: break; - case 45: - { return JetTokens.RANGE ; - } - case 166: break; - case 1: - { return TokenType.BAD_CHARACTER; - } - case 167: break; - case 64: - { pushState(SHORT_TEMPLATE_ENTRY); - yypushback(yylength() - 1); - return JetTokens.SHORT_TEMPLATE_ENTRY_START; - } - case 168: break; - case 71: - { return JetTokens.NOT_IS; - } - case 169: break; - case 15: - { return JetTokens.MUL ; - } - case 170: break; - case 23: - { return JetTokens.RBRACKET ; - } - case 171: break; - case 60: - { return JetTokens.PLUSPLUS ; - } - case 172: break; - case 41: - { pushState(BLOCK_COMMENT); - commentDepth = 0; - commentStart = getTokenStart(); - } - case 173: break; - case 86: - { return JetTokens.THIS_KEYWORD ; - } - case 174: break; - case 9: - { return JetTokens.DOT ; - } - case 175: break; - case 27: - { return JetTokens.SEMICOLON ; - } - case 176: break; - case 51: - { return JetTokens.IF_KEYWORD ; - } - case 177: break; - case 66: - { return JetTokens.ESCAPE_SEQUENCE; - } - case 178: break; - case 31: - { popState(); return JetTokens.CLOSING_QUOTE; - } - case 179: break; - case 18: - { return JetTokens.EQ ; - } - case 180: break; - case 5: - { return JetTokens.AT ; - } - case 181: break; - case 76: - { return JetTokens.AS_SAFE; - } - case 182: break; - case 24: - { return JetTokens.LPAR ; - } - case 183: break; - case 10: - { return JetTokens.MINUS ; - } - case 184: break; - case 100: - { return JetTokens.FALSE_KEYWORD ; - } - case 185: break; - case 88: - { return JetTokens.TYPE_KEYWORD ; - } - case 186: break; - case 67: - { commentDepth++; - } - case 187: break; - case 77: - { return JetTokens.FUN_KEYWORD ; - } - case 188: break; - case 49: - { return JetTokens.IS_KEYWORD ; - } - case 189: break; - case 30: - { popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE; - } - case 190: break; - case 34: - { lBraceCount++; return JetTokens.LBRACE; - } - case 191: break; - case 85: - { yypushback(3); return JetTokens.EXCL; - } - case 192: break; - case 42: - { return JetTokens.DIVEQ ; - } - case 193: break; - case 90: - { return JetTokens.ELSE_KEYWORD ; - } - case 194: break; - case 53: - { return JetTokens.AS_KEYWORD ; - } - case 195: break; - case 50: - { return JetTokens.IN_KEYWORD ; - } - case 196: break; - case 58: - { return JetTokens.EQEQ ; - } - case 197: break; - case 83: - { return JetTokens.EQEQEQ ; - } - case 198: break; - case 80: - { return JetTokens.VAL_KEYWORD ; - } - case 199: break; - case 92: - { return JetTokens.CAPITALIZED_THIS_KEYWORD ; - } - case 200: break; - case 52: - { return JetTokens.MULTEQ ; - } case 201: break; case 13: { return JetTokens.LBRACE ;