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 ;