diff --git a/compiler/frontend/src/org/jetbrains/jet/kdoc/lexer/_KDocLexer.java b/compiler/frontend/src/org/jetbrains/jet/kdoc/lexer/_KDocLexer.java index 3de87a5e060..008af783635 100644 --- a/compiler/frontend/src/org/jetbrains/jet/kdoc/lexer/_KDocLexer.java +++ b/compiler/frontend/src/org/jetbrains/jet/kdoc/lexer/_KDocLexer.java @@ -1,4 +1,20 @@ -/* The following code was generated by JFlex 1.4.3 on 5/27/14 6:18 PM */ +/* + * Copyright 2010-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* The following code was generated by JFlex 1.4.3 on 7/15/14 9:40 PM */ package org.jetbrains.jet.kdoc.lexer; @@ -12,8 +28,8 @@ import java.lang.Character; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 5/27/14 6:18 PM from the specification file - * /Users/abreslav/work/kotlin/compiler/frontend/src/org/jetbrains/jet/kdoc/lexer/KDoc.flex + * on 7/15/14 9:40 PM from the specification file + * C:/Projects/kotlin/compiler/frontend/src/org/jetbrains/jet/kdoc/lexer/KDoc.flex */ class _KDocLexer implements FlexLexer { /** initial size of the lookahead buffer */ @@ -553,6 +569,11 @@ class _KDocLexer implements FlexLexer { zzMarkedPos = zzMarkedPosL; switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 5: + { if (isLastToken()) return KDocTokens.END; + else return KDocTokens.TEXT; + } + case 11: break; case 3: { if (yytextContainLineBreaks()) { yybegin(LINE_BEGINNING); @@ -562,11 +583,6 @@ class _KDocLexer implements FlexLexer { return KDocTokens.TEXT; // internal white space } } - case 11: break; - case 5: - { if (isLastToken()) return KDocTokens.END; - else return KDocTokens.TEXT; - } case 12: break; case 9: { yybegin(CONTENTS); @@ -578,9 +594,9 @@ class _KDocLexer implements FlexLexer { return KDocTokens.WIKI_LINK_CLOSE; } case 14: break; - case 8: + case 6: { yybegin(CONTENTS); - return KDocTokens.WIKI_LINK_OPEN; + return KDocTokens.MARKDOWN_ESCAPED_CHAR; } case 15: break; case 10: @@ -588,24 +604,24 @@ class _KDocLexer implements FlexLexer { return KDocTokens.START; } case 16: break; - case 1: - { return TokenType.BAD_CHARACTER; - } - case 17: break; - case 6: - { yybegin(CONTENTS); - return KDocTokens.MARKDOWN_ESCAPED_CHAR; - } - case 18: break; case 2: { yybegin(CONTENTS); return KDocTokens.TEXT; } - case 19: break; + case 17: break; + case 1: + { return TokenType.BAD_CHARACTER; + } + case 18: break; case 4: { yybegin(CONTENTS_BEGINNING); return KDocTokens.LEADING_ASTERISK; } + case 19: break; + case 8: + { yybegin(CONTENTS); + return KDocTokens.WIKI_LINK_OPEN; + } case 20: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex b/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex index b4a3a7273ba..22d80b4a3a4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex @@ -102,7 +102,7 @@ DOUBLE_LITERAL={FLOATING_POINT_LITERAL1}|{FLOATING_POINT_LITERAL2}|{FLOATING_POI FLOATING_POINT_LITERAL1=({DIGIT})+"."({DIGIT})+({EXPONENT_PART})?({FLOATING_POINT_LITERAL_SUFFIX})? FLOATING_POINT_LITERAL2="."({DIGIT})+({EXPONENT_PART})?({FLOATING_POINT_LITERAL_SUFFIX})? FLOATING_POINT_LITERAL3=({DIGIT})+({EXPONENT_PART})({FLOATING_POINT_LITERAL_SUFFIX})? -FLOATING_POINT_LITERAL4=({DIGIT})+({FLOATING_POINT_LITERAL_SUFFIX})? +FLOATING_POINT_LITERAL4=({DIGIT})+({FLOATING_POINT_LITERAL_SUFFIX}) FLOATING_POINT_LITERAL_SUFFIX=[Ff] EXPONENT_PART=[Ee]["+""-"]?({DIGIT})* //HEX_DOUBLE_LITERAL={HEX_SIGNIFICAND}{BINARY_EXPONENT}[Dd]? diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java b/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java index 1745ca24c23..d7f666338f7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java @@ -1,4 +1,20 @@ -/* The following code was generated by JFlex 1.4.3 on 5/27/14 6:18 PM */ +/* + * Copyright 2010-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* The following code was generated by JFlex 1.4.3 on 7/15/14 9:40 PM */ package org.jetbrains.jet.lexer; @@ -15,8 +31,8 @@ import org.jetbrains.jet.lexer.JetTokens; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 5/27/14 6:18 PM from the specification file - * /Users/abreslav/work/kotlin/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex + * on 7/15/14 9:40 PM from the specification file + * C:/Projects/kotlin/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex */ class _JetLexer implements FlexLexer { /** initial size of the lookahead buffer */ @@ -131,7 +147,7 @@ class _JetLexer implements FlexLexer { "\1\33\1\34\1\35\1\36\1\35\1\1\1\37\2\35"+ "\1\40\1\1\1\40\3\41\1\42\1\43\1\2\1\0"+ "\2\44\1\0\1\45\1\0\1\5\1\0\1\46\1\47"+ - "\1\50\1\51\1\0\1\52\1\44\2\2\1\44\1\53"+ + "\1\50\1\51\1\0\1\52\1\0\2\2\1\44\1\53"+ "\1\54\1\55\1\56\2\13\1\0\3\3\1\57\1\60"+ "\1\61\1\3\1\62\6\3\1\63\10\3\1\64\1\65"+ "\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75"+ @@ -530,13 +546,13 @@ class _JetLexer implements FlexLexer { "\6\0\1\11\16\1\1\11\3\1\1\11\17\1\1\11"+ "\7\1\6\11\1\1\1\11\2\1\2\11\4\1\1\11"+ "\2\1\2\11\1\1\1\0\1\11\1\1\1\0\1\1"+ - "\1\0\1\1\1\0\2\1\1\11\1\1\1\0\5\1"+ - "\5\11\1\1\1\0\7\1\1\11\21\1\11\11\1\1"+ - "\1\0\2\11\1\1\2\0\1\1\2\11\1\0\1\11"+ - "\1\1\1\11\2\0\3\1\1\11\1\0\1\1\2\0"+ - "\1\11\15\1\1\11\12\1\1\11\2\0\1\1\1\11"+ - "\1\1\4\11\2\1\1\0\22\1\1\11\1\0\14\1"+ - "\1\0\7\1"; + "\1\0\1\1\1\0\2\1\1\11\1\1\1\0\1\1"+ + "\1\0\3\1\5\11\1\1\1\0\7\1\1\11\21\1"+ + "\11\11\1\1\1\0\2\11\1\1\2\0\1\1\2\11"+ + "\1\0\1\11\1\1\1\11\2\0\3\1\1\11\1\0"+ + "\1\1\2\0\1\11\15\1\1\11\12\1\1\11\2\0"+ + "\1\1\1\11\1\1\4\11\2\1\1\0\22\1\1\11"+ + "\1\0\14\1\1\0\7\1"; private static int [] zzUnpackAttribute() { int [] result = new int[232]; @@ -910,194 +926,185 @@ class _JetLexer implements FlexLexer { { return JetTokens.NULL_KEYWORD ; } case 107: break; - case 35: - { if (lBraceCount == 0) { - popState(); - return JetTokens.LONG_TEMPLATE_ENTRY_END; - } - lBraceCount--; - return JetTokens.RBRACE; - } - case 108: break; case 19: { return JetTokens.LT ; } - case 109: break; + case 108: break; case 52: { return JetTokens.DO_KEYWORD ; } - case 110: break; + case 109: break; case 18: { return JetTokens.PLUS ; } - case 111: break; + case 110: break; case 55: { return JetTokens.PLUSEQ ; } - case 112: break; + case 111: break; case 91: { popState(); return JetTokens.THIS_KEYWORD; } - case 113: break; + case 112: break; case 28: { return JetTokens.COMMA ; } - case 114: break; + case 113: break; case 20: { return JetTokens.GT ; } - case 115: break; + case 114: break; case 4: { return JetTokens.WHITE_SPACE; } - case 116: break; + case 115: break; case 26: { return JetTokens.RPAR ; } - case 117: break; + case 116: break; case 54: { return JetTokens.DOUBLE_ARROW; } - case 118: break; + case 117: break; case 85: { return JetTokens.TRUE_KEYWORD ; } - case 119: break; + case 118: break; case 37: { return JetTokens.FIELD_IDENTIFIER; } - case 120: break; + case 119: break; case 59: { return JetTokens.ANDAND ; } - case 121: break; + case 120: break; case 64: { pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START; } - case 122: break; + case 121: break; case 36: { return JetTokens.FLOAT_LITERAL; } - case 123: break; + case 122: break; case 38: { return JetTokens.EOL_COMMENT; } - case 124: break; + case 123: break; case 89: { return JetTokens.WHEN_KEYWORD ; } - case 125: break; + case 124: break; case 73: { pushState(RAW_STRING); return JetTokens.OPEN_QUOTE; } - case 126: break; + case 125: break; case 22: { return JetTokens.COLON ; } - case 127: break; + case 126: break; case 57: { return JetTokens.LTEQ ; } - case 128: break; + case 127: break; case 46: { return JetTokens.ARROW ; } - case 129: break; + case 128: break; case 32: { popState(); return JetTokens.IDENTIFIER; } - case 130: break; + case 129: break; case 23: { return JetTokens.LBRACKET ; } - case 131: break; + case 130: break; case 68: { yypushback(2); return JetTokens.INTEGER_LITERAL; } - case 132: break; + case 131: break; case 11: { return JetTokens.CHARACTER_LITERAL; } - case 133: break; + case 132: break; case 78: { return JetTokens.VAR_KEYWORD ; } - case 134: break; + case 133: break; case 58: { return JetTokens.GTEQ ; } - case 135: break; + case 134: break; case 2: { return JetTokens.INTEGER_LITERAL; } - case 136: break; + case 135: break; case 14: { return JetTokens.RBRACE ; } - case 137: break; + case 136: break; case 95: { return JetTokens.CLASS_KEYWORD ; } - case 138: break; + case 137: break; case 74: { return JetTokens.TRY_KEYWORD ; } - case 139: break; + case 138: break; case 8: { return JetTokens.EXCL ; } - case 140: break; + case 139: break; case 42: { return JetTokens.EXCLEQ ; } - case 141: break; + case 140: break; case 45: { return JetTokens.MINUSEQ ; } - case 142: break; + case 141: break; case 101: { return JetTokens.PACKAGE_KEYWORD ; } - case 143: break; + case 142: break; case 92: { return JetTokens.THROW_KEYWORD ; } - case 144: break; + case 143: break; case 94: { return JetTokens.SUPER_KEYWORD ; } - case 145: break; - case 67: - { if (commentDepth > 0) { - commentDepth--; - } - else { - int state = yystate(); - popState(); - zzStartRead = commentStart; - return commentStateToTokenType(state); - } - } - case 146: break; + case 144: break; case 97: { return JetTokens.WHILE_KEYWORD ; } - case 147: break; + case 145: break; case 44: { return JetTokens.MINUSMINUS; } - case 148: break; + case 146: break; case 102: { return JetTokens.CONTINUE_KEYWORD ; } - case 149: break; + case 147: break; case 71: { return JetTokens.NOT_IN; } - case 150: break; + case 148: break; + case 69: + { pushState(DOC_COMMENT); + commentDepth = 0; + commentStart = getTokenStart(); + } + case 149: break; case 6: { return JetTokens.DIV ; } + case 150: break; + case 63: + { pushState(SHORT_TEMPLATE_ENTRY); + yypushback(yylength() - 1); + return JetTokens.SHORT_TEMPLATE_ENTRY_START; + } case 151: break; case 81: { int length = yytext().length(); @@ -1123,10 +1130,14 @@ class _JetLexer implements FlexLexer { { return JetTokens.QUEST ; } case 155: break; - case 69: - { pushState(DOC_COMMENT); - commentDepth = 0; - commentStart = getTokenStart(); + case 41: + { if (zzCurrentPos == 0) { + return JetTokens.SHEBANG_COMMENT; + } + else { + yypushback(yylength() - 1); + return JetTokens.HASH; + } } case 156: break; case 60: @@ -1153,73 +1164,79 @@ class _JetLexer implements FlexLexer { { return TokenType.BAD_CHARACTER; } case 162: break; - case 63: - { pushState(SHORT_TEMPLATE_ENTRY); - yypushback(yylength() - 1); - return JetTokens.SHORT_TEMPLATE_ENTRY_START; - } - case 163: break; case 70: { return JetTokens.NOT_IS; } - case 164: break; + case 163: break; case 15: { return JetTokens.MUL ; } - case 165: break; + case 164: break; case 24: { return JetTokens.RBRACKET ; } - case 166: break; + case 165: break; case 56: { return JetTokens.PLUSPLUS ; } + case 166: break; + case 84: + { return JetTokens.THIS_KEYWORD ; + } case 167: break; + case 9: + { return JetTokens.DOT ; + } + case 168: break; + case 27: + { return JetTokens.SEMICOLON ; + } + case 169: break; + case 49: + { return JetTokens.IF_KEYWORD ; + } + case 170: break; + case 65: + { return JetTokens.ESCAPE_SEQUENCE; + } + case 171: break; case 39: { pushState(BLOCK_COMMENT); commentDepth = 0; commentStart = getTokenStart(); } - case 168: break; - case 84: - { return JetTokens.THIS_KEYWORD ; - } - case 169: break; - case 9: - { return JetTokens.DOT ; - } - case 170: break; - case 27: - { return JetTokens.SEMICOLON ; - } - case 171: break; - case 49: - { return JetTokens.IF_KEYWORD ; - } case 172: break; - case 65: - { return JetTokens.ESCAPE_SEQUENCE; - } - case 173: break; case 31: { popState(); return JetTokens.CLOSING_QUOTE; } - case 174: break; + case 173: break; case 16: { return JetTokens.EQ ; } - case 175: break; + case 174: break; case 75: { return JetTokens.AS_SAFE; } - case 176: break; + case 175: break; case 25: { return JetTokens.LPAR ; } - case 177: break; + case 176: break; case 10: { return JetTokens.MINUS ; } + case 177: break; + case 67: + { if (commentDepth > 0) { + commentDepth--; + } + else { + int state = yystate(); + popState(); + zzStartRead = commentStart; + return commentStateToTokenType(state); + } + } case 178: break; case 98: { return JetTokens.FALSE_KEYWORD ; @@ -1289,43 +1306,42 @@ class _JetLexer implements FlexLexer { { return JetTokens.MULTEQ ; } case 195: break; - case 41: - { if (zzCurrentPos == 0) { - return JetTokens.SHEBANG_COMMENT; - } - else { - yypushback(yylength() - 1); - return JetTokens.HASH; - } - } - case 196: break; case 13: { return JetTokens.LBRACE ; } - case 197: break; + case 196: break; case 99: { return JetTokens.OBJECT_KEYWORD ; } - case 198: break; + case 197: break; case 96: { return JetTokens.BREAK_KEYWORD ; } - case 199: break; + case 198: break; case 82: { return JetTokens.BLOCK_COMMENT; } - case 200: break; + case 199: break; case 93: { return JetTokens.TRAIT_KEYWORD ; } - case 201: break; + case 200: break; case 62: { return JetTokens.COLONCOLON; } - case 202: break; + case 201: break; case 33: { } + case 202: break; + case 35: + { if (lBraceCount == 0) { + popState(); + return JetTokens.LONG_TEMPLATE_ENTRY_END; + } + lBraceCount--; + return JetTokens.RBRACE; + } case 203: break; case 7: { return JetTokens.HASH ; diff --git a/compiler/testData/psi/IntegerLiteral.kt b/compiler/testData/psi/IntegerLiteral.kt index ea0fc3d2d24..a3fb86188d7 100644 --- a/compiler/testData/psi/IntegerLiteral.kt +++ b/compiler/testData/psi/IntegerLiteral.kt @@ -14,4 +14,7 @@ val array = array( 0X1l, 0b1l, 0B1l, -) \ No newline at end of file + 0 +) + +val a = 01 \ No newline at end of file diff --git a/compiler/testData/psi/IntegerLiteral.txt b/compiler/testData/psi/IntegerLiteral.txt index 326e1158b8d..2df42f040f8 100644 --- a/compiler/testData/psi/IntegerLiteral.txt +++ b/compiler/testData/psi/IntegerLiteral.txt @@ -96,7 +96,21 @@ JetFile: IntegerLiteral.kt INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0B1l') PsiElement(COMMA)(',') - PsiErrorElement:Expecting an argument - + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') PsiWhiteSpace('\n') - PsiElement(RPAR)(')') \ No newline at end of file + PsiElement(RPAR)(')') + PsiWhiteSpace('\n\n') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('a') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0') + PsiErrorElement:Property getter or setter expected + PsiElement(INTEGER_LITERAL)('1') \ No newline at end of file