JET-180 Rename typeof to typeinfo, type or make it a function

This commit is contained in:
Andrey Breslav
2011-07-08 20:27:40 +04:00
parent 7ae58d2efb
commit d4020a422b
16 changed files with 300 additions and 428 deletions
-3
View File
@@ -117,10 +117,7 @@ atomicExpression
: if : if
: when : when
: try : try
: "typeof" "(" expression ")"
// : "new" constructorInvocation
: objectLiteral : objectLiteral
// : declaration
: jump : jump
: loop : loop
: SimpleName : SimpleName
+3
View File
@@ -5,6 +5,9 @@ namespace typeinfo {
fun isSubtypeOf(other : TypeInfo<*>) : Boolean fun isSubtypeOf(other : TypeInfo<*>) : Boolean
fun isInstance(obj : Any?) : Boolean fun isInstance(obj : Any?) : Boolean
} }
fun typeinfo<T>() : TypeInfo<T>
fun typeinfo<T>(expression : T) : TypeInfo<out T>
} }
namespace io { namespace io {
@@ -73,7 +73,6 @@ public interface JetNodeTypes {
JetNodeType TUPLE = new JetNodeType("TUPLE", JetTupleExpression.class); JetNodeType TUPLE = new JetNodeType("TUPLE", JetTupleExpression.class);
JetNodeType PARENTHESIZED = new JetNodeType("PARENTHESIZED", JetParenthesizedExpression.class); JetNodeType PARENTHESIZED = new JetNodeType("PARENTHESIZED", JetParenthesizedExpression.class);
JetNodeType TYPEOF = new JetNodeType("TYPEOF", JetTypeofExpression.class);
JetNodeType RETURN = new JetNodeType("RETURN", JetReturnExpression.class); JetNodeType RETURN = new JetNodeType("RETURN", JetReturnExpression.class);
JetNodeType THROW = new JetNodeType("THROW", JetThrowExpression.class); JetNodeType THROW = new JetNodeType("THROW", JetThrowExpression.class);
JetNodeType CONTINUE = new JetNodeType("CONTINUE", JetContinueExpression.class); JetNodeType CONTINUE = new JetNodeType("CONTINUE", JetContinueExpression.class);
@@ -1643,12 +1643,6 @@ public class ExpressionCodegen extends JetVisitor {
} }
} }
@Override
public void visitTypeofExpression(JetTypeofExpression expression) {
gen(expression.getBaseExpression(), JET_OBJECT_TYPE);
v.invokeinterface("jet/JetObject", "getTypeInfo", "()Ljet/typeinfo/TypeInfo;");
}
@Override @Override
public void visitIsExpression(final JetIsExpression expression) { public void visitIsExpression(final JetIsExpression expression) {
final StackValue match = StackValue.expression(OBJECT_TYPE, expression.getLeftHandSide(), this); final StackValue match = StackValue.expression(OBJECT_TYPE, expression.getLeftHandSide(), this);
@@ -603,12 +603,6 @@ public class JetControlFlowProcessor {
builder.read(expression); builder.read(expression);
} }
@Override
public void visitTypeofExpression(JetTypeofExpression expression) {
value(expression.getBaseExpression(), false, false);
builder.read(expression);
}
@Override @Override
public void visitIsExpression(JetIsExpression expression) { public void visitIsExpression(JetIsExpression expression) {
value(expression.getLeftHandSide(), false, inCondition); value(expression.getLeftHandSide(), false, inCondition);
@@ -21,8 +21,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create( private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL, INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL,
NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, NULL_KEYWORD, TYPEOF_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, NULL_KEYWORD,
// NEW_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD,
CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD,
WHEN_KEYWORD, RBRACKET, RBRACE, RPAR, PLUSPLUS, MINUSMINUS, MUL, PLUS, MINUS, EXCL, DIV, PERC, LTEQ, WHEN_KEYWORD, RBRACKET, RBRACE, RPAR, PLUSPLUS, MINUSMINUS, MUL, PLUS, MINUS, EXCL, DIV, PERC, LTEQ,
@@ -54,8 +53,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
IF_KEYWORD, // if IF_KEYWORD, // if
WHEN_KEYWORD, // when WHEN_KEYWORD, // when
TRY_KEYWORD, // try TRY_KEYWORD, // try
TYPEOF_KEYWORD, // typeof
// NEW_KEYWORD, // new
OBJECT_KEYWORD, // object OBJECT_KEYWORD, // object
// jump // jump
@@ -468,8 +465,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
* atomicExpression * atomicExpression
* : tupleLiteral // or parenthesized element * : tupleLiteral // or parenthesized element
* : "this" getEntryPoint? ("<" type ">")? * : "this" getEntryPoint? ("<" type ">")?
* : "typeof" "(" element ")"
* : "new" constructorInvocation
* : objectLiteral * : objectLiteral
* : jump * : jump
* : if * : if
@@ -495,12 +490,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
else if (at(THIS_KEYWORD)) { else if (at(THIS_KEYWORD)) {
parseThisExpression(); parseThisExpression();
} }
else if (at(TYPEOF_KEYWORD)) {
parseTypeOf();
}
// else if (at(NEW_KEYWORD)) {
// parseNew();
// }
else if (at(OBJECT_KEYWORD)) { else if (at(OBJECT_KEYWORD)) {
parseObjectLiteral(); parseObjectLiteral();
} }
@@ -1431,44 +1420,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
marker.done(THROW); marker.done(THROW);
} }
// /*
// * "new" constructorInvocation // identical to new functionCall
// *
// * constructorInvocation
// * : userType callSuffix
// */
// private void parseNew() {
// assert _at(NEW_KEYWORD);
//
// PsiBuilder.Marker creation = mark();
// advance(); // NEW_KEYWORD
//
// myJetParsing.parseTypeRef();
// parseCallSuffix();
//
// creation.done(NEW);
// }
/*
* "typeof" "(" element ")"
*/
private void parseTypeOf() {
assert _at(TYPEOF_KEYWORD);
PsiBuilder.Marker typeof = mark();
advance(); // TYPEOF_KEYWORD
myBuilder.disableNewlines();
expect(LPAR, "Expecting '('");
parseExpression();
expect(RPAR, "Expecting ')'");
myBuilder.restoreNewlinesState();
typeof.done(TYPEOF);
}
/* /*
* tupleLiteral // Ambiguity when after a SimpleName (infix call). In this case (e) is treated as an element in parentheses * tupleLiteral // Ambiguity when after a SimpleName (infix call). In this case (e) is treated as an element in parentheses
* // to put a tuple, write write ((e)) * // to put a tuple, write write ((e))
@@ -1,22 +0,0 @@
package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
/**
* @author max
*/
public class JetTypeofExpression extends JetExpression {
public JetTypeofExpression(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(JetVisitor visitor) {
visitor.visitTypeofExpression(this);
}
public JetExpression getBaseExpression() {
return findChildByClass(JetExpression.class);
}
}
@@ -166,10 +166,6 @@ public class JetVisitor extends PsiElementVisitor {
visitExpression(expression); visitExpression(expression);
} }
public void visitTypeofExpression(JetTypeofExpression expression) {
visitExpression(expression);
}
public void visitBinaryExpression(JetBinaryExpression expression) { public void visitBinaryExpression(JetBinaryExpression expression) {
visitExpression(expression); visitExpression(expression);
} }
@@ -1113,12 +1113,6 @@ public class JetTypeInferrer {
result = JetStandardClasses.getNothingType(); result = JetStandardClasses.getNothingType();
} }
@Override
public void visitTypeofExpression(JetTypeofExpression expression) {
JetType type = services.safeGetType(context.scope, expression.getBaseExpression(), false, NO_EXPECTED_TYPE); // TODO
result = semanticServices.getStandardLibrary().getTypeInfoType(type);
}
@Override @Override
public void visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression) { public void visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression) {
IElementType operationType = expression.getOperationSign().getReferencedNameElementType(); IElementType operationType = expression.getOperationSign().getReferencedNameElementType();
@@ -95,7 +95,6 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
<YYINITIAL> "extension" { return JetTokens.EXTENSION_KEYWORD ;} <YYINITIAL> "extension" { return JetTokens.EXTENSION_KEYWORD ;}
<YYINITIAL> "continue" { return JetTokens.CONTINUE_KEYWORD ;} <YYINITIAL> "continue" { return JetTokens.CONTINUE_KEYWORD ;}
<YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;} <YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;}
<YYINITIAL> "typeof" { return JetTokens.TYPEOF_KEYWORD ;}
<YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;} <YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;}
<YYINITIAL> "while" { return JetTokens.WHILE_KEYWORD ;} <YYINITIAL> "while" { return JetTokens.WHILE_KEYWORD ;}
<YYINITIAL> "break" { return JetTokens.BREAK_KEYWORD ;} <YYINITIAL> "break" { return JetTokens.BREAK_KEYWORD ;}
@@ -34,8 +34,6 @@ public interface JetTokens {
JetKeywordToken EXTENSION_KEYWORD = JetKeywordToken.keyword("extension"); JetKeywordToken EXTENSION_KEYWORD = JetKeywordToken.keyword("extension");
JetKeywordToken FOR_KEYWORD = JetKeywordToken.keyword("for"); JetKeywordToken FOR_KEYWORD = JetKeywordToken.keyword("for");
JetKeywordToken NULL_KEYWORD = JetKeywordToken.keyword("null"); JetKeywordToken NULL_KEYWORD = JetKeywordToken.keyword("null");
JetKeywordToken TYPEOF_KEYWORD = JetKeywordToken.keyword("typeof");
// JetKeywordToken NEW_KEYWORD = JetKeywordToken.keyword("new");
JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true"); JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true");
JetKeywordToken FALSE_KEYWORD = JetKeywordToken.keyword("false"); JetKeywordToken FALSE_KEYWORD = JetKeywordToken.keyword("false");
JetKeywordToken IS_KEYWORD = JetKeywordToken.keyword("is"); JetKeywordToken IS_KEYWORD = JetKeywordToken.keyword("is");
@@ -139,8 +137,7 @@ public interface JetTokens {
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD,
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD, TYPEOF_KEYWORD, NULL_KEYWORD,
// NEW_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, TRY_KEYWORD, WHEN_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, TRY_KEYWORD, WHEN_KEYWORD,
+292 -301
View File
@@ -1,19 +1,17 @@
/* The following code was generated by JFlex 1.4.3 on 6/15/11 2:54 PM */ /* The following code was generated by JFlex 1.4.3 on 7/8/11 8:13 PM */
/* It's an automatically generated code. Do not modify it. */ /* It's an automatically generated code. Do not modify it. */
package org.jetbrains.jet.lexer; package org.jetbrains.jet.lexer;
import com.intellij.lexer.*; import com.intellij.lexer.FlexLexer;
import com.intellij.psi.*; import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.IElementType;
import org.jetbrains.jet.lexer.JetTokens;
/** /**
* This class is a scanner generated by * This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3 * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 6/15/11 2:54 PM from the specification file * on 7/8/11 8:13 PM from the specification file
* <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt> * <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt>
*/ */
class _JetLexer implements FlexLexer { class _JetLexer implements FlexLexer {
@@ -42,9 +40,9 @@ class _JetLexer implements FlexLexer {
"\1\77\1\21\1\17\1\11\1\14\11\1\1\66\1\76\1\62\1\56"+ "\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"+ "\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"+ "\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\0\1\4\1\6\1\27\1\43\1\34\1\55\1\31\1\51\1\4"+
"\1\50\1\37\1\46\1\52\1\51\1\30\1\26\1\40\1\33\1\4"+ "\1\46\1\37\1\44\1\50\1\47\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\42\1\32\1\36\1\41\1\54\1\45\1\35\1\52\1\4\1\72"+
"\1\65\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"+ "\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"+ "\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4\21\0\130\5"+
@@ -150,15 +148,15 @@ class _JetLexer implements FlexLexer {
"\1\57\1\0\1\60\1\61\1\62\1\63\1\64\1\65"+ "\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\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\2\3\1\75\5\3"+ "\1\42\1\73\4\0\1\13\1\74\2\3\1\75\5\3"+
"\1\76\6\3\1\77\1\100\4\3\1\101\1\102\1\103"+ "\1\76\11\3\1\77\1\100\1\3\1\101\1\102\1\103"+
"\1\104\1\105\1\106\1\36\1\37\1\0\2\73\1\35"+ "\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"+ "\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\3\1\113\3\3\1\114\2\3\1\115\1\42\2\0"+
"\1\116\1\3\1\117\2\3\1\120\1\121\1\122\1\74"+ "\3\3\1\116\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"; "\3\3\1\123\1\124\5\3\1\125\1\126\1\127";
private static int [] zzUnpackAction() { private static int [] zzUnpackAction() {
int [] result = new int[203]; int [] result = new int[201];
int offset = 0; int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result; return result;
@@ -200,18 +198,18 @@ class _JetLexer implements FlexLexer {
"\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595"+ "\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595"+
"\0\101\0\u15d6\0\u1617\0\u1658\0\101\0\u1699\0\u16da\0\u171b"+ "\0\101\0\u15d6\0\u1617\0\u1658\0\101\0\u1699\0\u16da\0\u171b"+
"\0\u175c\0\u179d\0\303\0\u17de\0\u181f\0\u1860\0\u18a1\0\u18e2"+ "\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\u1923\0\u1964\0\u19a5\0\u19e6\0\303\0\303\0\u1a27\0\303"+
"\0\303\0\101\0\101\0\101\0\101\0\101\0\101\0\u1a68"+ "\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\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\303\0\u1bee\0\u1c2f\0\303\0\303\0\u1c70\0\303\0\u1cb1"+
"\0\u1d33\0\u1d74\0\u1db5\0\303\0\u1df6\0\303\0\101\0\u1e37"+ "\0\u1cf2\0\u1d33\0\303\0\u1d74\0\u1db5\0\303\0\101\0\u1df6"+
"\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\303\0\u1f7c\0\303\0\u1fbd"+ "\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\303\0\303\0\u1f3b\0\u1f7c"+
"\0\u1ffe\0\303\0\303\0\303\0\101\0\u203f\0\u2080\0\u20c1"+ "\0\303\0\303\0\303\0\101\0\u1fbd\0\u1ffe\0\u203f\0\303"+
"\0\303\0\303\0\303\0\u2102\0\u2143\0\u2184\0\u21c5\0\u2206"+ "\0\303\0\u2080\0\u20c1\0\u2102\0\u2143\0\u2184\0\303\0\303"+
"\0\303\0\303\0\303"; "\0\303";
private static int [] zzUnpackRowMap() { private static int [] zzUnpackRowMap() {
int [] result = new int[203]; int [] result = new int[201];
int offset = 0; int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result; return result;
@@ -238,7 +236,7 @@ class _JetLexer implements FlexLexer {
"\1\10\1\11\1\12\1\5\1\13\2\4\1\14\1\4"+ "\1\10\1\11\1\12\1\5\1\13\2\4\1\14\1\4"+
"\1\15\1\4\1\16\1\2\1\17\1\20\1\21\1\4"+ "\1\15\1\4\1\16\1\2\1\17\1\20\1\21\1\4"+
"\1\22\2\4\1\23\1\4\1\24\1\25\1\26\1\4"+ "\1\22\2\4\1\23\1\4\1\24\1\25\1\26\1\4"+
"\1\27\1\4\1\30\1\31\1\4\1\32\3\4\1\33"+ "\1\27\1\30\1\4\1\31\3\4\1\32\1\4\1\33"+
"\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43"+ "\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43"+
"\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+ "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+
"\1\54\1\55\1\56\1\57\1\60\102\0\1\3\12\0"+ "\1\54\1\55\1\56\1\57\1\60\102\0\1\3\12\0"+
@@ -253,7 +251,7 @@ class _JetLexer implements FlexLexer {
"\2\66\1\0\1\66\1\0\1\66\3\0\30\66\34\0"+ "\2\66\1\0\1\66\1\0\1\66\3\0\30\66\34\0"+
"\1\71\1\72\43\0\1\73\100\0\1\74\23\0\1\75"+ "\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"+ "\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"+ "\3\0\1\76\5\0\1\77\36\0\1\100\12\0\1\100"+
"\2\0\1\101\102\0\1\102\34\0\1\103\4\0\1\104"+ "\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"+ "\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"+ "\1\0\10\107\1\110\1\111\53\107\1\0\2\4\1\0"+
@@ -262,194 +260,191 @@ class _JetLexer implements FlexLexer {
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\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\4\4\1\114\23\4\24\0"+ "\1\4\1\0\1\4\3\0\4\4\1\114\23\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\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\7\4\1\115\13\4\1\116"+ "\1\4\1\0\1\4\3\0\7\4\1\115\11\4\1\116"+
"\4\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\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\12\4\1\117"+ "\3\4\1\0\1\4\1\0\1\4\3\0\12\4\1\117"+
"\10\4\1\120\4\4\24\0\2\4\1\0\2\4\1\0"+ "\6\4\1\120\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"+ "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\14\4\1\121\1\122\4\4\1\123\5\4\24\0\2\4"+ "\14\4\1\121\3\4\1\122\3\4\1\123\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\1\124\3\4\1\125\16\4"+
"\1\126\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\15\4"+
"\1\127\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\3\4"+
"\1\130\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\14\4"+
"\1\131\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\132\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\1\4"+
"\1\133\10\4\1\134\1\135\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\20\4\1\136\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\1\4\1\137\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\140\15\4\101\0\1\141\4\0"+
"\1\142\54\0\1\143\16\0\1\144\41\0\1\145\46\0"+
"\1\146\70\0\1\147\2\0\1\150\75\0\1\151\100\0"+
"\1\152\106\0\1\153\101\0\1\154\71\0\1\155\23\0"+
"\1\100\12\0\1\100\2\0\1\156\62\0\1\157\12\0"+
"\1\157\4\0\1\157\37\0\1\157\20\0\2\63\1\0"+
"\2\63\1\160\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\3\0"+
"\30\64\25\0\1\161\1\0\1\161\2\0\1\161\5\0"+
"\2\161\1\0\1\161\1\0\1\161\3\0\30\161\24\0"+
"\2\66\1\0\2\66\1\0\1\66\4\0\3\66\1\0"+
"\1\66\1\0\1\66\3\0\30\66\25\0\1\162\1\0"+
"\1\162\2\0\1\162\5\0\2\162\1\0\1\162\1\0"+
"\1\162\3\0\30\162\23\0\13\71\1\0\65\71\12\163"+
"\1\164\66\163\1\0\1\75\12\0\1\75\2\0\1\165"+
"\1\62\10\0\1\62\50\0\2\76\11\0\1\76\1\0"+
"\1\76\1\166\1\76\1\0\1\167\4\0\1\76\1\0"+
"\1\76\1\0\1\167\1\76\6\0\1\76\5\0\1\76"+
"\3\0\1\76\24\0\1\77\12\0\1\77\2\0\1\170"+
"\62\0\1\100\12\0\1\100\3\0\1\62\10\0\1\62"+
"\47\0\13\16\1\0\65\16\13\107\1\0\10\107\1\110"+
"\1\171\66\107\1\0\65\107\25\0\1\172\54\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\1\124\3\4\1\125\11\4\1\126"+ "\1\0\1\4\3\0\2\4\1\173\25\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\174\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\30\4\2\0\1\175\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\10\4\1\176\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\4\4\1\177\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\200\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\201\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\202\10\4\1\203\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\11\4\1\204\2\4\1\205"+
"\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\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\16\4\1\207"+
"\11\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\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\17\4\1\127"+ "\3\4\1\0\1\4\1\0\1\4\3\0\10\4\1\210"+
"\10\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\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\130"+ "\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\211"+
"\24\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\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\4\1\131"+ "\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\212"+
"\10\4\1\132\1\133\14\4\24\0\2\4\1\0\2\4"+ "\5\4\1\213\16\4\24\0\2\4\1\0\2\4\1\0"+
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
"\3\0\14\4\1\134\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\22\4\1\135\5\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\22\4\1\136\5\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\137\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\140\15\4\101\0\1\141\4\0\1\142"+
"\54\0\1\143\16\0\1\144\41\0\1\145\46\0\1\146"+
"\70\0\1\147\2\0\1\150\75\0\1\151\100\0\1\152"+
"\106\0\1\153\101\0\1\154\71\0\1\155\23\0\1\100"+
"\12\0\1\100\2\0\1\156\62\0\1\157\12\0\1\157"+
"\4\0\1\157\37\0\1\157\20\0\2\63\1\0\2\63"+
"\1\160\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\3\0\30\64"+
"\25\0\1\161\1\0\1\161\2\0\1\161\5\0\2\161"+
"\1\0\1\161\1\0\1\161\3\0\30\161\24\0\2\66"+
"\1\0\2\66\1\0\1\66\4\0\3\66\1\0\1\66"+
"\1\0\1\66\3\0\30\66\25\0\1\162\1\0\1\162"+
"\2\0\1\162\5\0\2\162\1\0\1\162\1\0\1\162"+
"\3\0\30\162\23\0\13\71\1\0\65\71\12\163\1\164"+
"\66\163\1\0\1\75\12\0\1\75\2\0\1\165\1\62"+
"\10\0\1\62\50\0\2\76\11\0\1\76\1\0\1\76"+
"\1\166\1\76\1\0\1\167\4\0\1\76\1\0\1\76"+
"\1\0\1\167\1\76\7\0\2\76\7\0\1\76\24\0"+
"\1\77\12\0\1\77\2\0\1\170\62\0\1\100\12\0"+
"\1\100\3\0\1\62\10\0\1\62\47\0\13\16\1\0"+
"\65\16\13\107\1\0\10\107\1\110\1\171\66\107\1\0"+
"\65\107\25\0\1\172\54\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\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\2\4\1\173\25\4\24\0\2\4\1\0\2\4\1\0"+ "\21\4\1\214\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"+ "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\23\4\1\174\4\4\24\0\2\4\1\0\2\4\1\0"+ "\14\4\1\215\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\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\30\4\2\0\1\175\21\0\2\4\1\0\2\4\1\0"+ "\1\216\27\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\10\4\1\176\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"+
"\4\4\1\177\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\200\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\201\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\202\1\4\1\203\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\204\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\205\2\4\1\206\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\207\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\210\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\211\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\212\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\213\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\214\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\215\5\4\1\216\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\217\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\220\6\4\1\221"+
"\4\4\101\0\1\222\50\0\1\223\3\0\1\224\124\0"+
"\1\225\23\0\1\157\12\0\1\157\65\0\2\161\1\0"+
"\2\161\1\226\1\161\4\0\3\161\1\0\1\161\1\0"+
"\1\161\3\0\30\161\24\0\2\162\1\0\2\162\1\227"+
"\1\162\4\0\3\162\1\0\1\162\1\0\1\162\3\0"+
"\30\162\23\0\12\163\1\230\66\163\11\231\1\232\1\164"+
"\66\231\1\0\1\100\12\0\1\100\65\0\2\233\11\0"+
"\1\233\1\0\1\233\1\156\1\233\6\0\1\233\1\0"+
"\1\233\2\0\1\233\7\0\2\233\7\0\1\233\24\0"+
"\1\157\12\0\1\157\4\0\1\234\37\0\1\234\36\0"+
"\1\156\61\0\25\172\1\235\53\172\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\236\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\237\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\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\3\4\1\241\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\242\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\4\4\1\243\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\244\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\245\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\246\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\247\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\250\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\13\4\1\251\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\4\4\1\252\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\4\1\253\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\1\254\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\255\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\256\23\4\23\0\11\163\1\257\1\230"+
"\66\163\12\231\1\260\66\231\1\0\2\233\11\0\1\233"+
"\1\0\1\233\1\0\1\233\1\0\1\167\4\0\1\233"+
"\1\0\1\233\1\0\1\167\1\233\7\0\2\233\7\0"+
"\1\233\23\0\25\172\1\261\53\172\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\4\4\1\262\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\263\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\264\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\265\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\266\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\267\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\270\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\271\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\272\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\273\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\274\24\4\23\0\11\231\1\232\1\260"+
"\66\231\25\172\1\275\53\172\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\276\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\277\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\300\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\301\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\302\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\303\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\304\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"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\11\4"+
"\1\305\16\4\24\0\2\4\1\0\2\4\1\0\1\4"+ "\1\217\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"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\14\4"+
"\1\306\14\4\24\0\2\4\1\0\2\4\1\0\1\4"+ "\1\220\4\4\1\221\6\4\101\0\1\222\50\0\1\223"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\6\4"+ "\3\0\1\224\124\0\1\225\23\0\1\157\12\0\1\157"+
"\1\307\21\4\24\0\2\4\1\0\2\4\1\0\1\4"+ "\65\0\2\161\1\0\2\161\1\226\1\161\4\0\3\161"+
"\1\0\1\161\1\0\1\161\3\0\30\161\24\0\2\162"+
"\1\0\2\162\1\227\1\162\4\0\3\162\1\0\1\162"+
"\1\0\1\162\3\0\30\162\23\0\12\163\1\230\66\163"+
"\11\231\1\232\1\164\66\231\1\0\1\100\12\0\1\100"+
"\65\0\2\233\11\0\1\233\1\0\1\233\1\156\1\233"+
"\6\0\1\233\1\0\1\233\2\0\1\233\6\0\1\233"+
"\5\0\1\233\3\0\1\233\24\0\1\157\12\0\1\157"+
"\4\0\1\234\37\0\1\234\36\0\1\156\61\0\25\172"+
"\1\235\53\172\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\236\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\21\4"+
"\1\237\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\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\3\4"+
"\1\241\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\242\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\4\4"+
"\1\243\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\244\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\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\12\4"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\12\4"+
"\1\310\15\4\24\0\2\4\1\0\2\4\1\0\1\4"+ "\1\246\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"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\311\24\4\24\0\2\4\1\0\2\4\1\0\1\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\3\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\1\0\1\4"+ "\1\250\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\313"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\13\4"+
"\27\4\23\0"; "\1\251\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\252\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\1\253"+
"\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\21\4\1\254"+
"\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\4\4\1\255"+
"\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\4\4\1\256"+
"\23\4\23\0\11\163\1\257\1\230\66\163\12\231\1\260"+
"\66\231\1\0\2\233\11\0\1\233\1\0\1\233\1\0"+
"\1\233\1\0\1\167\4\0\1\233\1\0\1\233\1\0"+
"\1\167\1\233\6\0\1\233\5\0\1\233\3\0\1\233"+
"\23\0\25\172\1\261\53\172\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\4\4\1\262\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\263\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\264\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\265\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"+
"\17\4\1\266\10\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\267\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\270\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"+
"\22\4\1\271\5\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\272\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\273\24\4\23\0\11\231\1\232\1\260\66\231"+
"\25\172\1\274\53\172\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\275\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\276\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\277\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\10\4"+
"\1\300\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\301"+
"\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\302"+
"\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\303"+
"\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\304"+
"\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\305"+
"\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\306"+
"\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\307"+
"\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\310"+
"\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\311\27\4"+
"\23\0";
private static int [] zzUnpackTrans() { private static int [] zzUnpackTrans() {
int [] result = new int[8775]; int [] result = new int[8645];
int offset = 0; int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result; return result;
@@ -495,10 +490,10 @@ class _JetLexer implements FlexLexer {
"\4\1\5\11\34\1\1\11\1\0\1\1\12\11\1\1"+ "\4\1\5\11\34\1\1\11\1\0\1\1\12\11\1\1"+
"\1\11\2\0\2\1\4\0\1\11\3\1\1\11\24\1"+ "\1\11\2\0\2\1\4\0\1\11\3\1\1\11\24\1"+
"\6\11\1\0\1\1\1\11\1\1\2\0\21\1\1\11"+ "\6\11\1\0\1\1\1\11\1\1\2\0\21\1\1\11"+
"\2\0\13\1\1\11\16\1"; "\2\0\12\1\1\11\15\1";
private static int [] zzUnpackAttribute() { private static int [] zzUnpackAttribute() {
int [] result = new int[203]; int [] result = new int[201];
int offset = 0; int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result; return result;
@@ -806,355 +801,351 @@ class _JetLexer implements FlexLexer {
case 3: case 3:
{ return JetTokens.IDENTIFIER; { return JetTokens.IDENTIFIER;
} }
case 89: break; case 88: break;
case 63: case 63:
{ return JetTokens.FOR_KEYWORD ; { return JetTokens.FOR_KEYWORD ;
} }
case 90: break; case 89: break;
case 85: case 84:
{ return JetTokens.RETURN_KEYWORD ; { return JetTokens.RETURN_KEYWORD ;
} }
case 91: break; case 90: break;
case 71: case 71:
{ return JetTokens.NULL_KEYWORD ; { return JetTokens.NULL_KEYWORD ;
} }
case 92: break; case 91: break;
case 16: case 16:
{ return JetTokens.LT ; { return JetTokens.LT ;
} }
case 93: break; case 92: break;
case 45: case 45:
{ return JetTokens.DO_KEYWORD ; { return JetTokens.DO_KEYWORD ;
} }
case 94: break; case 93: break;
case 15: case 15:
{ return JetTokens.PLUS ; { return JetTokens.PLUS ;
} }
case 95: break; case 94: break;
case 60: case 60:
{ return JetTokens.RAW_STRING_LITERAL; { return JetTokens.RAW_STRING_LITERAL;
} }
case 96: break; case 95: break;
case 51: case 51:
{ return JetTokens.PLUSEQ ; { return JetTokens.PLUSEQ ;
} }
case 97: break; case 96: break;
case 27: case 27:
{ return JetTokens.COMMA ; { return JetTokens.COMMA ;
} }
case 98: break; case 97: break;
case 17: case 17:
{ return JetTokens.GT ; { return JetTokens.GT ;
} }
case 99: break; case 98: break;
case 4: case 4:
{ return JetTokens.WHITE_SPACE; { return JetTokens.WHITE_SPACE;
} }
case 100: break; case 99: break;
case 83:
{ return JetTokens.TYPEOF_KEYWORD ;
}
case 101: break;
case 25: case 25:
{ return JetTokens.RPAR ; { return JetTokens.RPAR ;
} }
case 102: break; case 100: break;
case 47: case 47:
{ return JetTokens.DOUBLE_ARROW; { return JetTokens.DOUBLE_ARROW;
} }
case 103: break; case 101: break;
case 73: case 73:
{ return JetTokens.TRUE_KEYWORD ; { return JetTokens.TRUE_KEYWORD ;
} }
case 104: break; case 102: break;
case 30: case 30:
{ return JetTokens.FIELD_IDENTIFIER; { return JetTokens.FIELD_IDENTIFIER;
} }
case 105: break; case 103: break;
case 55: case 55:
{ return JetTokens.ANDAND ; { return JetTokens.ANDAND ;
} }
case 106: break; case 104: break;
case 59: case 59:
{ return JetTokens.DOC_COMMENT; { return JetTokens.DOC_COMMENT;
} }
case 107: break; case 105: break;
case 29: case 29:
{ return JetTokens.FLOAT_LITERAL; { return JetTokens.FLOAT_LITERAL;
} }
case 108: break; case 106: break;
case 33: case 33:
{ return JetTokens.EOL_COMMENT; { return JetTokens.EOL_COMMENT;
} }
case 109: break; case 107: break;
case 76: case 76:
{ return JetTokens.WHEN_KEYWORD ; { return JetTokens.WHEN_KEYWORD ;
} }
case 110: break; case 108: break;
case 18: case 18:
{ return JetTokens.COLON ; { return JetTokens.COLON ;
} }
case 111: break; case 109: break;
case 53: case 53:
{ return JetTokens.LTEQ ; { return JetTokens.LTEQ ;
} }
case 112: break; case 110: break;
case 40: case 40:
{ return JetTokens.ARROW ; { return JetTokens.ARROW ;
} }
case 113: break; case 111: break;
case 20: case 20:
{ return JetTokens.LBRACKET ; { return JetTokens.LBRACKET ;
} }
case 114: break; case 112: break;
case 58: case 58:
{ yypushback(2); return JetTokens.INTEGER_LITERAL; { yypushback(2); return JetTokens.INTEGER_LITERAL;
} }
case 115: break; case 113: break;
case 10: case 10:
{ return JetTokens.CHARACTER_LITERAL; { return JetTokens.CHARACTER_LITERAL;
} }
case 116: break; case 114: break;
case 65: case 65:
{ return JetTokens.VAR_KEYWORD ; { return JetTokens.VAR_KEYWORD ;
} }
case 117: break; case 115: break;
case 54: case 54:
{ return JetTokens.GTEQ ; { return JetTokens.GTEQ ;
} }
case 118: break; case 116: break;
case 2: case 2:
{ return JetTokens.INTEGER_LITERAL; { return JetTokens.INTEGER_LITERAL;
} }
case 119: break; case 117: break;
case 23: case 23:
{ return JetTokens.RBRACE ; { return JetTokens.RBRACE ;
} }
case 120: break; case 118: break;
case 78: case 78:
{ return JetTokens.CLASS_KEYWORD ; { return JetTokens.CLASS_KEYWORD ;
} }
case 121: break; case 119: break;
case 13: case 13:
{ return JetTokens.EXCL ; { return JetTokens.EXCL ;
} }
case 122: break; case 120: break;
case 62: case 62:
{ return JetTokens.TRY_KEYWORD ; { return JetTokens.TRY_KEYWORD ;
} }
case 123: break; case 121: break;
case 48: case 48:
{ return JetTokens.EXCLEQ ; { return JetTokens.EXCLEQ ;
} }
case 124: break; case 122: break;
case 39: case 39:
{ return JetTokens.MINUSEQ ; { return JetTokens.MINUSEQ ;
} }
case 125: break; case 123: break;
case 79: case 79:
{ return JetTokens.THROW_KEYWORD ; { return JetTokens.THROW_KEYWORD ;
} }
case 126: break; case 124: break;
case 82: case 81:
{ return JetTokens.WHILE_KEYWORD ; { return JetTokens.WHILE_KEYWORD ;
} }
case 127: break; case 125: break;
case 38: case 38:
{ return JetTokens.MINUSMINUS; { return JetTokens.MINUSMINUS;
} }
case 128: break; case 126: break;
case 86: case 85:
{ return JetTokens.CONTINUE_KEYWORD ; { return JetTokens.CONTINUE_KEYWORD ;
} }
case 129: break; case 127: break;
case 32: case 32:
{ return JetTokens.ATAT ; { return JetTokens.ATAT ;
} }
case 130: break; case 128: break;
case 68: case 68:
{ return JetTokens.NOT_IN; { return JetTokens.NOT_IN;
} }
case 131: break; case 129: break;
case 6: case 6:
{ return JetTokens.DIV ; { return JetTokens.DIV ;
} }
case 132: break; case 130: break;
case 50: case 50:
{ return JetTokens.ELVIS ; { return JetTokens.ELVIS ;
} }
case 133: break; case 131: break;
case 31: case 31:
{ return JetTokens.LABEL_IDENTIFIER; { return JetTokens.LABEL_IDENTIFIER;
} }
case 134: break; case 132: break;
case 14: case 14:
{ return JetTokens.QUEST ; { return JetTokens.QUEST ;
} }
case 135: break; case 133: break;
case 56: case 56:
{ return JetTokens.OROR ; { return JetTokens.OROR ;
} }
case 136: break; case 134: break;
case 19: case 19:
{ return JetTokens.PERC ; { return JetTokens.PERC ;
} }
case 137: break; case 135: break;
case 70: case 70:
{ return JetTokens.EXCLEQEQEQ; { return JetTokens.EXCLEQEQEQ;
} }
case 138: break; case 136: break;
case 57: case 57:
{ return JetTokens.PERCEQ ; { return JetTokens.PERCEQ ;
} }
case 139: break; case 137: break;
case 37: case 37:
{ return JetTokens.RANGE ; { return JetTokens.RANGE ;
} }
case 140: break; case 138: break;
case 1: case 1:
{ return TokenType.BAD_CHARACTER; { return TokenType.BAD_CHARACTER;
} }
case 141: break; case 139: break;
case 49: case 49:
{ return JetTokens.SAFE_ACCESS; { return JetTokens.SAFE_ACCESS;
} }
case 142: break; case 140: break;
case 87: case 86:
{ return JetTokens.NAMESPACE_KEYWORD ; { return JetTokens.NAMESPACE_KEYWORD ;
} }
case 143: break; case 141: break;
case 69: case 69:
{ return JetTokens.NOT_IS; { return JetTokens.NOT_IS;
} }
case 144: break; case 142: break;
case 7: case 7:
{ return JetTokens.MUL ; { return JetTokens.MUL ;
} }
case 145: break; case 143: break;
case 21: case 21:
{ return JetTokens.RBRACKET ; { return JetTokens.RBRACKET ;
} }
case 146: break; case 144: break;
case 52: case 52:
{ return JetTokens.PLUSPLUS ; { return JetTokens.PLUSPLUS ;
} }
case 147: break; case 145: break;
case 75: case 74:
{ return JetTokens.THIS_KEYWORD ; { return JetTokens.THIS_KEYWORD ;
} }
case 148: break; case 146: break;
case 8: case 8:
{ return JetTokens.DOT ; { return JetTokens.DOT ;
} }
case 149: break; case 147: break;
case 26: case 26:
{ return JetTokens.SEMICOLON ; { return JetTokens.SEMICOLON ;
} }
case 150: break; case 148: break;
case 44: case 44:
{ return JetTokens.IF_KEYWORD ; { return JetTokens.IF_KEYWORD ;
} }
case 151: break; case 149: break;
case 12: case 12:
{ return JetTokens.EQ ; { return JetTokens.EQ ;
} }
case 152: break; case 150: break;
case 5: case 5:
{ return JetTokens.AT ; { return JetTokens.AT ;
} }
case 153: break; case 151: break;
case 61: case 61:
{ return JetTokens.AS_SAFE; { return JetTokens.AS_SAFE;
} }
case 154: break; case 152: break;
case 24: case 24:
{ return JetTokens.LPAR ; { return JetTokens.LPAR ;
} }
case 155: break; case 153: break;
case 9: case 9:
{ return JetTokens.MINUS ; { return JetTokens.MINUS ;
} }
case 156: break; case 154: break;
case 80: case 82:
{ return JetTokens.FALSE_KEYWORD ; { return JetTokens.FALSE_KEYWORD ;
} }
case 157: break; case 155: break;
case 74: case 75:
{ return JetTokens.TYPE_KEYWORD ; { return JetTokens.TYPE_KEYWORD ;
} }
case 158: break; case 156: break;
case 64: case 64:
{ return JetTokens.FUN_KEYWORD ; { return JetTokens.FUN_KEYWORD ;
} }
case 159: break; case 157: break;
case 43: case 43:
{ return JetTokens.IS_KEYWORD ; { return JetTokens.IS_KEYWORD ;
} }
case 160: break; case 158: break;
case 35: case 35:
{ return JetTokens.DIVEQ ; { return JetTokens.DIVEQ ;
} }
case 161: break; case 159: break;
case 88: case 87:
{ return JetTokens.EXTENSION_KEYWORD ; { return JetTokens.EXTENSION_KEYWORD ;
} }
case 162: break; case 160: break;
case 72: case 72:
{ return JetTokens.ELSE_KEYWORD ; { return JetTokens.ELSE_KEYWORD ;
} }
case 163: break; case 161: break;
case 41: case 41:
{ return JetTokens.AS_KEYWORD ; { return JetTokens.AS_KEYWORD ;
} }
case 164: break; case 162: break;
case 42: case 42:
{ return JetTokens.IN_KEYWORD ; { return JetTokens.IN_KEYWORD ;
} }
case 165: break; case 163: break;
case 46: case 46:
{ return JetTokens.EQEQ ; { return JetTokens.EQEQ ;
} }
case 166: break; case 164: break;
case 66: case 66:
{ return JetTokens.VAL_KEYWORD ; { return JetTokens.VAL_KEYWORD ;
} }
case 167: break; case 165: break;
case 67: case 67:
{ return JetTokens.EQEQEQ ; { return JetTokens.EQEQEQ ;
} }
case 168: break; case 166: break;
case 77: case 77:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ; { return JetTokens.CAPITALIZED_THIS_KEYWORD ;
} }
case 169: break; case 167: break;
case 36: case 36:
{ return JetTokens.MULTEQ ; { return JetTokens.MULTEQ ;
} }
case 170: break; case 168: break;
case 11: case 11:
{ return JetTokens.STRING_LITERAL; { return JetTokens.STRING_LITERAL;
} }
case 171: break; case 169: break;
case 22: case 22:
{ return JetTokens.LBRACE ; { return JetTokens.LBRACE ;
} }
case 172: break; case 170: break;
case 84: case 83:
{ return JetTokens.OBJECT_KEYWORD ; { return JetTokens.OBJECT_KEYWORD ;
} }
case 173: break; case 171: break;
case 81: case 80:
{ return JetTokens.BREAK_KEYWORD ; { return JetTokens.BREAK_KEYWORD ;
} }
case 174: break; case 172: break;
case 34: case 34:
{ return JetTokens.BLOCK_COMMENT; { return JetTokens.BLOCK_COMMENT;
} }
case 175: break; case 173: break;
case 28: case 28:
{ return JetTokens.HASH ; { return JetTokens.HASH ;
} }
case 176: break; case 174: break;
default: default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true; zzAtEOF = true;
@@ -3,5 +3,5 @@ class Point() {
fun foo() : typeinfo.TypeInfo<Point> { fun foo() : typeinfo.TypeInfo<Point> {
val p = Point(); val p = Point();
return typeof(p); return typeinfo.typeinfo<Point>(p);
} }
-1
View File
@@ -18,7 +18,6 @@ fun a(
a : foo = this<sdf>, a : foo = this<sdf>,
a : foo = (10), a : foo = (10),
a : foo = (10, "A", 0xf), a : foo = (10, "A", 0xf),
a : foo = typeof(10),
a : foo = Foo(bar), a : foo = Foo(bar),
a : foo = Foo<A>(bar), a : foo = Foo<A>(bar),
a : foo = Foo(), a : foo = Foo(),
-20
View File
@@ -334,26 +334,6 @@ JetFile: SimpleExpressions.jet
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPEOF
PsiElement(typeof)('typeof')
PsiElement(LPAR)('(')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('10')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -86,8 +86,8 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
} }
public void testTypeInfo() throws Exception { public void testTypeInfo() throws Exception {
assertType("typeof(1)", "typeinfo.TypeInfo<Int>"); assertType("typeinfo.typeinfo<Int>", "typeinfo.TypeInfo<Int>");
assertType("typeof(typeof(1))", "typeinfo.TypeInfo<typeinfo.TypeInfo<Int>>"); assertType("typeinfo.typeinfo<typeinfo.TypeInfo<Int>>", "typeinfo.TypeInfo<typeinfo.TypeInfo<Int>>");
} }
public void testJumps() throws Exception { public void testJumps() throws Exception {