Simplified SHEBANG comment detection
* %line & %column removed (zzCurrentPos used instead) * jflex cmd arguments reverted
This commit is contained in:
@@ -24,10 +24,7 @@
|
||||
jvmargs="-Xmx512M"
|
||||
fork="true"
|
||||
failonerror="true">
|
||||
<arg value="-charat"/>
|
||||
<!-- generates invalid code when %line option is on
|
||||
<arg value="-sliceandcharat"/>
|
||||
-->
|
||||
<arg value="-skel"/>
|
||||
<arg value="@{skeleton}"/>
|
||||
<arg value="-d"/>
|
||||
|
||||
@@ -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<State> states = new Stack<State>();
|
||||
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 {
|
||||
|
||||
@@ -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
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
|
||||
* on 5/28/12 10:57 PM from the specification file
|
||||
* <tt>/Users/yozh/devel/jb/jet/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex</tt>
|
||||
* on 5/29/12 11:33 AM from the specification file
|
||||
* <tt>/Users/abreslav/work/kotlin/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex</tt>
|
||||
*/
|
||||
class _JetLexer implements FlexLexer {
|
||||
/** initial size of the lookahead buffer */
|
||||
@@ -609,9 +609,6 @@ class _JetLexer implements FlexLexer {
|
||||
private final Stack<State> states = new Stack<State>();
|
||||
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 ;
|
||||
|
||||
Reference in New Issue
Block a user