Safe casts supported
This commit is contained in:
@@ -139,7 +139,7 @@ inOperation
|
||||
;
|
||||
|
||||
typeOperation
|
||||
: "as" : ":"
|
||||
: "as" : "as?" : ":"
|
||||
;
|
||||
|
||||
isOPeration
|
||||
|
||||
@@ -80,6 +80,7 @@ public class JetHighlighter extends SyntaxHighlighterBase {
|
||||
|
||||
fillMap(keys1, JetTokens.KEYWORDS, JET_KEYWORD);
|
||||
|
||||
keys1.put(JetTokens.AS_SAFE, JET_KEYWORD);
|
||||
keys1.put(JetTokens.LABEL_IDENTIFIER, JET_LABEL_IDENTIFIER);
|
||||
keys1.put(JetTokens.ATAT, JET_LABEL_IDENTIFIER);
|
||||
keys1.put(JetTokens.FIELD_IDENTIFIER, JET_FIELD_IDENTIFIER);
|
||||
|
||||
@@ -99,7 +99,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
}
|
||||
},
|
||||
|
||||
COLON_AS(COLON, AS_KEYWORD) {
|
||||
COLON_AS(COLON, AS_KEYWORD, AS_SAFE) {
|
||||
@Override
|
||||
public JetNodeType parseRightHandSide(IElementType operation, JetExpressionParsing parser) {
|
||||
parser.myJetParsing.parseTypeRef();
|
||||
|
||||
@@ -587,14 +587,20 @@ public class JetTypeInferrer {
|
||||
if (actualType != null && !semanticServices.getTypeChecker().isSubtypeOf(actualType, targetType)) {
|
||||
semanticServices.getErrorHandler().typeMismatch(expression.getLeft(), targetType, actualType);
|
||||
}
|
||||
result = targetType;
|
||||
}
|
||||
else if (operationType == JetTokens.AS_KEYWORD) {
|
||||
// TODO : Check for cast impossibility
|
||||
result = targetType;
|
||||
}
|
||||
else if (operationType == JetTokens.AS_SAFE) {
|
||||
// TODO : Check for cast impossibility
|
||||
|
||||
result = TypeUtils.makeNullable(targetType);
|
||||
}
|
||||
else {
|
||||
semanticServices.getErrorHandler().genericError(expression.getOperationSign().getNode(), "Unsupported binary operation");
|
||||
}
|
||||
result = targetType;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -129,6 +129,7 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
|
||||
<YYINITIAL> "!==" { return JetTokens.EXCLEQEQEQ; }
|
||||
<YYINITIAL> "!in" { return JetTokens.NOT_IN; }
|
||||
<YYINITIAL> "!is" { return JetTokens.NOT_IS; }
|
||||
<YYINITIAL> "as?" { return JetTokens.AS_SAFE; }
|
||||
<YYINITIAL> "++" { return JetTokens.PLUSPLUS ; }
|
||||
<YYINITIAL> "--" { return JetTokens.MINUSMINUS; }
|
||||
<YYINITIAL> "<=" { return JetTokens.LTEQ ; }
|
||||
|
||||
@@ -55,10 +55,12 @@ public interface JetTokens {
|
||||
JetKeywordToken CAPITALIZED_THIS_KEYWORD = JetKeywordToken.keyword("This");
|
||||
|
||||
|
||||
JetToken AS_SAFE = new JetToken("as?");
|
||||
|
||||
JetToken IDENTIFIER = new JetToken("IDENTIFIER");
|
||||
JetToken LABEL_IDENTIFIER = new JetToken("LABEL_IDENTIFIER");
|
||||
JetToken FIELD_IDENTIFIER = new JetToken("FIELD_IDENTIFIER");
|
||||
|
||||
JetToken FIELD_IDENTIFIER = new JetToken("FIELD_IDENTIFIER");
|
||||
JetToken LBRACKET = new JetToken("LBRACKET");
|
||||
JetToken RBRACKET = new JetToken("RBRACKET");
|
||||
JetToken LBRACE = new JetToken("LBRACE");
|
||||
@@ -88,7 +90,7 @@ public interface JetTokens {
|
||||
JetToken OROR = new JetToken("OROR");
|
||||
JetToken SAFE_ACCESS = new JetToken("SAFE_ACCESS");
|
||||
JetToken ELVIS = new JetToken("ELVIS");
|
||||
// JetToken MAP = new JetToken("MAP");
|
||||
// JetToken MAP = new JetToken("MAP");
|
||||
// JetToken FILTER = new JetToken("FILTER");
|
||||
JetToken QUEST = new JetToken("QUEST");
|
||||
JetToken COLON = new JetToken("COLON");
|
||||
@@ -105,12 +107,12 @@ public interface JetTokens {
|
||||
JetToken HASH = new JetToken("HASH");
|
||||
JetToken AT = new JetToken("AT");
|
||||
JetToken ATAT = new JetToken("ATAT");
|
||||
|
||||
TokenSet LABELS = TokenSet.create(AT, ATAT, LABEL_IDENTIFIER);
|
||||
|
||||
JetToken COMMA = new JetToken("COMMA");
|
||||
|
||||
JetToken EOL_OR_SEMICOLON = new JetToken("EOL_OR_SEMICOLON");
|
||||
|
||||
JetKeywordToken WRAPS_KEYWORD = JetKeywordToken.softKeyword("wraps");
|
||||
JetKeywordToken IMPORT_KEYWORD = JetKeywordToken.softKeyword("import");
|
||||
JetKeywordToken WHERE_KEYWORD = JetKeywordToken.softKeyword("where");
|
||||
@@ -129,6 +131,7 @@ public interface JetTokens {
|
||||
JetKeywordToken PROTECTED_KEYWORD = JetKeywordToken.softKeyword("protected");
|
||||
JetKeywordToken CATCH_KEYWORD = JetKeywordToken.softKeyword("catch");
|
||||
JetKeywordToken OUT_KEYWORD = JetKeywordToken.softKeyword("out");
|
||||
|
||||
JetKeywordToken FINALLY_KEYWORD = JetKeywordToken.softKeyword("finally");
|
||||
|
||||
// TODO: support this as an annotation on arguments. Then, they it probably can not be a soft keyword
|
||||
@@ -152,13 +155,12 @@ public interface JetTokens {
|
||||
OPEN_KEYWORD, ATTRIBUTE_KEYWORD, OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD,
|
||||
PROTECTED_KEYWORD, REF_KEYWORD, OUT_KEYWORD, IN_KEYWORD
|
||||
);
|
||||
|
||||
TokenSet WHITE_SPACE_OR_COMMENT_BIT_SET = TokenSet.create(WHITE_SPACE, BLOCK_COMMENT, EOL_COMMENT, DOC_COMMENT);
|
||||
TokenSet WHITESPACES = TokenSet.create(TokenType.WHITE_SPACE);
|
||||
TokenSet COMMENTS = TokenSet.create(EOL_COMMENT, BLOCK_COMMENT, DOC_COMMENT);
|
||||
TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL);
|
||||
|
||||
TokenSet OPERATIONS = TokenSet.create(AS_KEYWORD, IS_KEYWORD, IN_KEYWORD, DOT, PLUSPLUS, MINUSMINUS, MUL, PLUS,
|
||||
TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL);
|
||||
TokenSet OPERATIONS = TokenSet.create(AS_KEYWORD, AS_SAFE, IS_KEYWORD, IN_KEYWORD, DOT, PLUSPLUS, MINUSMINUS, MUL, PLUS,
|
||||
MINUS, EXCL, DIV, PERC, LT, GT, LTEQ, GTEQ, EQEQEQ, ARROW, EXCLEQEQEQ, EQEQ, EXCLEQ, ANDAND, OROR,
|
||||
SAFE_ACCESS, ELVIS,
|
||||
// MAP, FILTER,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 4/7/11 5:16 PM */
|
||||
/* The following code was generated by JFlex 1.4.3 on 4/8/11 3:38 PM */
|
||||
|
||||
/* It's an automatically generated code. Do not modify it. */
|
||||
package org.jetbrains.jet.lexer;
|
||||
@@ -13,7 +13,7 @@ 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 4/7/11 5:16 PM from the specification file
|
||||
* on 4/8/11 3:38 PM from the specification file
|
||||
* <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt>
|
||||
*/
|
||||
class _JetLexer implements FlexLexer {
|
||||
@@ -38,14 +38,14 @@ class _JetLexer implements FlexLexer {
|
||||
*/
|
||||
private static final String ZZ_CMAP_PACKED =
|
||||
"\11\5\1\3\1\13\1\0\1\3\1\0\16\5\4\0\1\3\1\57"+
|
||||
"\1\25\1\100\1\7\1\67\1\63\1\23\1\74\1\75\1\12\1\60"+
|
||||
"\1\77\1\21\1\17\1\11\1\14\11\1\1\66\1\76\1\61\1\56"+
|
||||
"\1\62\1\65\1\10\1\2\1\16\2\2\1\20\1\2\5\4\1\4"+
|
||||
"\1\25\1\100\1\7\1\67\1\64\1\23\1\74\1\75\1\12\1\61"+
|
||||
"\1\77\1\21\1\17\1\11\1\14\11\1\1\66\1\76\1\62\1\56"+
|
||||
"\1\63\1\60\1\10\1\2\1\16\2\2\1\20\1\2\5\4\1\4"+
|
||||
"\3\4\1\22\3\4\1\53\3\4\1\15\2\4\1\70\1\24\1\71"+
|
||||
"\1\0\1\4\1\6\1\27\1\45\1\34\1\55\1\31\1\44\1\4"+
|
||||
"\1\50\1\37\1\46\1\52\1\51\1\30\1\26\1\40\1\33\1\4"+
|
||||
"\1\42\1\32\1\36\1\41\1\54\1\47\1\35\1\43\1\4\1\72"+
|
||||
"\1\64\1\73\1\0\41\5\2\0\4\4\4\0\1\4\2\0\1\5"+
|
||||
"\1\65\1\73\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"+
|
||||
@@ -141,7 +141,7 @@ class _JetLexer implements FlexLexer {
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\1\1\3\1\5"+
|
||||
"\1\6\1\7\1\2\1\10\1\11\1\12\1\13\16\3"+
|
||||
"\1\14\1\15\1\16\1\17\1\20\2\1\1\21\1\22"+
|
||||
"\1\14\1\15\1\16\1\17\1\20\1\21\2\1\1\22"+
|
||||
"\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+
|
||||
"\1\33\1\34\1\0\1\35\1\0\1\36\1\0\1\37"+
|
||||
"\1\0\1\40\1\41\1\42\1\43\1\44\1\35\2\2"+
|
||||
@@ -149,16 +149,17 @@ class _JetLexer implements FlexLexer {
|
||||
"\1\51\7\3\1\52\1\53\1\54\11\3\1\55\1\56"+
|
||||
"\1\57\1\0\1\60\1\61\1\62\1\63\1\64\1\65"+
|
||||
"\1\66\1\67\1\70\1\71\1\72\1\35\1\3\2\0"+
|
||||
"\1\42\1\73\4\0\1\13\1\74\1\3\1\75\6\3"+
|
||||
"\1\76\6\3\1\77\1\100\4\3\1\101\1\102\1\103"+
|
||||
"\1\104\1\105\1\106\1\36\1\37\1\0\2\73\1\35"+
|
||||
"\2\0\1\3\1\107\1\3\1\110\2\3\1\111\1\112"+
|
||||
"\1\113\5\3\1\114\1\3\1\115\1\42\2\0\3\3"+
|
||||
"\1\116\1\3\1\117\2\3\1\120\1\121\1\122\1\74"+
|
||||
"\3\3\1\123\1\124\1\125\5\3\1\126\1\127\1\130";
|
||||
"\1\42\1\73\4\0\1\13\1\74\1\3\1\75\1\3"+
|
||||
"\1\76\5\3\1\77\6\3\1\100\1\101\4\3\1\102"+
|
||||
"\1\103\1\104\1\105\1\106\1\107\1\36\1\37\1\0"+
|
||||
"\2\73\1\35\2\0\1\3\1\110\1\3\1\111\2\3"+
|
||||
"\1\112\1\113\1\114\5\3\1\115\1\3\1\116\1\42"+
|
||||
"\2\0\3\3\1\117\1\3\1\120\2\3\1\121\1\122"+
|
||||
"\1\123\1\74\3\3\1\124\1\125\1\126\5\3\1\127"+
|
||||
"\1\130\1\131";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[204];
|
||||
int [] result = new int[205];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -192,26 +193,26 @@ class _JetLexer implements FlexLexer {
|
||||
"\0\u09a6\0\u09e7\0\u0a28\0\u0a69\0\u0aaa\0\u0aeb\0\u0b2c\0\101"+
|
||||
"\0\u0b6d\0\u0bae\0\101\0\101\0\u0bef\0\u0c30\0\u0c71\0\u0cb2"+
|
||||
"\0\101\0\101\0\101\0\101\0\101\0\u0cf3\0\u0d34\0\u0d75"+
|
||||
"\0\u0db6\0\u0df7\0\u0e38\0\u0e79\0\303\0\u0eba\0\u0efb\0\u0f3c"+
|
||||
"\0\u0f7d\0\u0fbe\0\u0fff\0\u1040\0\303\0\303\0\303\0\u1081"+
|
||||
"\0\u10c2\0\u1103\0\u1144\0\u1185\0\u11c6\0\u1207\0\u1248\0\u1289"+
|
||||
"\0\303\0\u12ca\0\101\0\u130b\0\u134c\0\101\0\101\0\101"+
|
||||
"\0\101\0\101\0\101\0\101\0\101\0\101\0\101\0\u138d"+
|
||||
"\0\101\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554"+
|
||||
"\0\u1595\0\101\0\u15d6\0\u1617\0\303\0\u1658\0\u1699\0\u16da"+
|
||||
"\0\u171b\0\u175c\0\u179d\0\303\0\u17de\0\u181f\0\u1860\0\u18a1"+
|
||||
"\0\u18e2\0\u1923\0\303\0\303\0\u1964\0\u19a5\0\u19e6\0\u1a27"+
|
||||
"\0\303\0\303\0\101\0\101\0\101\0\101\0\101\0\101"+
|
||||
"\0\u1a68\0\u1aa9\0\101\0\u1aea\0\u138d\0\u1b2b\0\u1b6c\0\303"+
|
||||
"\0\u1bad\0\303\0\u1bee\0\u1c2f\0\303\0\u1c70\0\303\0\u1cb1"+
|
||||
"\0\u1cf2\0\u1d33\0\u1d74\0\u1db5\0\303\0\u1df6\0\303\0\101"+
|
||||
"\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\303\0\u1f7c\0\303"+
|
||||
"\0\u1fbd\0\u1ffe\0\303\0\303\0\303\0\101\0\u203f\0\u2080"+
|
||||
"\0\u20c1\0\303\0\303\0\303\0\u2102\0\u2143\0\u2184\0\u21c5"+
|
||||
"\0\u2206\0\303\0\303\0\303";
|
||||
"\0\u0db6\0\u0df7\0\u0e38\0\u0e79\0\u0eba\0\u0efb\0\u0f3c\0\u0f7d"+
|
||||
"\0\u0fbe\0\u0fff\0\u1040\0\u1081\0\303\0\303\0\303\0\u10c2"+
|
||||
"\0\u1103\0\u1144\0\u1185\0\u11c6\0\u1207\0\u1248\0\u1289\0\u12ca"+
|
||||
"\0\303\0\u130b\0\101\0\u134c\0\u138d\0\101\0\101\0\101"+
|
||||
"\0\101\0\101\0\101\0\101\0\101\0\101\0\101\0\u13ce"+
|
||||
"\0\101\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595"+
|
||||
"\0\u15d6\0\101\0\u1617\0\u1658\0\303\0\u1699\0\101\0\u16da"+
|
||||
"\0\u171b\0\u175c\0\u179d\0\u17de\0\303\0\u181f\0\u1860\0\u18a1"+
|
||||
"\0\u18e2\0\u1923\0\u1964\0\303\0\303\0\u19a5\0\u19e6\0\u1a27"+
|
||||
"\0\u1a68\0\303\0\303\0\101\0\101\0\101\0\101\0\101"+
|
||||
"\0\101\0\u1aa9\0\u1aea\0\101\0\u1b2b\0\u13ce\0\u1b6c\0\u1bad"+
|
||||
"\0\303\0\u1bee\0\303\0\u1c2f\0\u1c70\0\303\0\u1cb1\0\303"+
|
||||
"\0\u1cf2\0\u1d33\0\u1d74\0\u1db5\0\u1df6\0\303\0\u1e37\0\303"+
|
||||
"\0\101\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\u1f7c\0\303\0\u1fbd"+
|
||||
"\0\303\0\u1ffe\0\u203f\0\303\0\303\0\303\0\101\0\u2080"+
|
||||
"\0\u20c1\0\u2102\0\303\0\303\0\303\0\u2143\0\u2184\0\u21c5"+
|
||||
"\0\u2206\0\u2247\0\303\0\303\0\303";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[204];
|
||||
int [] result = new int[205];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -254,8 +255,8 @@ class _JetLexer implements FlexLexer {
|
||||
"\1\71\1\72\43\0\1\73\100\0\1\74\23\0\1\75"+
|
||||
"\12\0\1\75\1\76\1\77\1\61\1\62\10\0\1\62"+
|
||||
"\3\0\1\76\7\0\1\77\34\0\1\100\12\0\1\100"+
|
||||
"\2\0\1\101\102\0\1\102\34\0\1\103\3\0\1\104"+
|
||||
"\16\0\13\16\1\0\7\16\1\105\1\106\54\16\13\107"+
|
||||
"\2\0\1\101\102\0\1\102\34\0\1\103\4\0\1\104"+
|
||||
"\15\0\13\16\1\0\7\16\1\105\1\106\54\16\13\107"+
|
||||
"\1\0\10\107\1\110\1\111\53\107\1\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\1\4\1\112\1\4\1\113\7\4\1\114"+
|
||||
@@ -287,11 +288,11 @@ class _JetLexer implements FlexLexer {
|
||||
"\1\0\1\4\3\0\1\4\1\140\26\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\12\4\1\141\15\4\101\0\1\142"+
|
||||
"\3\0\1\143\55\0\1\144\16\0\1\145\100\0\1\146"+
|
||||
"\1\0\1\147\76\0\1\150\100\0\1\151\105\0\1\152"+
|
||||
"\101\0\1\153\33\0\1\154\46\0\1\155\70\0\1\156"+
|
||||
"\4\0\1\143\54\0\1\144\16\0\1\145\41\0\1\146"+
|
||||
"\46\0\1\147\70\0\1\150\2\0\1\151\75\0\1\152"+
|
||||
"\100\0\1\153\106\0\1\154\101\0\1\155\71\0\1\156"+
|
||||
"\23\0\1\100\12\0\1\100\2\0\1\157\62\0\1\160"+
|
||||
"\12\0\1\160\4\0\1\160\36\0\1\160\21\0\2\63"+
|
||||
"\12\0\1\160\4\0\1\160\37\0\1\160\20\0\2\63"+
|
||||
"\1\0\2\63\1\161\1\63\4\0\3\63\1\0\1\63"+
|
||||
"\1\0\1\63\3\0\30\63\24\0\2\64\1\0\2\64"+
|
||||
"\1\0\1\64\4\0\3\64\1\0\1\64\1\0\1\64"+
|
||||
@@ -316,140 +317,142 @@ class _JetLexer implements FlexLexer {
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\23\4\1\176\4\4\24\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\10\4\1\177\17\4\24\0\2\4\1\0"+
|
||||
"\1\4\3\0\30\4\2\0\1\177\21\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\4\4\1\200\23\4\24\0\2\4\1\0"+
|
||||
"\1\4\3\0\10\4\1\200\17\4\24\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\1\201\27\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\4\3\0\4\4\1\201\23\4\24\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\1\202\27\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\1\4\1\202\26\4\24\0\2\4\1\0\2\4"+
|
||||
"\3\0\1\4\1\203\26\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\13\4\1\203\1\4\1\204\12\4\24\0\2\4"+
|
||||
"\3\0\13\4\1\204\1\4\1\205\12\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\5\4\1\205\22\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\5\4\1\206\22\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\11\4\1\206\2\4\1\207\13\4"+
|
||||
"\1\0\1\4\3\0\11\4\1\207\2\4\1\210\13\4"+
|
||||
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\20\4\1\210\7\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\20\4\1\211\7\4"+
|
||||
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\10\4\1\211\17\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\10\4\1\212\17\4"+
|
||||
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\23\4\1\212\4\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\23\4\1\213\4\4"+
|
||||
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\14\4\1\213\13\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\14\4\1\214\13\4"+
|
||||
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\1\214\27\4\24\0"+
|
||||
"\1\0\1\4\1\0\1\4\3\0\1\215\27\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\215\24\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\216\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\216\5\4\1\217"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\217\5\4\1\220"+
|
||||
"\16\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
|
||||
"\3\4\1\0\1\4\1\0\1\4\3\0\11\4\1\220"+
|
||||
"\3\4\1\0\1\4\1\0\1\4\3\0\11\4\1\221"+
|
||||
"\16\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
|
||||
"\3\4\1\0\1\4\1\0\1\4\3\0\14\4\1\221"+
|
||||
"\6\4\1\222\4\4\101\0\1\223\50\0\1\224\3\0"+
|
||||
"\1\225\124\0\1\226\23\0\1\160\12\0\1\160\65\0"+
|
||||
"\2\162\1\0\2\162\1\227\1\162\4\0\3\162\1\0"+
|
||||
"\3\4\1\0\1\4\1\0\1\4\3\0\14\4\1\222"+
|
||||
"\6\4\1\223\4\4\101\0\1\224\50\0\1\225\3\0"+
|
||||
"\1\226\124\0\1\227\23\0\1\160\12\0\1\160\65\0"+
|
||||
"\2\162\1\0\2\162\1\230\1\162\4\0\3\162\1\0"+
|
||||
"\1\162\1\0\1\162\3\0\30\162\24\0\2\163\1\0"+
|
||||
"\2\163\1\230\1\163\4\0\3\163\1\0\1\163\1\0"+
|
||||
"\1\163\3\0\30\163\23\0\12\164\1\231\66\164\11\232"+
|
||||
"\1\233\1\165\66\232\1\0\1\100\12\0\1\100\65\0"+
|
||||
"\2\234\11\0\1\234\1\0\1\234\1\157\1\234\6\0"+
|
||||
"\1\234\1\0\1\234\2\0\1\234\7\0\2\234\7\0"+
|
||||
"\1\234\24\0\1\160\12\0\1\160\4\0\1\235\36\0"+
|
||||
"\1\235\37\0\1\157\61\0\25\173\1\236\53\173\1\0"+
|
||||
"\2\163\1\231\1\163\4\0\3\163\1\0\1\163\1\0"+
|
||||
"\1\163\3\0\30\163\23\0\12\164\1\232\66\164\11\233"+
|
||||
"\1\234\1\165\66\233\1\0\1\100\12\0\1\100\65\0"+
|
||||
"\2\235\11\0\1\235\1\0\1\235\1\157\1\235\6\0"+
|
||||
"\1\235\1\0\1\235\2\0\1\235\7\0\2\235\7\0"+
|
||||
"\1\235\24\0\1\160\12\0\1\160\4\0\1\236\37\0"+
|
||||
"\1\236\36\0\1\157\61\0\25\173\1\237\53\173\1\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\237\24\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\240\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\23\4\1\240\4\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\241\24\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\23\4\1\241\4\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\242\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\10\4\1\243\17\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\243\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\244\23\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\10\4\1\244\17\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\245\24\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\245\23\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\246\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\247\23\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\247\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\12\4\1\250\15\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\250\23\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\251\24\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\12\4\1\251\15\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\13\4\1\252\14\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\3\4\1\252\24\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\253\23\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\13\4\1\253\14\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\1\4\1\254\26\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\254\23\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\1\255\27\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\23\4\1\256\4\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\4\4\1\257\23\4\23\0\11\164"+
|
||||
"\1\260\1\231\66\164\12\232\1\261\66\232\1\0\2\234"+
|
||||
"\11\0\1\234\1\0\1\234\1\0\1\234\1\0\1\170"+
|
||||
"\4\0\1\234\1\0\1\234\1\0\1\170\1\234\7\0"+
|
||||
"\2\234\7\0\1\234\23\0\25\173\1\262\53\173\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\1\4\1\255\26\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\263\23\4\24\0"+
|
||||
"\1\4\1\0\1\4\3\0\1\256\27\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\23\4\1\257\4\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\4\4\1\260\23\4\23\0\11\164"+
|
||||
"\1\261\1\232\66\164\12\233\1\262\66\233\1\0\2\235"+
|
||||
"\11\0\1\235\1\0\1\235\1\0\1\235\1\0\1\170"+
|
||||
"\4\0\1\235\1\0\1\235\1\0\1\170\1\235\7\0"+
|
||||
"\2\235\7\0\1\235\23\0\25\173\1\263\53\173\1\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\1\264\27\4\24\0\2\4"+
|
||||
"\1\4\1\0\1\4\3\0\4\4\1\264\23\4\24\0"+
|
||||
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
|
||||
"\1\4\1\0\1\4\3\0\1\265\27\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\11\4\1\265\16\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\11\4\1\266\16\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\4\4\1\266\23\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\4\4\1\267\23\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\12\4\1\267\15\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\12\4\1\270\15\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\21\4\1\270\6\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\21\4\1\271\6\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\6\4\1\271\21\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\6\4\1\272\21\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\14\4\1\272\13\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\14\4\1\273\13\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\3\4\1\273\24\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\3\4\1\274\24\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\24\4\1\274\3\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\24\4\1\275\3\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\3\4\1\275\24\4\23\0\11\232"+
|
||||
"\1\233\1\261\66\232\25\173\1\276\53\173\1\0\2\4"+
|
||||
"\1\0\1\4\3\0\3\4\1\276\24\4\23\0\11\233"+
|
||||
"\1\234\1\262\66\233\25\173\1\277\53\173\1\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\5\4\1\277\22\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\5\4\1\300\22\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\4\4\1\300\23\4\24\0\2\4"+
|
||||
"\1\0\1\4\3\0\4\4\1\301\23\4\24\0\2\4"+
|
||||
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
|
||||
"\1\0\1\4\3\0\1\301\27\4\24\0\2\4\1\0"+
|
||||
"\1\0\1\4\3\0\1\302\27\4\24\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\16\4\1\302\11\4\24\0\2\4\1\0"+
|
||||
"\1\4\3\0\16\4\1\303\11\4\24\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\10\4\1\303\17\4\24\0\2\4\1\0"+
|
||||
"\1\4\3\0\10\4\1\304\17\4\24\0\2\4\1\0"+
|
||||
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
|
||||
"\1\4\3\0\1\304\27\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\4\3\0\1\305\27\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\1\4\1\305\26\4\24\0\2\4\1\0\2\4"+
|
||||
"\3\0\1\4\1\306\26\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\11\4\1\306\16\4\24\0\2\4\1\0\2\4"+
|
||||
"\3\0\11\4\1\307\16\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\13\4\1\307\14\4\24\0\2\4\1\0\2\4"+
|
||||
"\3\0\13\4\1\310\14\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\6\4\1\310\21\4\24\0\2\4\1\0\2\4"+
|
||||
"\3\0\6\4\1\311\21\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\12\4\1\311\15\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\3\4\1\312\24\4\24\0\2\4\1\0\2\4"+
|
||||
"\3\0\12\4\1\312\15\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\3\4\1\313\24\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\1\314\27\4\23\0";
|
||||
"\3\0\3\4\1\314\24\4\24\0\2\4\1\0\2\4"+
|
||||
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
|
||||
"\3\0\1\315\27\4\23\0";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[8775];
|
||||
int [] result = new int[8840];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -493,12 +496,12 @@ class _JetLexer implements FlexLexer {
|
||||
"\1\0\1\11\43\1\1\11\1\1\11\11\1\0\1\1"+
|
||||
"\1\0\1\1\1\0\1\1\1\0\1\11\2\1\2\11"+
|
||||
"\4\1\5\11\35\1\1\11\1\0\1\1\12\11\1\1"+
|
||||
"\1\11\2\0\2\1\4\0\1\11\30\1\6\11\1\0"+
|
||||
"\1\1\1\11\1\1\2\0\21\1\1\11\2\0\13\1"+
|
||||
"\1\11\16\1";
|
||||
"\1\11\2\0\2\1\4\0\1\11\4\1\1\11\24\1"+
|
||||
"\6\11\1\0\1\1\1\11\1\1\2\0\21\1\1\11"+
|
||||
"\2\0\13\1\1\11\16\1";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[204];
|
||||
int [] result = new int[205];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -806,355 +809,359 @@ class _JetLexer implements FlexLexer {
|
||||
case 3:
|
||||
{ return JetTokens.IDENTIFIER;
|
||||
}
|
||||
case 89: break;
|
||||
case 63:
|
||||
case 90: break;
|
||||
case 64:
|
||||
{ return JetTokens.FOR_KEYWORD ;
|
||||
}
|
||||
case 90: break;
|
||||
case 85:
|
||||
case 91: break;
|
||||
case 86:
|
||||
{ return JetTokens.RETURN_KEYWORD ;
|
||||
}
|
||||
case 91: break;
|
||||
case 71:
|
||||
case 92: break;
|
||||
case 72:
|
||||
{ return JetTokens.NULL_KEYWORD ;
|
||||
}
|
||||
case 92: break;
|
||||
case 15:
|
||||
case 93: break;
|
||||
case 16:
|
||||
{ return JetTokens.LT ;
|
||||
}
|
||||
case 93: break;
|
||||
case 94: break;
|
||||
case 45:
|
||||
{ return JetTokens.DO_KEYWORD ;
|
||||
}
|
||||
case 94: break;
|
||||
case 14:
|
||||
case 95: break;
|
||||
case 15:
|
||||
{ return JetTokens.PLUS ;
|
||||
}
|
||||
case 95: break;
|
||||
case 96: break;
|
||||
case 60:
|
||||
{ return JetTokens.RAW_STRING_LITERAL;
|
||||
}
|
||||
case 96: break;
|
||||
case 49:
|
||||
case 97: break;
|
||||
case 51:
|
||||
{ return JetTokens.PLUSEQ ;
|
||||
}
|
||||
case 97: break;
|
||||
case 98: break;
|
||||
case 27:
|
||||
{ return JetTokens.COMMA ;
|
||||
}
|
||||
case 98: break;
|
||||
case 16:
|
||||
case 99: break;
|
||||
case 17:
|
||||
{ return JetTokens.GT ;
|
||||
}
|
||||
case 99: break;
|
||||
case 100: break;
|
||||
case 4:
|
||||
{ return JetTokens.WHITE_SPACE;
|
||||
}
|
||||
case 100: break;
|
||||
case 83:
|
||||
case 101: break;
|
||||
case 84:
|
||||
{ return JetTokens.TYPEOF_KEYWORD ;
|
||||
}
|
||||
case 101: break;
|
||||
case 102: break;
|
||||
case 25:
|
||||
{ return JetTokens.RPAR ;
|
||||
}
|
||||
case 102: break;
|
||||
case 103: break;
|
||||
case 47:
|
||||
{ return JetTokens.DOUBLE_ARROW;
|
||||
}
|
||||
case 103: break;
|
||||
case 73:
|
||||
case 104: break;
|
||||
case 74:
|
||||
{ return JetTokens.TRUE_KEYWORD ;
|
||||
}
|
||||
case 104: break;
|
||||
case 105: break;
|
||||
case 30:
|
||||
{ return JetTokens.FIELD_IDENTIFIER;
|
||||
}
|
||||
case 105: break;
|
||||
case 53:
|
||||
case 106: break;
|
||||
case 55:
|
||||
{ return JetTokens.ANDAND ;
|
||||
}
|
||||
case 106: break;
|
||||
case 107: break;
|
||||
case 59:
|
||||
{ return JetTokens.DOC_COMMENT;
|
||||
}
|
||||
case 107: break;
|
||||
case 108: break;
|
||||
case 29:
|
||||
{ return JetTokens.FLOAT_LITERAL;
|
||||
}
|
||||
case 108: break;
|
||||
case 109: break;
|
||||
case 33:
|
||||
{ return JetTokens.EOL_COMMENT;
|
||||
}
|
||||
case 109: break;
|
||||
case 76:
|
||||
case 110: break;
|
||||
case 77:
|
||||
{ return JetTokens.WHEN_KEYWORD ;
|
||||
}
|
||||
case 110: break;
|
||||
case 111: break;
|
||||
case 18:
|
||||
{ return JetTokens.COLON ;
|
||||
}
|
||||
case 111: break;
|
||||
case 51:
|
||||
case 112: break;
|
||||
case 53:
|
||||
{ return JetTokens.LTEQ ;
|
||||
}
|
||||
case 112: break;
|
||||
case 113: break;
|
||||
case 40:
|
||||
{ return JetTokens.ARROW ;
|
||||
}
|
||||
case 113: break;
|
||||
case 114: break;
|
||||
case 20:
|
||||
{ return JetTokens.LBRACKET ;
|
||||
}
|
||||
case 114: break;
|
||||
case 115: break;
|
||||
case 58:
|
||||
{ yypushback(2); return JetTokens.INTEGER_LITERAL;
|
||||
}
|
||||
case 115: break;
|
||||
case 116: break;
|
||||
case 10:
|
||||
{ return JetTokens.CHARACTER_LITERAL;
|
||||
}
|
||||
case 116: break;
|
||||
case 65:
|
||||
case 117: break;
|
||||
case 66:
|
||||
{ return JetTokens.VAR_KEYWORD ;
|
||||
}
|
||||
case 117: break;
|
||||
case 52:
|
||||
case 118: break;
|
||||
case 54:
|
||||
{ return JetTokens.GTEQ ;
|
||||
}
|
||||
case 118: break;
|
||||
case 119: break;
|
||||
case 2:
|
||||
{ return JetTokens.INTEGER_LITERAL;
|
||||
}
|
||||
case 119: break;
|
||||
case 120: break;
|
||||
case 23:
|
||||
{ return JetTokens.RBRACE ;
|
||||
}
|
||||
case 120: break;
|
||||
case 78:
|
||||
case 121: break;
|
||||
case 79:
|
||||
{ return JetTokens.CLASS_KEYWORD ;
|
||||
}
|
||||
case 121: break;
|
||||
case 122: break;
|
||||
case 13:
|
||||
{ return JetTokens.EXCL ;
|
||||
}
|
||||
case 122: break;
|
||||
case 62:
|
||||
case 123: break;
|
||||
case 63:
|
||||
{ return JetTokens.TRY_KEYWORD ;
|
||||
}
|
||||
case 123: break;
|
||||
case 124: break;
|
||||
case 48:
|
||||
{ return JetTokens.EXCLEQ ;
|
||||
}
|
||||
case 124: break;
|
||||
case 125: break;
|
||||
case 39:
|
||||
{ return JetTokens.MINUSEQ ;
|
||||
}
|
||||
case 125: break;
|
||||
case 79:
|
||||
case 126: break;
|
||||
case 80:
|
||||
{ return JetTokens.THROW_KEYWORD ;
|
||||
}
|
||||
case 126: break;
|
||||
case 82:
|
||||
case 127: break;
|
||||
case 83:
|
||||
{ return JetTokens.WHILE_KEYWORD ;
|
||||
}
|
||||
case 127: break;
|
||||
case 128: break;
|
||||
case 38:
|
||||
{ return JetTokens.MINUSMINUS;
|
||||
}
|
||||
case 128: break;
|
||||
case 86:
|
||||
case 129: break;
|
||||
case 87:
|
||||
{ return JetTokens.CONTINUE_KEYWORD ;
|
||||
}
|
||||
case 129: break;
|
||||
case 130: break;
|
||||
case 32:
|
||||
{ return JetTokens.ATAT ;
|
||||
}
|
||||
case 130: break;
|
||||
case 68:
|
||||
case 131: break;
|
||||
case 69:
|
||||
{ return JetTokens.NOT_IN;
|
||||
}
|
||||
case 131: break;
|
||||
case 132: break;
|
||||
case 6:
|
||||
{ return JetTokens.DIV ;
|
||||
}
|
||||
case 132: break;
|
||||
case 56:
|
||||
case 133: break;
|
||||
case 50:
|
||||
{ return JetTokens.ELVIS ;
|
||||
}
|
||||
case 133: break;
|
||||
case 134: break;
|
||||
case 31:
|
||||
{ return JetTokens.LABEL_IDENTIFIER;
|
||||
}
|
||||
case 134: break;
|
||||
case 17:
|
||||
case 135: break;
|
||||
case 14:
|
||||
{ return JetTokens.QUEST ;
|
||||
}
|
||||
case 135: break;
|
||||
case 54:
|
||||
case 136: break;
|
||||
case 56:
|
||||
{ return JetTokens.OROR ;
|
||||
}
|
||||
case 136: break;
|
||||
case 137: break;
|
||||
case 19:
|
||||
{ return JetTokens.PERC ;
|
||||
}
|
||||
case 137: break;
|
||||
case 70:
|
||||
case 138: break;
|
||||
case 71:
|
||||
{ return JetTokens.EXCLEQEQEQ;
|
||||
}
|
||||
case 138: break;
|
||||
case 139: break;
|
||||
case 57:
|
||||
{ return JetTokens.PERCEQ ;
|
||||
}
|
||||
case 139: break;
|
||||
case 140: break;
|
||||
case 37:
|
||||
{ return JetTokens.RANGE ;
|
||||
}
|
||||
case 140: break;
|
||||
case 141: break;
|
||||
case 1:
|
||||
{ return TokenType.BAD_CHARACTER;
|
||||
}
|
||||
case 141: break;
|
||||
case 55:
|
||||
case 142: break;
|
||||
case 49:
|
||||
{ return JetTokens.SAFE_ACCESS;
|
||||
}
|
||||
case 142: break;
|
||||
case 87:
|
||||
case 143: break;
|
||||
case 88:
|
||||
{ return JetTokens.NAMESPACE_KEYWORD ;
|
||||
}
|
||||
case 143: break;
|
||||
case 69:
|
||||
case 144: break;
|
||||
case 70:
|
||||
{ return JetTokens.NOT_IS;
|
||||
}
|
||||
case 144: break;
|
||||
case 145: break;
|
||||
case 7:
|
||||
{ return JetTokens.MUL ;
|
||||
}
|
||||
case 145: break;
|
||||
case 146: break;
|
||||
case 21:
|
||||
{ return JetTokens.RBRACKET ;
|
||||
}
|
||||
case 146: break;
|
||||
case 50:
|
||||
case 147: break;
|
||||
case 52:
|
||||
{ return JetTokens.PLUSPLUS ;
|
||||
}
|
||||
case 147: break;
|
||||
case 75:
|
||||
case 148: break;
|
||||
case 76:
|
||||
{ return JetTokens.THIS_KEYWORD ;
|
||||
}
|
||||
case 148: break;
|
||||
case 149: break;
|
||||
case 8:
|
||||
{ return JetTokens.DOT ;
|
||||
}
|
||||
case 149: break;
|
||||
case 150: break;
|
||||
case 26:
|
||||
{ return JetTokens.SEMICOLON ;
|
||||
}
|
||||
case 150: break;
|
||||
case 151: break;
|
||||
case 44:
|
||||
{ return JetTokens.IF_KEYWORD ;
|
||||
}
|
||||
case 151: break;
|
||||
case 152: break;
|
||||
case 12:
|
||||
{ return JetTokens.EQ ;
|
||||
}
|
||||
case 152: break;
|
||||
case 153: break;
|
||||
case 5:
|
||||
{ return JetTokens.AT ;
|
||||
}
|
||||
case 153: break;
|
||||
case 154: break;
|
||||
case 62:
|
||||
{ return JetTokens.AS_SAFE;
|
||||
}
|
||||
case 155: break;
|
||||
case 24:
|
||||
{ return JetTokens.LPAR ;
|
||||
}
|
||||
case 154: break;
|
||||
case 156: break;
|
||||
case 9:
|
||||
{ return JetTokens.MINUS ;
|
||||
}
|
||||
case 155: break;
|
||||
case 80:
|
||||
case 157: break;
|
||||
case 81:
|
||||
{ return JetTokens.FALSE_KEYWORD ;
|
||||
}
|
||||
case 156: break;
|
||||
case 74:
|
||||
case 158: break;
|
||||
case 75:
|
||||
{ return JetTokens.TYPE_KEYWORD ;
|
||||
}
|
||||
case 157: break;
|
||||
case 64:
|
||||
case 159: break;
|
||||
case 65:
|
||||
{ return JetTokens.FUN_KEYWORD ;
|
||||
}
|
||||
case 158: break;
|
||||
case 160: break;
|
||||
case 43:
|
||||
{ return JetTokens.IS_KEYWORD ;
|
||||
}
|
||||
case 159: break;
|
||||
case 161: break;
|
||||
case 35:
|
||||
{ return JetTokens.DIVEQ ;
|
||||
}
|
||||
case 160: break;
|
||||
case 88:
|
||||
case 162: break;
|
||||
case 89:
|
||||
{ return JetTokens.EXTENSION_KEYWORD ;
|
||||
}
|
||||
case 161: break;
|
||||
case 72:
|
||||
case 163: break;
|
||||
case 73:
|
||||
{ return JetTokens.ELSE_KEYWORD ;
|
||||
}
|
||||
case 162: break;
|
||||
case 164: break;
|
||||
case 41:
|
||||
{ return JetTokens.AS_KEYWORD ;
|
||||
}
|
||||
case 163: break;
|
||||
case 165: break;
|
||||
case 42:
|
||||
{ return JetTokens.IN_KEYWORD ;
|
||||
}
|
||||
case 164: break;
|
||||
case 166: break;
|
||||
case 46:
|
||||
{ return JetTokens.EQEQ ;
|
||||
}
|
||||
case 165: break;
|
||||
case 66:
|
||||
case 167: break;
|
||||
case 67:
|
||||
{ return JetTokens.VAL_KEYWORD ;
|
||||
}
|
||||
case 166: break;
|
||||
case 67:
|
||||
case 168: break;
|
||||
case 68:
|
||||
{ return JetTokens.EQEQEQ ;
|
||||
}
|
||||
case 167: break;
|
||||
case 77:
|
||||
case 169: break;
|
||||
case 78:
|
||||
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ;
|
||||
}
|
||||
case 168: break;
|
||||
case 170: break;
|
||||
case 61:
|
||||
{ return JetTokens.NEW_KEYWORD ;
|
||||
}
|
||||
case 169: break;
|
||||
case 171: break;
|
||||
case 36:
|
||||
{ return JetTokens.MULTEQ ;
|
||||
}
|
||||
case 170: break;
|
||||
case 172: break;
|
||||
case 11:
|
||||
{ return JetTokens.STRING_LITERAL;
|
||||
}
|
||||
case 171: break;
|
||||
case 173: break;
|
||||
case 22:
|
||||
{ return JetTokens.LBRACE ;
|
||||
}
|
||||
case 172: break;
|
||||
case 84:
|
||||
case 174: break;
|
||||
case 85:
|
||||
{ return JetTokens.OBJECT_KEYWORD ;
|
||||
}
|
||||
case 173: break;
|
||||
case 81:
|
||||
case 175: break;
|
||||
case 82:
|
||||
{ return JetTokens.BREAK_KEYWORD ;
|
||||
}
|
||||
case 174: break;
|
||||
case 176: break;
|
||||
case 34:
|
||||
{ return JetTokens.BLOCK_COMMENT;
|
||||
}
|
||||
case 175: break;
|
||||
case 177: break;
|
||||
case 28:
|
||||
{ return JetTokens.HASH ;
|
||||
}
|
||||
case 176: break;
|
||||
case 178: break;
|
||||
default:
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
fun test() : Unit {
|
||||
var x : Int? = 0
|
||||
var y : Int = 0
|
||||
|
||||
x : Int?
|
||||
y : Int
|
||||
x as Int : Int
|
||||
y as Int : Int
|
||||
x as Int? : Int?
|
||||
y as Int? : Int?
|
||||
x as? Int : Int?
|
||||
y as? Int : Int?
|
||||
x as? Int? : Int?
|
||||
y as? Int? : Int?
|
||||
()
|
||||
}
|
||||
@@ -38,12 +38,18 @@ fun foo() {
|
||||
t as Any<T>?
|
||||
t as Any.Any<T>.Any<T>
|
||||
t as {() : T}
|
||||
t as? Any<T>?
|
||||
t as? Any.Any<T>.Any<T>
|
||||
t as? {() : T}
|
||||
|
||||
t : Any * 1
|
||||
t : Any? * 1
|
||||
t as Any<T>? * 1
|
||||
t as Any.Any<T>.Any<T> * 1
|
||||
t as {() : T} * 1
|
||||
t as? Any<T>? * 1
|
||||
t as? Any.Any<T>.Any<T> * 1
|
||||
t as? {() : T} * 1
|
||||
|
||||
++t : Any + 1
|
||||
a.b : Any + 1
|
||||
|
||||
@@ -803,6 +803,86 @@ JetFile: Precedence.jet
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(RBRACE)('}')
|
||||
PsiWhiteSpace('\n ')
|
||||
BINARY_WITH_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('t')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(as?)('as?')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
NULLABLE_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
TYPE_ARGUMENT_LIST
|
||||
PsiElement(LT)('<')
|
||||
TYPE_PROJECTION
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(GT)('>')
|
||||
PsiElement(QUEST)('?')
|
||||
PsiWhiteSpace('\n ')
|
||||
BINARY_WITH_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('t')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(as?)('as?')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
PsiElement(DOT)('.')
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
TYPE_ARGUMENT_LIST
|
||||
PsiElement(LT)('<')
|
||||
TYPE_PROJECTION
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(GT)('>')
|
||||
PsiElement(DOT)('.')
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
TYPE_ARGUMENT_LIST
|
||||
PsiElement(LT)('<')
|
||||
TYPE_PROJECTION
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(GT)('>')
|
||||
PsiWhiteSpace('\n ')
|
||||
BINARY_WITH_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('t')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(as?)('as?')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
PsiElement(LBRACE)('{')
|
||||
VALUE_PARAMETER_LIST
|
||||
PsiElement(LPAR)('(')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(RBRACE)('}')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
BINARY_EXPRESSION
|
||||
BINARY_WITH_TYPE
|
||||
@@ -944,6 +1024,107 @@ JetFile: Precedence.jet
|
||||
PsiWhiteSpace(' ')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiWhiteSpace('\n ')
|
||||
BINARY_EXPRESSION
|
||||
BINARY_WITH_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('t')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(as?)('as?')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
NULLABLE_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
TYPE_ARGUMENT_LIST
|
||||
PsiElement(LT)('<')
|
||||
TYPE_PROJECTION
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(GT)('>')
|
||||
PsiElement(QUEST)('?')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(MUL)('*')
|
||||
PsiWhiteSpace(' ')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiWhiteSpace('\n ')
|
||||
BINARY_EXPRESSION
|
||||
BINARY_WITH_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('t')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(as?)('as?')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
PsiElement(DOT)('.')
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
TYPE_ARGUMENT_LIST
|
||||
PsiElement(LT)('<')
|
||||
TYPE_PROJECTION
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(GT)('>')
|
||||
PsiElement(DOT)('.')
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('Any')
|
||||
TYPE_ARGUMENT_LIST
|
||||
PsiElement(LT)('<')
|
||||
TYPE_PROJECTION
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(GT)('>')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(MUL)('*')
|
||||
PsiWhiteSpace(' ')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiWhiteSpace('\n ')
|
||||
BINARY_EXPRESSION
|
||||
BINARY_WITH_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('t')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(as?)('as?')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
PsiElement(LBRACE)('{')
|
||||
VALUE_PARAMETER_LIST
|
||||
PsiElement(LPAR)('(')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('T')
|
||||
PsiElement(RBRACE)('}')
|
||||
PsiWhiteSpace(' ')
|
||||
OPERATION_REFERENCE
|
||||
PsiElement(MUL)('*')
|
||||
PsiWhiteSpace(' ')
|
||||
INTEGER_CONSTANT
|
||||
PsiElement(INTEGER_LITERAL)('1')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
BINARY_EXPRESSION
|
||||
BINARY_WITH_TYPE
|
||||
|
||||
Reference in New Issue
Block a user