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
: when
: try
: "typeof" "(" expression ")"
// : "new" constructorInvocation
: objectLiteral
// : declaration
: jump
: loop
: SimpleName
+3
View File
@@ -5,6 +5,9 @@ namespace typeinfo {
fun isSubtypeOf(other : TypeInfo<*>) : Boolean
fun isInstance(obj : Any?) : Boolean
}
fun typeinfo<T>() : TypeInfo<T>
fun typeinfo<T>(expression : T) : TypeInfo<out T>
}
namespace io {
@@ -73,7 +73,6 @@ public interface JetNodeTypes {
JetNodeType TUPLE = new JetNodeType("TUPLE", JetTupleExpression.class);
JetNodeType PARENTHESIZED = new JetNodeType("PARENTHESIZED", JetParenthesizedExpression.class);
JetNodeType TYPEOF = new JetNodeType("TYPEOF", JetTypeofExpression.class);
JetNodeType RETURN = new JetNodeType("RETURN", JetReturnExpression.class);
JetNodeType THROW = new JetNodeType("THROW", JetThrowExpression.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
public void visitIsExpression(final JetIsExpression expression) {
final StackValue match = StackValue.expression(OBJECT_TYPE, expression.getLeftHandSide(), this);
@@ -603,12 +603,6 @@ public class JetControlFlowProcessor {
builder.read(expression);
}
@Override
public void visitTypeofExpression(JetTypeofExpression expression) {
value(expression.getBaseExpression(), false, false);
builder.read(expression);
}
@Override
public void visitIsExpression(JetIsExpression expression) {
value(expression.getLeftHandSide(), false, inCondition);
@@ -21,8 +21,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
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,
FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, NULL_KEYWORD, TYPEOF_KEYWORD,
// NEW_KEYWORD,
FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, NULL_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,
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
WHEN_KEYWORD, // when
TRY_KEYWORD, // try
TYPEOF_KEYWORD, // typeof
// NEW_KEYWORD, // new
OBJECT_KEYWORD, // object
// jump
@@ -468,8 +465,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
* atomicExpression
* : tupleLiteral // or parenthesized element
* : "this" getEntryPoint? ("<" type ">")?
* : "typeof" "(" element ")"
* : "new" constructorInvocation
* : objectLiteral
* : jump
* : if
@@ -495,12 +490,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
else if (at(THIS_KEYWORD)) {
parseThisExpression();
}
else if (at(TYPEOF_KEYWORD)) {
parseTypeOf();
}
// else if (at(NEW_KEYWORD)) {
// parseNew();
// }
else if (at(OBJECT_KEYWORD)) {
parseObjectLiteral();
}
@@ -1431,44 +1420,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
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
* // 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);
}
public void visitTypeofExpression(JetTypeofExpression expression) {
visitExpression(expression);
}
public void visitBinaryExpression(JetBinaryExpression expression) {
visitExpression(expression);
}
@@ -1113,12 +1113,6 @@ public class JetTypeInferrer {
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
public void visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression) {
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> "continue" { return JetTokens.CONTINUE_KEYWORD ;}
<YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;}
<YYINITIAL> "typeof" { return JetTokens.TYPEOF_KEYWORD ;}
<YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;}
<YYINITIAL> "while" { return JetTokens.WHILE_KEYWORD ;}
<YYINITIAL> "break" { return JetTokens.BREAK_KEYWORD ;}
@@ -34,8 +34,6 @@ public interface JetTokens {
JetKeywordToken EXTENSION_KEYWORD = JetKeywordToken.keyword("extension");
JetKeywordToken FOR_KEYWORD = JetKeywordToken.keyword("for");
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 FALSE_KEYWORD = JetKeywordToken.keyword("false");
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,
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD, TYPEOF_KEYWORD,
// NEW_KEYWORD,
NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_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,
+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. */
package org.jetbrains.jet.lexer;
import com.intellij.lexer.*;
import com.intellij.psi.*;
import com.intellij.lexer.FlexLexer;
import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IElementType;
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 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>
*/
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\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\0\1\4\1\6\1\27\1\43\1\34\1\55\1\31\1\51\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\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"+
"\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"+
@@ -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\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\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"+
"\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\3\1\113\3\3\1\114\2\3\1\115\1\42\2\0"+
"\3\3\1\116\1\117\2\3\1\120\1\121\1\122\1\74"+
"\3\3\1\123\1\124\5\3\1\125\1\126\1\127";
private static int [] zzUnpackAction() {
int [] result = new int[203];
int [] result = new int[201];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, 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\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\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\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\303\0\u1bee\0\u1c2f\0\303\0\303\0\u1c70\0\303\0\u1cb1"+
"\0\u1cf2\0\u1d33\0\303\0\u1d74\0\u1db5\0\303\0\101\0\u1df6"+
"\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\303\0\303\0\u1f3b\0\u1f7c"+
"\0\303\0\303\0\303\0\101\0\u1fbd\0\u1ffe\0\u203f\0\303"+
"\0\303\0\u2080\0\u20c1\0\u2102\0\u2143\0\u2184\0\303\0\303"+
"\0\303";
private static int [] zzUnpackRowMap() {
int [] result = new int[203];
int [] result = new int[201];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, 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\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\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\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"+
@@ -253,7 +251,7 @@ class _JetLexer implements FlexLexer {
"\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"+
"\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"+
"\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"+
@@ -262,194 +260,191 @@ class _JetLexer implements FlexLexer {
"\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"+
"\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"+
"\4\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\1\4\1\0\1\4\3\0\7\4\1\115\11\4\1\116"+
"\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"+
"\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"+
"\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\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"+
"\3\4\1\0\1\4\1\0\1\4\3\0\17\4\1\127"+
"\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\3\4\1\130"+
"\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\3\4\1\211"+
"\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"+
"\10\4\1\132\1\133\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\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"+
"\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\212"+
"\5\4\1\213\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"+
"\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"+
"\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"+
"\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\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"+
"\1\216\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\305\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\306\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\307\21\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\14\4"+
"\1\220\4\4\1\221\6\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\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"+
"\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"+
"\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"+
"\1\312\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"+
"\27\4\23\0";
"\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\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() {
int [] result = new int[8775];
int [] result = new int[8645];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, 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"+
"\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"+
"\2\0\13\1\1\11\16\1";
"\2\0\12\1\1\11\15\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[203];
int [] result = new int[201];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -806,355 +801,351 @@ class _JetLexer implements FlexLexer {
case 3:
{ return JetTokens.IDENTIFIER;
}
case 89: break;
case 88: break;
case 63:
{ return JetTokens.FOR_KEYWORD ;
}
case 90: break;
case 85:
case 89: break;
case 84:
{ return JetTokens.RETURN_KEYWORD ;
}
case 91: break;
case 90: break;
case 71:
{ return JetTokens.NULL_KEYWORD ;
}
case 92: break;
case 91: break;
case 16:
{ return JetTokens.LT ;
}
case 93: break;
case 92: break;
case 45:
{ return JetTokens.DO_KEYWORD ;
}
case 94: break;
case 93: break;
case 15:
{ return JetTokens.PLUS ;
}
case 95: break;
case 94: break;
case 60:
{ return JetTokens.RAW_STRING_LITERAL;
}
case 96: break;
case 95: break;
case 51:
{ return JetTokens.PLUSEQ ;
}
case 97: break;
case 96: break;
case 27:
{ return JetTokens.COMMA ;
}
case 98: break;
case 97: break;
case 17:
{ return JetTokens.GT ;
}
case 99: break;
case 98: break;
case 4:
{ return JetTokens.WHITE_SPACE;
}
case 100: break;
case 83:
{ return JetTokens.TYPEOF_KEYWORD ;
}
case 101: break;
case 99: break;
case 25:
{ return JetTokens.RPAR ;
}
case 102: break;
case 100: break;
case 47:
{ return JetTokens.DOUBLE_ARROW;
}
case 103: break;
case 101: break;
case 73:
{ return JetTokens.TRUE_KEYWORD ;
}
case 104: break;
case 102: break;
case 30:
{ return JetTokens.FIELD_IDENTIFIER;
}
case 105: break;
case 103: break;
case 55:
{ return JetTokens.ANDAND ;
}
case 106: break;
case 104: break;
case 59:
{ return JetTokens.DOC_COMMENT;
}
case 107: break;
case 105: break;
case 29:
{ return JetTokens.FLOAT_LITERAL;
}
case 108: break;
case 106: break;
case 33:
{ return JetTokens.EOL_COMMENT;
}
case 109: break;
case 107: break;
case 76:
{ return JetTokens.WHEN_KEYWORD ;
}
case 110: break;
case 108: break;
case 18:
{ return JetTokens.COLON ;
}
case 111: break;
case 109: break;
case 53:
{ return JetTokens.LTEQ ;
}
case 112: break;
case 110: break;
case 40:
{ return JetTokens.ARROW ;
}
case 113: break;
case 111: break;
case 20:
{ return JetTokens.LBRACKET ;
}
case 114: break;
case 112: break;
case 58:
{ yypushback(2); return JetTokens.INTEGER_LITERAL;
}
case 115: break;
case 113: break;
case 10:
{ return JetTokens.CHARACTER_LITERAL;
}
case 116: break;
case 114: break;
case 65:
{ return JetTokens.VAR_KEYWORD ;
}
case 117: break;
case 115: break;
case 54:
{ return JetTokens.GTEQ ;
}
case 118: break;
case 116: break;
case 2:
{ return JetTokens.INTEGER_LITERAL;
}
case 119: break;
case 117: break;
case 23:
{ return JetTokens.RBRACE ;
}
case 120: break;
case 118: break;
case 78:
{ return JetTokens.CLASS_KEYWORD ;
}
case 121: break;
case 119: break;
case 13:
{ return JetTokens.EXCL ;
}
case 122: break;
case 120: break;
case 62:
{ return JetTokens.TRY_KEYWORD ;
}
case 123: break;
case 121: break;
case 48:
{ return JetTokens.EXCLEQ ;
}
case 124: break;
case 122: break;
case 39:
{ return JetTokens.MINUSEQ ;
}
case 125: break;
case 123: break;
case 79:
{ return JetTokens.THROW_KEYWORD ;
}
case 126: break;
case 82:
case 124: break;
case 81:
{ return JetTokens.WHILE_KEYWORD ;
}
case 127: break;
case 125: break;
case 38:
{ return JetTokens.MINUSMINUS;
}
case 128: break;
case 86:
case 126: break;
case 85:
{ return JetTokens.CONTINUE_KEYWORD ;
}
case 129: break;
case 127: break;
case 32:
{ return JetTokens.ATAT ;
}
case 130: break;
case 128: break;
case 68:
{ return JetTokens.NOT_IN;
}
case 131: break;
case 129: break;
case 6:
{ return JetTokens.DIV ;
}
case 132: break;
case 130: break;
case 50:
{ return JetTokens.ELVIS ;
}
case 133: break;
case 131: break;
case 31:
{ return JetTokens.LABEL_IDENTIFIER;
}
case 134: break;
case 132: break;
case 14:
{ return JetTokens.QUEST ;
}
case 135: break;
case 133: break;
case 56:
{ return JetTokens.OROR ;
}
case 136: break;
case 134: break;
case 19:
{ return JetTokens.PERC ;
}
case 137: break;
case 135: break;
case 70:
{ return JetTokens.EXCLEQEQEQ;
}
case 138: break;
case 136: break;
case 57:
{ return JetTokens.PERCEQ ;
}
case 139: break;
case 137: break;
case 37:
{ return JetTokens.RANGE ;
}
case 140: break;
case 138: break;
case 1:
{ return TokenType.BAD_CHARACTER;
}
case 141: break;
case 139: break;
case 49:
{ return JetTokens.SAFE_ACCESS;
}
case 142: break;
case 87:
case 140: break;
case 86:
{ return JetTokens.NAMESPACE_KEYWORD ;
}
case 143: break;
case 141: break;
case 69:
{ return JetTokens.NOT_IS;
}
case 144: break;
case 142: break;
case 7:
{ return JetTokens.MUL ;
}
case 145: break;
case 143: break;
case 21:
{ return JetTokens.RBRACKET ;
}
case 146: break;
case 144: break;
case 52:
{ return JetTokens.PLUSPLUS ;
}
case 147: break;
case 75:
case 145: break;
case 74:
{ return JetTokens.THIS_KEYWORD ;
}
case 148: break;
case 146: break;
case 8:
{ return JetTokens.DOT ;
}
case 149: break;
case 147: break;
case 26:
{ return JetTokens.SEMICOLON ;
}
case 150: break;
case 148: break;
case 44:
{ return JetTokens.IF_KEYWORD ;
}
case 151: break;
case 149: break;
case 12:
{ return JetTokens.EQ ;
}
case 152: break;
case 150: break;
case 5:
{ return JetTokens.AT ;
}
case 153: break;
case 151: break;
case 61:
{ return JetTokens.AS_SAFE;
}
case 154: break;
case 152: break;
case 24:
{ return JetTokens.LPAR ;
}
case 155: break;
case 153: break;
case 9:
{ return JetTokens.MINUS ;
}
case 156: break;
case 80:
case 154: break;
case 82:
{ return JetTokens.FALSE_KEYWORD ;
}
case 157: break;
case 74:
case 155: break;
case 75:
{ return JetTokens.TYPE_KEYWORD ;
}
case 158: break;
case 156: break;
case 64:
{ return JetTokens.FUN_KEYWORD ;
}
case 159: break;
case 157: break;
case 43:
{ return JetTokens.IS_KEYWORD ;
}
case 160: break;
case 158: break;
case 35:
{ return JetTokens.DIVEQ ;
}
case 161: break;
case 88:
case 159: break;
case 87:
{ return JetTokens.EXTENSION_KEYWORD ;
}
case 162: break;
case 160: break;
case 72:
{ return JetTokens.ELSE_KEYWORD ;
}
case 163: break;
case 161: break;
case 41:
{ return JetTokens.AS_KEYWORD ;
}
case 164: break;
case 162: break;
case 42:
{ return JetTokens.IN_KEYWORD ;
}
case 165: break;
case 163: break;
case 46:
{ return JetTokens.EQEQ ;
}
case 166: break;
case 164: break;
case 66:
{ return JetTokens.VAL_KEYWORD ;
}
case 167: break;
case 165: break;
case 67:
{ return JetTokens.EQEQEQ ;
}
case 168: break;
case 166: break;
case 77:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ;
}
case 169: break;
case 167: break;
case 36:
{ return JetTokens.MULTEQ ;
}
case 170: break;
case 168: break;
case 11:
{ return JetTokens.STRING_LITERAL;
}
case 171: break;
case 169: break;
case 22:
{ return JetTokens.LBRACE ;
}
case 172: break;
case 84:
case 170: break;
case 83:
{ return JetTokens.OBJECT_KEYWORD ;
}
case 173: break;
case 81:
case 171: break;
case 80:
{ return JetTokens.BREAK_KEYWORD ;
}
case 174: break;
case 172: break;
case 34:
{ return JetTokens.BLOCK_COMMENT;
}
case 175: break;
case 173: break;
case 28:
{ return JetTokens.HASH ;
}
case 176: break;
case 174: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
@@ -3,5 +3,5 @@ class Point() {
fun foo() : typeinfo.TypeInfo<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 = (10),
a : foo = (10, "A", 0xf),
a : foo = typeof(10),
a : foo = Foo(bar),
a : foo = Foo<A>(bar),
a : foo = Foo(),
-20
View File
@@ -334,26 +334,6 @@ JetFile: SimpleExpressions.jet
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
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
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
@@ -86,8 +86,8 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
}
public void testTypeInfo() throws Exception {
assertType("typeof(1)", "typeinfo.TypeInfo<Int>");
assertType("typeof(typeof(1))", "typeinfo.TypeInfo<typeinfo.TypeInfo<Int>>");
assertType("typeinfo.typeinfo<Int>", "typeinfo.TypeInfo<Int>");
assertType("typeinfo.typeinfo<typeinfo.TypeInfo<Int>>", "typeinfo.TypeInfo<typeinfo.TypeInfo<Int>>");
}
public void testJumps() throws Exception {