diff --git a/grammar/src/expressions.grm b/grammar/src/expressions.grm
index 0ed0fbe0b8b..ab8da2e35f5 100644
--- a/grammar/src/expressions.grm
+++ b/grammar/src/expressions.grm
@@ -82,7 +82,7 @@ atomicExpression
: literalConstant
: functionLiteral
: tupleLiteral
- : "this" ("<" type ">")?
+ : "this" label? ("<" type ">")?
: if
: when
: try
@@ -97,6 +97,12 @@ atomicExpression
: "namespace" // for the root namespace
;
+label
+ : "@"
+ : "@@"
+ : LabelName
+ ;
+
literalConstant
: "true" | "false"
: StringWithTemplates
@@ -163,12 +169,13 @@ prefixUnaryOperation
: "++" : "--"
: "!" // No ~
: attributes // mandatory
+ : label
;
postfixUnaryOperation
: "++" : "--"
- : typeArguments? valueArguments
- : typeArguments
+ : typeArguments? valueArguments (label? functionLiteral)
+ : typeArguments (label? functionLiteral)
: arrayAccess
: memberAccessOperation postfixUnaryOperation // TODO: Review
;
@@ -187,9 +194,9 @@ valueArguments
jump
: "throw" expression
- : "return" expression?
- : "continue" stringLiteral?
- : "break" stringLiteral?
+ : "return" label? expression?
+ : "continue" label?
+ : "break" label?
// yield ?
;
diff --git a/grammar/src/lexical.grm b/grammar/src/lexical.grm
index 2da24ec5200..e6144a1b2cb 100644
--- a/grammar/src/lexical.grm
+++ b/grammar/src/lexical.grm
@@ -1,5 +1,6 @@
SimpleName : /*java identifier*/;
FieldName : "$" SimpleName;
+LabelName : "@" SimpleName;
[helper] Digit : ["0".."9"];
IntegerLiteral : Digit+ "L"?
[helper] HexDigit : Digit | ["A"-"F", "a"-"f"];
diff --git a/idea/META-INF/plugin.xml b/idea/META-INF/plugin.xml
index 5a0efc52715..4e8789e38b9 100644
--- a/idea/META-INF/plugin.xml
+++ b/idea/META-INF/plugin.xml
@@ -22,6 +22,7 @@
+
diff --git a/idea/src/org/jetbrains/jet/lang/JetHighlighter.java b/idea/src/org/jetbrains/jet/lang/JetHighlighter.java
index d18bc49b306..d33bd68f546 100644
--- a/idea/src/org/jetbrains/jet/lang/JetHighlighter.java
+++ b/idea/src/org/jetbrains/jet/lang/JetHighlighter.java
@@ -37,6 +37,12 @@ public class JetHighlighter extends SyntaxHighlighterBase {
SyntaxHighlighterColors.KEYWORD.getDefaultAttributes()
);
+ public static final TextAttributesKey JET_LABEL_IDENTIFIER = TextAttributesKey.createTextAttributesKey(
+ "JET.LABEL.IDENTIFIER",
+// TODO: proper attributes
+ SyntaxHighlighterColors.NUMBER.getDefaultAttributes()
+ );
+
private static final TextAttributesKey JET_NUMBER = TextAttributesKey.createTextAttributesKey(
"JET.NUMBER",
SyntaxHighlighterColors.NUMBER.getDefaultAttributes()
@@ -74,6 +80,8 @@ public class JetHighlighter extends SyntaxHighlighterBase {
fillMap(keys1, JetTokens.KEYWORDS, 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);
keys1.put(JetTokens.INTEGER_LITERAL, JET_NUMBER);
keys1.put(JetTokens.LONG_LITERAL, JET_NUMBER);
diff --git a/idea/src/org/jetbrains/jet/lang/annotations/LabelsAnnotator.java b/idea/src/org/jetbrains/jet/lang/annotations/LabelsAnnotator.java
new file mode 100644
index 00000000000..61b74f9b175
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lang/annotations/LabelsAnnotator.java
@@ -0,0 +1,36 @@
+/*
+ * @author max
+ */
+package org.jetbrains.jet.lang.annotations;
+
+import com.intellij.lang.ASTNode;
+import com.intellij.lang.annotation.AnnotationHolder;
+import com.intellij.lang.annotation.Annotator;
+import com.intellij.psi.PsiElement;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.jet.lang.JetHighlighter;
+import org.jetbrains.jet.lang.psi.*;
+import org.jetbrains.jet.lexer.JetTokens;
+
+public class LabelsAnnotator implements Annotator {
+ public void annotate(@NotNull PsiElement element, @NotNull final AnnotationHolder holder) {
+ element.accept(new JetVisitor() {
+ @Override
+ public void visitPrefixExpression(JetPrefixExpression expression) {
+ ASTNode operationTokenNode = expression.getOperationTokenNode();
+ if (JetTokens.LABELS.contains(operationTokenNode.getElementType())) {
+ holder.createInfoAnnotation(operationTokenNode, null).setTextAttributes(JetHighlighter.JET_LABEL_IDENTIFIER);
+ }
+ }
+
+ @Override
+ public void visitLabelQualifiedExpression(JetLabelQualifiedExpression expression) {
+ ASTNode targetLabelNode = expression.getTargetLabelNode();
+ if (targetLabelNode != null) {
+ holder.createInfoAnnotation(targetLabelNode, null).setTextAttributes(JetHighlighter.JET_LABEL_IDENTIFIER);
+ }
+ }
+
+ });
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java
index 4edf37472ce..2cb4a322844 100644
--- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java
+++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java
@@ -34,7 +34,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet EXPRESSION_FIRST = TokenSet.orSet(TokenSet.create(
// Prefix
- MINUS, PLUS, MINUSMINUS, PLUSPLUS, EXCL, LBRACKET,
+ MINUS, PLUS, MINUSMINUS, PLUSPLUS, EXCL, LBRACKET, LABEL_IDENTIFIER, AT, ATAT,
// Atomic
LPAR, // parenthesized
@@ -91,7 +91,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private enum Precedence {
POSTFIX(PLUSPLUS, MINUSMINUS), // typeArguments? valueArguments : typeArguments : arrayAccess
- PREFIX(MINUS, PLUS, MINUSMINUS, PLUSPLUS, EXCL) { // attributes
+ PREFIX(MINUS, PLUS, MINUSMINUS, PLUSPLUS, EXCL, LABEL_IDENTIFIER, AT, ATAT) { // attributes
@Override
public void parseHigherPrecedence(JetExpressionParsing parser) {
@@ -278,8 +278,8 @@ public class JetExpressionParsing extends AbstractJetParsing {
*
* postfixUnaryOperation
* : "++" : "--"
- * : typeArguments? valueArguments
- * : typeArguments
+ * : typeArguments? valueArguments (label? functionLiteral)
+ * : typeArguments (label? functionLiteral)
* : arrayAccess
* : memberAccessOperation postfixUnaryOperation // TODO: Review
* ;
@@ -354,12 +354,19 @@ public class JetExpressionParsing extends AbstractJetParsing {
}
/*
- * expression functionLiteral?
+ * expression (label? functionLiteral)?
*/
protected boolean parseCallWithClosure() {
boolean success = false;
- while (!myBuilder.newlineBeforeCurrentToken() && at(LBRACE)) {
- parseFunctionLiteral();
+ while (!myBuilder.newlineBeforeCurrentToken()
+ && (at(LBRACE)
+ || atSet(LABELS) && lookahead(1) == LBRACE)) {
+ if (!at(LBRACE)) {
+ assert _atSet(LABELS);
+ parsePrefixExpression();
+ } else {
+ parseFunctionLiteral();
+ }
success = true;
}
return success;
@@ -368,7 +375,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
/*
* atomicExpression
* : tupleLiteral // or parenthesized expression
- * : "this" ("<" type ">")?
+ * : "this" label? ("<" type ">")?
* : "typeof" "(" expression ")"
* : "new" constructorInvocation
* : objectLiteral
@@ -1231,13 +1238,8 @@ public class JetExpressionParsing extends AbstractJetParsing {
}
/*
- * : "continue" stringLiteral?
- * : "break" stringLiteral?
- *
- * stringLiteral
- * : StringWithTemplates
- * : NoEscapeString
- * ;
+ * : "continue" label?
+ * : "break" label?
*/
private void parseJump(JetNodeType type) {
assert _at(BREAK_KEYWORD) || _at(CONTINUE_KEYWORD);
@@ -1246,13 +1248,13 @@ public class JetExpressionParsing extends AbstractJetParsing {
advance(); // BREAK_KEYWORD or CONTINUE_KEYWORD
- if (!eol() && (at(RAW_STRING_LITERAL) || at(STRING_LITERAL))) advance(); // RAW_STRING_LITERAL or STRING_LITERAL
+ if (!eol() && atSet(LABELS)) advance(); // LABELS
marker.done(type);
}
/*
- * "return" expression?
+ * "return" label? expression?
*/
private void parseReturn() {
assert _at(RETURN_KEYWORD);
@@ -1261,6 +1263,10 @@ public class JetExpressionParsing extends AbstractJetParsing {
advance(); // RETURN_KEYWORD
+ if (atSet(LABELS)) {
+ advance(); // LABELS
+ }
+
if (atSet(EXPRESSION_FIRST) && !at(EOL_OR_SEMICOLON)) parseExpression();
returnExpression.done(RETURN);
@@ -1379,12 +1385,17 @@ public class JetExpressionParsing extends AbstractJetParsing {
}
/*
- * "this" ("<" type ">")?
+ * "this" label? ("<" type ">")?
*/
private void parseThisExpression() {
assert _at(THIS_KEYWORD);
PsiBuilder.Marker mark = mark();
advance(); // THIS_KEYWORD
+
+ if (atSet(LABELS)) {
+ advance(); // LABELS
+ }
+
if (at(LT)) {
// This may be "this < foo" or "this", thus the backtracking
PsiBuilder.Marker supertype = mark();
diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java
index 8c6d4ce2abd..a3dd46f7602 100644
--- a/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java
+++ b/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java
@@ -9,7 +9,7 @@ import org.jetbrains.jet.lexer.JetTokens;
/**
* @author max
*/
-public class JetBreakExpression extends JetExpression {
+public class JetBreakExpression extends JetLabelQualifiedExpression {
public JetBreakExpression(@NotNull ASTNode node) {
super(node);
}
diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java
index f5f09201956..72fbe3bacc3 100644
--- a/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java
+++ b/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java
@@ -9,7 +9,7 @@ import org.jetbrains.jet.lexer.JetTokens;
/**
* @author max
*/
-public class JetContinueExpression extends JetExpression {
+public class JetContinueExpression extends JetLabelQualifiedExpression {
public JetContinueExpression(@NotNull ASTNode node) {
super(node);
}
diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedExpression.java
new file mode 100644
index 00000000000..c74809a0198
--- /dev/null
+++ b/idea/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedExpression.java
@@ -0,0 +1,29 @@
+package org.jetbrains.jet.lang.psi;
+
+import com.intellij.lang.ASTNode;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.jet.lexer.JetToken;
+import org.jetbrains.jet.lexer.JetTokens;
+
+/**
+ * @author abreslav
+ */
+public class JetLabelQualifiedExpression extends JetExpression {
+
+ public JetLabelQualifiedExpression(@NotNull ASTNode node) {
+ super(node);
+ }
+
+ @Nullable
+ public JetToken getTargetLabel() {
+ ASTNode targetLabelNode = getTargetLabelNode();
+ if (targetLabelNode == null) return null;
+ return (JetToken) targetLabelNode.getElementType();
+ }
+
+ @Nullable
+ public ASTNode getTargetLabelNode() {
+ return getNode().findChildByType(JetTokens.LABELS);
+ }
+}
diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java
index 478990d1e9a..2982b819992 100644
--- a/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java
+++ b/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable;
/**
* @author max
*/
-public class JetReturnExpression extends JetExpression {
+public class JetReturnExpression extends JetLabelQualifiedExpression {
public JetReturnExpression(@NotNull ASTNode node) {
super(node);
}
diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetThisExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetThisExpression.java
index feaac7b903e..34e1b857445 100644
--- a/idea/src/org/jetbrains/jet/lang/psi/JetThisExpression.java
+++ b/idea/src/org/jetbrains/jet/lang/psi/JetThisExpression.java
@@ -8,7 +8,7 @@ import org.jetbrains.jet.JetNodeTypes;
/**
* @author max
*/
-public class JetThisExpression extends JetExpression {
+public class JetThisExpression extends JetLabelQualifiedExpression {
public JetThisExpression(@NotNull ASTNode node) {
super(node);
}
diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java
index 0b7bc6568d1..5037a02439a 100644
--- a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java
+++ b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java
@@ -171,6 +171,10 @@ public class JetVisitor extends PsiElementVisitor {
}
public void visitReturnExpression(JetReturnExpression expression) {
+ visitLabelQualifiedExpression(expression);
+ }
+
+ public void visitLabelQualifiedExpression(JetLabelQualifiedExpression expression) {
visitExpression(expression);
}
@@ -179,11 +183,11 @@ public class JetVisitor extends PsiElementVisitor {
}
public void visitBreakExpression(JetBreakExpression expression) {
- visitExpression(expression);
+ visitLabelQualifiedExpression(expression);
}
public void visitContinueExpression(JetContinueExpression expression) {
- visitExpression(expression);
+ visitLabelQualifiedExpression(expression);
}
public void visitIfExpression(JetIfExpression expression) {
@@ -271,7 +275,7 @@ public class JetVisitor extends PsiElementVisitor {
}
public void visitThisExpression(JetThisExpression expression) {
- visitExpression(expression);
+ visitLabelQualifiedExpression(expression);
}
public void visitParenthesizedExpression(JetParenthesizedExpression expression) {
diff --git a/idea/src/org/jetbrains/jet/lexer/Jet.flex b/idea/src/org/jetbrains/jet/lexer/Jet.flex
index c37d23ce545..7053ff356e7 100644
--- a/idea/src/org/jetbrains/jet/lexer/Jet.flex
+++ b/idea/src/org/jetbrains/jet/lexer/Jet.flex
@@ -28,6 +28,7 @@ PLAIN_IDENTIFIER=[:jletter:] [:jletterdigit:]*
ESCAPED_IDENTIFIER = `{PLAIN_IDENTIFIER}`
IDENTIFIER = {PLAIN_IDENTIFIER}|{ESCAPED_IDENTIFIER}
FIELD_IDENTIFIER = \${IDENTIFIER}
+LABEL_IDENTIFIER = \@{IDENTIFIER}
BLOCK_COMMENT=("/*"[^"*"]{COMMENT_TAIL})|"/*"
// TODO: Wiki markup for doc comments?
@@ -119,6 +120,7 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
{FIELD_IDENTIFIER} { return JetTokens.FIELD_IDENTIFIER; }
{IDENTIFIER} { return JetTokens.IDENTIFIER; }
+ {LABEL_IDENTIFIER} { return JetTokens.LABEL_IDENTIFIER; }
"===" { return JetTokens.EQEQEQ ; }
"!==" { return JetTokens.EXCLEQEQEQ; }
@@ -144,6 +146,7 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
"->" { return JetTokens.ARROW ; }
"=>" { return JetTokens.DOUBLE_ARROW; }
".." { return JetTokens.RANGE ; }
+ "@@" { return JetTokens.ATAT ; }
"[" { return JetTokens.LBRACKET ; }
"]" { return JetTokens.RBRACKET ; }
"{" { return JetTokens.LBRACE ; }
diff --git a/idea/src/org/jetbrains/jet/lexer/JetTokens.java b/idea/src/org/jetbrains/jet/lexer/JetTokens.java
index 0b20ed21d68..ede761524ca 100644
--- a/idea/src/org/jetbrains/jet/lexer/JetTokens.java
+++ b/idea/src/org/jetbrains/jet/lexer/JetTokens.java
@@ -56,6 +56,7 @@ public interface JetTokens {
JetToken IDENTIFIER = new JetToken("IDENTIFIER");
+ JetToken LABEL_IDENTIFIER = new JetToken("LABEL_IDENTIFIER");
JetToken FIELD_IDENTIFIER = new JetToken("FIELD_IDENTIFIER");
JetToken LBRACKET = new JetToken("LBRACKET");
@@ -103,6 +104,8 @@ public interface JetTokens {
JetToken NOT_IS = JetKeywordToken.keyword("NOT_IS");
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");
@@ -158,5 +161,5 @@ public interface JetTokens {
TokenSet OPERATIONS = TokenSet.create(AS_KEYWORD, 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, QUEST, COLON, SEMICOLON, RANGE, EQ, MULTEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ,
- NOT_IN, NOT_IS, HASH, IDENTIFIER);
+ NOT_IN, NOT_IS, HASH, IDENTIFIER, LABEL_IDENTIFIER, ATAT, AT);
}
diff --git a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java
index 66050894b89..a6fcce99e68 100644
--- a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java
+++ b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 2/8/11 6:25 PM */
+/* The following code was generated by JFlex 1.4.3 on 2/22/11 5:36 PM */
/* It's an automatically generated code. Do not modify it. */
package org.jetbrains.jet.lexer;
@@ -11,7 +11,7 @@ import com.intellij.psi.tree.IElementType;
/**
* This class is a scanner generated by
* JFlex 1.4.3
- * on 2/8/11 6:25 PM from the specification file
+ * on 2/22/11 5:36 PM from the specification file
* /Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex
*/
class _JetLexer implements FlexLexer {
@@ -35,15 +35,15 @@ class _JetLexer implements FlexLexer {
* Translates characters to character classes
*/
private static final String ZZ_CMAP_PACKED =
- "\11\5\1\3\1\12\1\0\1\3\1\0\16\5\4\0\1\3\1\60"+
- "\1\26\1\101\1\7\1\70\1\64\1\24\1\75\1\76\1\11\1\61"+
- "\1\100\1\22\1\20\1\10\1\13\11\1\1\67\1\77\1\62\1\57"+
- "\1\63\1\66\1\102\1\2\1\15\1\2\1\17\1\21\1\17\5\4"+
- "\1\16\3\4\1\23\3\4\1\54\3\4\1\14\2\4\1\71\1\25"+
- "\1\72\1\0\1\4\1\6\1\30\1\46\1\35\1\56\1\32\1\45"+
- "\1\4\1\51\1\40\1\47\1\53\1\52\1\31\1\27\1\41\1\34"+
- "\1\4\1\43\1\33\1\37\1\42\1\55\1\50\1\36\1\44\1\4"+
- "\1\73\1\65\1\74\1\0\41\5\2\0\4\4\4\0\1\4\2\0"+
+ "\11\5\1\3\1\13\1\0\1\3\1\0\16\5\4\0\1\3\1\61"+
+ "\1\27\1\102\1\7\1\71\1\65\1\25\1\76\1\77\1\12\1\62"+
+ "\1\101\1\23\1\21\1\11\1\14\11\1\1\70\1\100\1\63\1\60"+
+ "\1\64\1\67\1\10\1\2\1\16\1\2\1\20\1\22\1\20\5\4"+
+ "\1\17\3\4\1\24\3\4\1\55\3\4\1\15\2\4\1\72\1\26"+
+ "\1\73\1\0\1\4\1\6\1\31\1\47\1\36\1\57\1\33\1\46"+
+ "\1\4\1\52\1\41\1\50\1\54\1\53\1\32\1\30\1\42\1\35"+
+ "\1\4\1\44\1\34\1\40\1\43\1\56\1\51\1\37\1\45\1\4"+
+ "\1\74\1\66\1\75\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"+
@@ -138,26 +138,26 @@ 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\2\1\7\1\10\1\11\1\12\16\3\1\13"+
- "\1\14\1\15\1\16\1\17\2\1\1\20\1\21\1\22"+
+ "\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\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+
"\1\33\1\34\1\35\3\36\1\0\1\37\1\0\1\40"+
- "\1\41\1\42\1\43\1\0\2\2\1\36\1\44\1\45"+
- "\1\46\1\47\1\50\1\51\2\11\3\12\3\3\1\52"+
- "\7\3\1\53\1\54\1\55\11\3\1\56\1\57\1\60"+
- "\1\0\1\61\1\62\1\63\1\64\1\65\1\66\1\67"+
- "\1\70\1\71\1\72\1\73\1\36\1\3\1\0\1\41"+
- "\1\74\1\0\1\35\3\0\1\12\1\75\1\3\1\76"+
- "\6\3\1\77\6\3\1\100\1\101\4\3\1\102\1\103"+
- "\1\104\1\105\1\106\1\107\1\37\1\0\2\74\1\0"+
- "\1\36\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\41\1\0"+
- "\1\36\1\0\3\3\1\117\1\3\1\120\2\3\1\121"+
- "\1\122\1\123\1\75\3\3\1\124\1\125\1\126\5\3"+
- "\1\127\1\130\1\131";
+ "\1\0\1\41\1\42\1\43\1\44\1\45\1\0\2\2"+
+ "\1\36\1\46\1\47\1\50\1\51\1\52\1\53\2\12"+
+ "\3\13\3\3\1\54\7\3\1\55\1\56\1\57\11\3"+
+ "\1\60\1\61\1\62\1\0\1\63\1\64\1\65\1\66"+
+ "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\36"+
+ "\1\3\2\0\1\43\1\76\1\0\1\35\3\0\1\13"+
+ "\1\77\1\3\1\100\6\3\1\101\6\3\1\102\1\103"+
+ "\4\3\1\104\1\105\1\106\1\107\1\110\1\111\1\37"+
+ "\1\40\1\0\2\76\1\0\1\36\2\0\1\3\1\112"+
+ "\1\3\1\113\2\3\1\114\1\115\1\116\5\3\1\117"+
+ "\1\3\1\120\1\43\1\0\1\36\1\0\3\3\1\121"+
+ "\1\3\1\122\2\3\1\123\1\124\1\125\1\77\3\3"+
+ "\1\126\1\127\1\130\5\3\1\131\1\132\1\133";
private static int [] zzUnpackAction() {
- int [] result = new int[206];
+ int [] result = new int[211];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -186,31 +186,32 @@ class _JetLexer implements FlexLexer {
"\0\u0218\0\u025b\0\u029e\0\u02e1\0\u0324\0\u0367\0\u03aa\0\u03ed"+
"\0\u0430\0\u0473\0\u04b6\0\u04f9\0\u053c\0\u057f\0\u05c2\0\u0605"+
"\0\u0648\0\u068b\0\u06ce\0\u0711\0\u0754\0\u0797\0\u07da\0\u081d"+
- "\0\u0860\0\u08a3\0\u08e6\0\u0929\0\103\0\u096c\0\103\0\103"+
+ "\0\u0860\0\u08a3\0\u08e6\0\u0929\0\u096c\0\103\0\u09af\0\103"+
"\0\103\0\103\0\103\0\103\0\103\0\103\0\103\0\103"+
- "\0\103\0\103\0\u09af\0\u09f2\0\u0a35\0\u0a78\0\u0abb\0\u0afe"+
- "\0\u0b41\0\103\0\103\0\u0b84\0\u0bc7\0\u0c0a\0\u0c4d\0\103"+
- "\0\103\0\103\0\103\0\103\0\103\0\103\0\u0c90\0\u0cd3"+
- "\0\u0d16\0\u0d59\0\u0d9c\0\u0ddf\0\u0e22\0\311\0\u0e65\0\u0ea8"+
- "\0\u0eeb\0\u0f2e\0\u0f71\0\u0fb4\0\u0ff7\0\311\0\311\0\311"+
- "\0\u103a\0\u107d\0\u10c0\0\u1103\0\u1146\0\u1189\0\u11cc\0\u120f"+
- "\0\u1252\0\311\0\u1295\0\103\0\u12d8\0\u131b\0\103\0\103"+
- "\0\103\0\103\0\103\0\103\0\103\0\103\0\103\0\103"+
- "\0\u135e\0\103\0\u13a1\0\u13e4\0\u1427\0\u146a\0\u146a\0\u14ad"+
- "\0\u14f0\0\u1533\0\103\0\u1576\0\u15b9\0\311\0\u15fc\0\u163f"+
- "\0\u1682\0\u16c5\0\u1708\0\u174b\0\311\0\u178e\0\u17d1\0\u1814"+
- "\0\u1857\0\u189a\0\u18dd\0\311\0\311\0\u1920\0\u1963\0\u19a6"+
- "\0\u19e9\0\311\0\311\0\103\0\103\0\103\0\103\0\103"+
- "\0\u1a2c\0\u1a6f\0\103\0\u1ab2\0\u1af5\0\u1b38\0\u1b7b\0\u1bbe"+
- "\0\311\0\u1c01\0\311\0\u1c44\0\u1c87\0\311\0\u1cca\0\311"+
- "\0\u1d0d\0\u1d50\0\u1d93\0\u1dd6\0\u1e19\0\311\0\u1e5c\0\311"+
- "\0\103\0\u1e9f\0\u146a\0\u1ee2\0\u1f25\0\u1f68\0\u1fab\0\311"+
- "\0\u1fee\0\311\0\u2031\0\u2074\0\311\0\311\0\311\0\103"+
- "\0\u20b7\0\u20fa\0\u213d\0\311\0\311\0\311\0\u2180\0\u21c3"+
- "\0\u2206\0\u2249\0\u228c\0\311\0\311\0\311";
+ "\0\103\0\103\0\u09f2\0\u0a35\0\u0a78\0\u0abb\0\u0afe\0\u0b41"+
+ "\0\u0b84\0\103\0\u0bc7\0\u0c0a\0\103\0\103\0\u0c4d\0\u0c90"+
+ "\0\u0cd3\0\u0d16\0\103\0\103\0\103\0\103\0\103\0\103"+
+ "\0\103\0\u0d59\0\u0d9c\0\u0ddf\0\u0e22\0\u0e65\0\u0ea8\0\u0eeb"+
+ "\0\311\0\u0f2e\0\u0f71\0\u0fb4\0\u0ff7\0\u103a\0\u107d\0\u10c0"+
+ "\0\311\0\311\0\311\0\u1103\0\u1146\0\u1189\0\u11cc\0\u120f"+
+ "\0\u1252\0\u1295\0\u12d8\0\u131b\0\311\0\u135e\0\103\0\u13a1"+
+ "\0\u13e4\0\103\0\103\0\103\0\103\0\103\0\103\0\103"+
+ "\0\103\0\103\0\103\0\u1427\0\103\0\u146a\0\u14ad\0\u14f0"+
+ "\0\u1533\0\u1576\0\u1576\0\u15b9\0\u15fc\0\u163f\0\103\0\u1682"+
+ "\0\u16c5\0\311\0\u1708\0\u174b\0\u178e\0\u17d1\0\u1814\0\u1857"+
+ "\0\311\0\u189a\0\u18dd\0\u1920\0\u1963\0\u19a6\0\u19e9\0\311"+
+ "\0\311\0\u1a2c\0\u1a6f\0\u1ab2\0\u1af5\0\311\0\311\0\103"+
+ "\0\103\0\103\0\103\0\103\0\103\0\u1b38\0\u1b7b\0\103"+
+ "\0\u1bbe\0\u1c01\0\u1c44\0\u1c87\0\u1cca\0\311\0\u1d0d\0\311"+
+ "\0\u1d50\0\u1d93\0\311\0\u1dd6\0\311\0\u1e19\0\u1e5c\0\u1e9f"+
+ "\0\u1ee2\0\u1f25\0\311\0\u1f68\0\311\0\103\0\u1fab\0\u1576"+
+ "\0\u1fee\0\u2031\0\u2074\0\u20b7\0\311\0\u20fa\0\311\0\u213d"+
+ "\0\u2180\0\311\0\311\0\311\0\103\0\u21c3\0\u2206\0\u2249"+
+ "\0\311\0\311\0\311\0\u228c\0\u22cf\0\u2312\0\u2355\0\u2398"+
+ "\0\311\0\311\0\311";
private static int [] zzUnpackRowMap() {
- int [] result = new int[206];
+ int [] result = new int[211];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -234,229 +235,236 @@ class _JetLexer implements FlexLexer {
private static final String ZZ_TRANS_PACKED_0 =
"\1\2\1\3\1\4\1\5\1\4\1\2\1\6\1\7"+
- "\1\10\1\11\1\5\1\12\4\4\1\13\1\4\1\14"+
- "\1\4\1\15\1\2\1\16\1\17\1\20\1\4\1\21"+
- "\2\4\1\22\1\4\1\23\1\24\1\25\1\4\1\26"+
- "\1\4\1\27\1\30\1\4\1\31\3\4\1\32\1\33"+
+ "\1\10\1\11\1\12\1\5\1\13\4\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\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\104\0\1\3\11\0"+
+ "\1\54\1\55\1\56\1\57\1\60\104\0\1\3\12\0"+
"\1\3\2\0\1\61\1\62\1\63\1\64\10\0\1\64"+
- "\12\0\1\62\4\0\1\61\3\0\1\62\25\0\2\4"+
- "\1\0\2\4\1\0\1\4\3\0\5\4\1\0\1\4"+
- "\1\0\1\4\3\0\30\4\27\0\1\5\6\0\1\5"+
- "\72\0\1\65\1\0\1\65\2\0\1\65\4\0\4\65"+
- "\1\0\1\65\1\0\1\65\3\0\30\65\25\0\1\4"+
- "\1\66\1\0\1\66\1\4\1\67\1\66\3\0\1\4"+
- "\4\66\1\0\1\66\1\0\1\66\3\0\30\66\34\0"+
- "\1\70\1\71\45\0\1\72\102\0\1\73\24\0\1\74"+
- "\11\0\1\74\1\75\1\76\1\61\1\62\1\63\1\64"+
- "\10\0\1\64\3\0\1\75\6\0\1\62\1\76\3\0"+
- "\1\61\3\0\1\62\25\0\1\77\7\0\1\100\1\0"+
- "\1\77\4\0\1\101\45\0\1\102\36\0\1\103\34\0"+
- "\1\104\3\0\1\105\17\0\12\15\1\0\11\15\1\106"+
- "\1\107\55\15\12\110\1\0\12\110\1\111\1\112\54\110"+
- "\1\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\1\4\1\113\1\4"+
- "\1\114\7\4\1\115\14\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\4\4\1\116\23\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\7\4\1\117\13\4\1\120\4\4\25\0\2\4"+
- "\1\0\2\4\1\0\1\4\3\0\5\4\1\0\1\4"+
- "\1\0\1\4\3\0\12\4\1\121\10\4\1\122\4\4"+
- "\25\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\14\4\1\123\1\124"+
- "\4\4\1\125\5\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\1\126\3\4\1\127\11\4\1\130\11\4\25\0\2\4"+
- "\1\0\2\4\1\0\1\4\3\0\5\4\1\0\1\4"+
- "\1\0\1\4\3\0\17\4\1\131\10\4\25\0\2\4"+
- "\1\0\2\4\1\0\1\4\3\0\5\4\1\0\1\4"+
- "\1\0\1\4\3\0\3\4\1\132\24\4\25\0\2\4"+
- "\1\0\2\4\1\0\1\4\3\0\5\4\1\0\1\4"+
- "\1\0\1\4\3\0\1\4\1\133\10\4\1\134\1\135"+
- "\14\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\14\4\1\136"+
- "\13\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\22\4\1\137"+
- "\5\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\22\4\1\140"+
- "\5\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\1\4\1\141"+
- "\26\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\12\4\1\142"+
- "\15\4\103\0\1\143\3\0\1\144\57\0\1\145\16\0"+
- "\1\146\102\0\1\147\1\0\1\150\100\0\1\151\102\0"+
- "\1\152\107\0\1\153\103\0\1\154\35\0\1\155\46\0"+
- "\1\156\72\0\1\157\24\0\1\77\11\0\1\77\3\0"+
- "\1\62\1\160\1\64\10\0\1\64\12\0\1\62\10\0"+
- "\1\62\25\0\1\161\11\0\1\161\3\0\1\62\2\0"+
- "\1\161\22\0\1\62\10\0\1\62\2\0\1\161\22\0"+
- "\2\65\1\0\2\65\1\162\1\65\3\0\5\65\1\0"+
- "\1\65\1\0\1\65\3\0\30\65\25\0\2\66\1\0"+
- "\2\66\1\0\1\66\3\0\5\66\1\0\1\66\1\0"+
- "\1\66\3\0\30\66\26\0\1\163\1\0\1\163\2\0"+
- "\1\163\4\0\4\163\1\0\1\163\1\0\1\163\3\0"+
- "\30\163\24\0\12\70\1\0\70\70\11\164\1\165\71\164"+
- "\1\0\1\74\11\0\1\74\3\0\1\62\1\77\1\64"+
- "\10\0\1\64\12\0\1\62\10\0\1\62\24\0\1\166"+
- "\2\75\7\166\1\0\1\75\1\166\1\75\1\167\1\75"+
- "\1\170\1\75\1\166\1\171\4\166\1\75\1\166\1\75"+
- "\1\166\1\171\1\75\7\166\2\75\3\166\1\167\3\166"+
- "\1\75\24\166\1\0\1\76\11\0\1\76\2\0\1\61"+
- "\1\0\1\172\31\0\1\61\31\0\1\77\11\0\1\77"+
- "\3\0\1\62\1\0\1\64\10\0\1\64\12\0\1\62"+
- "\10\0\1\62\24\0\12\15\1\0\70\15\12\110\1\0"+
- "\12\110\1\111\1\173\66\110\1\0\70\110\26\0\1\174"+
- "\55\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\2\4\1\175\25\4"+
- "\25\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\21\4\1\176\6\4"+
- "\25\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\23\4\1\177\4\4"+
- "\25\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\10\4\1\200\17\4"+
- "\25\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\4\4\1\201\23\4"+
- "\25\0\2\4\1\0\2\4\1\0\1\4\3\0\5\4"+
- "\1\0\1\4\1\0\1\4\3\0\1\202\27\4\25\0"+
- "\2\4\1\0\2\4\1\0\1\4\3\0\5\4\1\0"+
- "\1\4\1\0\1\4\3\0\1\4\1\203\26\4\25\0"+
- "\2\4\1\0\2\4\1\0\1\4\3\0\5\4\1\0"+
- "\1\4\1\0\1\4\3\0\13\4\1\204\1\4\1\205"+
- "\12\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\5\4\1\206"+
- "\22\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\11\4\1\207"+
- "\2\4\1\210\13\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\20\4\1\211\7\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\10\4\1\212\17\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\23\4\1\213\4\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\14\4\1\214\13\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\1\215\27\4\25\0\2\4\1\0\2\4\1\0\1\4"+
- "\3\0\5\4\1\0\1\4\1\0\1\4\3\0\3\4"+
- "\1\216\24\4\25\0\2\4\1\0\2\4\1\0\1\4"+
- "\3\0\5\4\1\0\1\4\1\0\1\4\3\0\3\4"+
- "\1\217\5\4\1\220\16\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\11\4\1\221\16\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\14\4\1\222\6\4\1\223\4\4\103\0\1\224"+
- "\52\0\1\225\3\0\1\226\126\0\1\227\24\0\1\161"+
- "\11\0\1\161\3\0\1\62\25\0\1\62\10\0\1\62"+
- "\25\0\2\163\1\0\2\163\1\230\1\163\3\0\5\163"+
- "\1\0\1\163\1\0\1\163\3\0\30\163\24\0\11\164"+
- "\1\231\71\164\10\232\1\233\1\165\71\232\1\0\2\166"+
- "\10\0\1\166\1\0\1\166\1\0\1\166\1\0\1\166"+
- "\1\0\1\234\4\0\1\166\1\0\1\166\1\0\1\234"+
- "\1\166\7\0\2\166\7\0\1\166\25\0\2\166\10\0"+
- "\1\166\1\0\1\166\1\0\1\166\1\160\1\166\1\0"+
- "\1\234\4\0\1\166\1\0\1\166\1\0\1\234\1\166"+
- "\7\0\2\166\7\0\1\166\25\0\1\235\1\166\10\0"+
- "\1\235\1\0\1\166\1\0\1\166\1\0\1\166\1\236"+
- "\1\234\4\0\1\166\1\0\1\166\1\0\1\234\1\166"+
- "\7\0\2\166\7\0\1\166\2\0\1\236\41\0\1\160"+
- "\62\0\26\174\1\237\54\174\1\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\3\4\1\240\24\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\23\4\1\241\4\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\3\4\1\242\24\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\3\4\1\243\24\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\10\4\1\244\17\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\4\4\1\245\23\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\3\4\1\246\24\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\3\4\1\247\24\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\4\4\1\250\23\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\12\4\1\251\15\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\3\4\1\252\24\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\13\4\1\253\14\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\4\4\1\254\23\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\1\4\1\255\26\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\1\256\27\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\23\4\1\257\4\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\4\4\1\260\23\4\24\0\10\164\1\261\1\231\71\164"+
- "\11\232\1\262\71\232\1\0\1\161\11\0\1\161\6\0"+
- "\1\236\36\0\1\236\22\0\1\235\1\166\10\0\1\235"+
- "\1\0\1\166\1\0\1\263\1\0\1\166\1\0\1\234"+
- "\4\0\1\166\1\0\1\166\1\0\1\234\1\166\7\0"+
- "\1\263\1\166\7\0\1\263\25\0\1\161\11\0\1\161"+
- "\67\0\26\174\1\264\54\174\1\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\4\4\1\265\23\4\25\0\2\4\1\0\2\4"+
- "\1\0\1\4\3\0\5\4\1\0\1\4\1\0\1\4"+
- "\3\0\1\266\27\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\11\4\1\267\16\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\4\4\1\270\23\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\12\4\1\271\15\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\21\4\1\272\6\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\6\4\1\273\21\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\14\4\1\274\13\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\3\4\1\275\24\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\24\4\1\276\3\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\3\4\1\277\24\4\24\0\10\232\1\233\1\262\71\232"+
- "\26\174\1\300\54\174\1\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\5\4\1\301\22\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\4\4\1\302\23\4\25\0\2\4\1\0\2\4\1\0"+
- "\1\4\3\0\5\4\1\0\1\4\1\0\1\4\3\0"+
- "\1\303\27\4\25\0\2\4\1\0\2\4\1\0\1\4"+
- "\3\0\5\4\1\0\1\4\1\0\1\4\3\0\16\4"+
- "\1\304\11\4\25\0\2\4\1\0\2\4\1\0\1\4"+
- "\3\0\5\4\1\0\1\4\1\0\1\4\3\0\10\4"+
- "\1\305\17\4\25\0\2\4\1\0\2\4\1\0\1\4"+
- "\3\0\5\4\1\0\1\4\1\0\1\4\3\0\1\306"+
- "\27\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\1\4\1\307"+
- "\26\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\11\4\1\310"+
- "\16\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\13\4\1\311"+
- "\14\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\6\4\1\312"+
- "\21\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\12\4\1\313"+
- "\15\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\3\4\1\314"+
- "\24\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\3\4\1\315"+
- "\24\4\25\0\2\4\1\0\2\4\1\0\1\4\3\0"+
- "\5\4\1\0\1\4\1\0\1\4\3\0\1\316\27\4"+
- "\24\0";
+ "\12\0\1\62\4\0\1\61\3\0\1\62\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\30\4\26\0\1\5\7\0\1\5"+
+ "\71\0\1\65\1\0\1\65\2\0\1\65\5\0\4\65"+
+ "\1\0\1\65\1\0\1\65\3\0\30\65\24\0\1\4"+
+ "\1\66\1\0\1\66\1\4\1\67\1\66\4\0\1\4"+
+ "\4\66\1\0\1\66\1\0\1\66\3\0\30\66\25\0"+
+ "\1\70\1\0\1\70\1\0\1\71\1\70\1\72\4\0"+
+ "\4\70\1\0\1\70\1\0\1\70\3\0\30\70\34\0"+
+ "\1\73\1\74\45\0\1\75\102\0\1\76\23\0\1\77"+
+ "\12\0\1\77\1\100\1\101\1\61\1\62\1\63\1\64"+
+ "\10\0\1\64\3\0\1\100\6\0\1\62\1\101\3\0"+
+ "\1\61\3\0\1\62\24\0\1\102\10\0\1\103\1\0"+
+ "\1\102\4\0\1\104\45\0\1\105\36\0\1\106\34\0"+
+ "\1\107\3\0\1\110\16\0\13\16\1\0\11\16\1\111"+
+ "\1\112\54\16\13\113\1\0\12\113\1\114\1\115\53\113"+
+ "\1\0\2\4\1\0\2\4\1\0\1\4\4\0\5\4"+
+ "\1\0\1\4\1\0\1\4\3\0\1\4\1\116\1\4"+
+ "\1\117\7\4\1\120\14\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\4\4\1\121\23\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\7\4\1\122\13\4\1\123\4\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\12\4\1\124\10\4\1\125\4\4"+
+ "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\5\4"+
+ "\1\0\1\4\1\0\1\4\3\0\14\4\1\126\1\127"+
+ "\4\4\1\130\5\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\1\131\3\4\1\132\11\4\1\133\11\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\17\4\1\134\10\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\135\24\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\1\4\1\136\10\4\1\137\1\140"+
+ "\14\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
+ "\5\4\1\0\1\4\1\0\1\4\3\0\14\4\1\141"+
+ "\13\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
+ "\5\4\1\0\1\4\1\0\1\4\3\0\22\4\1\142"+
+ "\5\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
+ "\5\4\1\0\1\4\1\0\1\4\3\0\22\4\1\143"+
+ "\5\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
+ "\5\4\1\0\1\4\1\0\1\4\3\0\1\4\1\144"+
+ "\26\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
+ "\5\4\1\0\1\4\1\0\1\4\3\0\12\4\1\145"+
+ "\15\4\103\0\1\146\3\0\1\147\57\0\1\150\16\0"+
+ "\1\151\102\0\1\152\1\0\1\153\100\0\1\154\102\0"+
+ "\1\155\107\0\1\156\103\0\1\157\35\0\1\160\46\0"+
+ "\1\161\72\0\1\162\23\0\1\102\12\0\1\102\3\0"+
+ "\1\62\1\163\1\64\10\0\1\64\12\0\1\62\10\0"+
+ "\1\62\24\0\1\164\12\0\1\164\3\0\1\62\2\0"+
+ "\1\164\22\0\1\62\10\0\1\62\2\0\1\164\21\0"+
+ "\2\65\1\0\2\65\1\165\1\65\4\0\5\65\1\0"+
+ "\1\65\1\0\1\65\3\0\30\65\24\0\2\66\1\0"+
+ "\2\66\1\0\1\66\4\0\5\66\1\0\1\66\1\0"+
+ "\1\66\3\0\30\66\25\0\1\166\1\0\1\166\2\0"+
+ "\1\166\5\0\4\166\1\0\1\166\1\0\1\166\3\0"+
+ "\30\166\24\0\2\70\1\0\2\70\1\0\1\70\4\0"+
+ "\5\70\1\0\1\70\1\0\1\70\3\0\30\70\25\0"+
+ "\1\167\1\0\1\167\2\0\1\167\5\0\4\167\1\0"+
+ "\1\167\1\0\1\167\3\0\30\167\23\0\13\73\1\0"+
+ "\67\73\12\170\1\171\70\170\1\0\1\77\12\0\1\77"+
+ "\3\0\1\62\1\102\1\64\10\0\1\64\12\0\1\62"+
+ "\10\0\1\62\23\0\1\172\2\100\10\172\1\0\1\100"+
+ "\1\172\1\100\1\173\1\100\1\174\1\100\1\172\1\175"+
+ "\4\172\1\100\1\172\1\100\1\172\1\175\1\100\7\172"+
+ "\2\100\3\172\1\173\3\172\1\100\23\172\1\0\1\101"+
+ "\12\0\1\101\2\0\1\61\1\0\1\176\31\0\1\61"+
+ "\30\0\1\102\12\0\1\102\3\0\1\62\1\0\1\64"+
+ "\10\0\1\64\12\0\1\62\10\0\1\62\23\0\13\16"+
+ "\1\0\67\16\13\113\1\0\12\113\1\114\1\177\66\113"+
+ "\1\0\67\113\27\0\1\200\54\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\2\4\1\201\25\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\21\4\1\202\6\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\23\4\1\203\4\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\10\4\1\204\17\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\4\4\1\205\23\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\1\206\27\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\1\4\1\207\26\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\13\4\1\210\1\4\1\211\12\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\5\4\1\212\22\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\11\4\1\213\2\4\1\214\13\4\24\0"+
+ "\2\4\1\0\2\4\1\0\1\4\4\0\5\4\1\0"+
+ "\1\4\1\0\1\4\3\0\20\4\1\215\7\4\24\0"+
+ "\2\4\1\0\2\4\1\0\1\4\4\0\5\4\1\0"+
+ "\1\4\1\0\1\4\3\0\10\4\1\216\17\4\24\0"+
+ "\2\4\1\0\2\4\1\0\1\4\4\0\5\4\1\0"+
+ "\1\4\1\0\1\4\3\0\23\4\1\217\4\4\24\0"+
+ "\2\4\1\0\2\4\1\0\1\4\4\0\5\4\1\0"+
+ "\1\4\1\0\1\4\3\0\14\4\1\220\13\4\24\0"+
+ "\2\4\1\0\2\4\1\0\1\4\4\0\5\4\1\0"+
+ "\1\4\1\0\1\4\3\0\1\221\27\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\222\24\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\223\5\4\1\224\16\4"+
+ "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\5\4"+
+ "\1\0\1\4\1\0\1\4\3\0\11\4\1\225\16\4"+
+ "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\5\4"+
+ "\1\0\1\4\1\0\1\4\3\0\14\4\1\226\6\4"+
+ "\1\227\4\4\103\0\1\230\52\0\1\231\3\0\1\232"+
+ "\126\0\1\233\23\0\1\164\12\0\1\164\3\0\1\62"+
+ "\25\0\1\62\10\0\1\62\24\0\2\166\1\0\2\166"+
+ "\1\234\1\166\4\0\5\166\1\0\1\166\1\0\1\166"+
+ "\3\0\30\166\24\0\2\167\1\0\2\167\1\235\1\167"+
+ "\4\0\5\167\1\0\1\167\1\0\1\167\3\0\30\167"+
+ "\23\0\12\170\1\236\70\170\11\237\1\240\1\171\70\237"+
+ "\1\0\2\172\11\0\1\172\1\0\1\172\1\0\1\172"+
+ "\1\0\1\172\1\0\1\241\4\0\1\172\1\0\1\172"+
+ "\1\0\1\241\1\172\7\0\2\172\7\0\1\172\24\0"+
+ "\2\172\11\0\1\172\1\0\1\172\1\0\1\172\1\163"+
+ "\1\172\1\0\1\241\4\0\1\172\1\0\1\172\1\0"+
+ "\1\241\1\172\7\0\2\172\7\0\1\172\24\0\1\242"+
+ "\1\172\11\0\1\242\1\0\1\172\1\0\1\172\1\0"+
+ "\1\172\1\243\1\241\4\0\1\172\1\0\1\172\1\0"+
+ "\1\241\1\172\7\0\2\172\7\0\1\172\2\0\1\243"+
+ "\41\0\1\163\61\0\27\200\1\244\53\200\1\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\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\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\23\4\1\246\4\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\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\5\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\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\10\4\1\251\17\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\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\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\253\24\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\254\24\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\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\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\12\4\1\256\15\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\3\4\1\257\24\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\13\4\1\260\14\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\4\4\1\261\23\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\1\4\1\262\26\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\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\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\23\4\1\264\4\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\4\4\1\265\23\4\23\0\11\170\1\266"+
+ "\1\236\70\170\12\237\1\267\70\237\1\0\1\164\12\0"+
+ "\1\164\6\0\1\243\36\0\1\243\21\0\1\242\1\172"+
+ "\11\0\1\242\1\0\1\172\1\0\1\270\1\0\1\172"+
+ "\1\0\1\241\4\0\1\172\1\0\1\172\1\0\1\241"+
+ "\1\172\7\0\1\270\1\172\7\0\1\270\24\0\1\164"+
+ "\12\0\1\164\66\0\27\200\1\271\53\200\1\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\4\4\1\272\23\4\24\0\2\4"+
+ "\1\0\2\4\1\0\1\4\4\0\5\4\1\0\1\4"+
+ "\1\0\1\4\3\0\1\273\27\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\11\4\1\274\16\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\4\4\1\275\23\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\12\4\1\276\15\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\21\4\1\277\6\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\6\4\1\300\21\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\14\4\1\301\13\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\3\4\1\302\24\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\24\4\1\303\3\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\3\4\1\304\24\4\23\0\11\237\1\240"+
+ "\1\267\70\237\27\200\1\305\53\200\1\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\5\4\1\306\22\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\4\4\1\307\23\4\24\0\2\4\1\0"+
+ "\2\4\1\0\1\4\4\0\5\4\1\0\1\4\1\0"+
+ "\1\4\3\0\1\310\27\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\16\4\1\311\11\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\10\4\1\312\17\4\24\0\2\4\1\0\2\4"+
+ "\1\0\1\4\4\0\5\4\1\0\1\4\1\0\1\4"+
+ "\3\0\1\313\27\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\1\4\1\314\26\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\11\4\1\315\16\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\13\4\1\316\14\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\6\4\1\317\21\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\12\4\1\320\15\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\3\4\1\321\24\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\3\4\1\322\24\4\24\0\2\4\1\0\2\4\1\0"+
+ "\1\4\4\0\5\4\1\0\1\4\1\0\1\4\3\0"+
+ "\1\323\27\4\23\0";
private static int [] zzUnpackTrans() {
- int [] result = new int[8911];
+ int [] result = new int[9179];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -497,15 +505,15 @@ class _JetLexer implements FlexLexer {
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
- "\1\0\1\11\42\1\1\11\1\1\14\11\2\1\1\0"+
- "\1\1\1\0\2\1\2\11\1\0\3\1\7\11\35\1"+
- "\1\11\1\0\1\1\12\11\1\1\1\11\1\0\2\1"+
- "\1\0\1\1\3\0\1\11\30\1\5\11\1\0\1\1"+
- "\1\11\1\0\1\1\2\0\21\1\1\11\1\0\1\1"+
- "\1\0\13\1\1\11\16\1";
+ "\1\0\1\11\43\1\1\11\1\1\13\11\2\1\1\0"+
+ "\1\1\1\0\1\1\1\0\1\11\2\1\2\11\1\0"+
+ "\3\1\7\11\35\1\1\11\1\0\1\1\12\11\1\1"+
+ "\1\11\2\0\2\1\1\0\1\1\3\0\1\11\30\1"+
+ "\6\11\1\0\1\1\1\11\1\0\1\1\2\0\21\1"+
+ "\1\11\1\0\1\1\1\0\13\1\1\11\16\1";
private static int [] zzUnpackAttribute() {
- int [] result = new int[206];
+ int [] result = new int[211];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -813,359 +821,367 @@ class _JetLexer implements FlexLexer {
case 3:
{ return JetTokens.IDENTIFIER;
}
- case 90: break;
- case 64:
+ case 92: break;
+ case 66:
{ return JetTokens.FOR_KEYWORD ;
}
- case 91: break;
- case 86:
+ case 93: break;
+ case 88:
{ return JetTokens.RETURN_KEYWORD ;
}
- case 92: break;
- case 72:
+ case 94: break;
+ case 74:
{ return JetTokens.NULL_KEYWORD ;
}
- case 93: break;
- case 14:
+ case 95: break;
+ case 15:
{ return JetTokens.LT ;
}
- case 94: break;
- case 46:
+ case 96: break;
+ case 48:
{ return JetTokens.DO_KEYWORD ;
}
- case 95: break;
- case 13:
+ case 97: break;
+ case 14:
{ return JetTokens.PLUS ;
}
- case 96: break;
+ case 98: break;
case 29:
{ return JetTokens.LONG_LITERAL;
}
- case 97: break;
- case 61:
+ case 99: break;
+ case 63:
{ return JetTokens.RAW_STRING_LITERAL;
}
- case 98: break;
- case 50:
+ case 100: break;
+ case 52:
{ return JetTokens.PLUSEQ ;
}
- case 99: break;
- case 26:
+ case 101: break;
+ case 27:
{ return JetTokens.COMMA ;
}
- case 100: break;
- case 15:
+ case 102: break;
+ case 16:
{ return JetTokens.GT ;
}
- case 101: break;
+ case 103: break;
case 4:
{ return JetTokens.WHITE_SPACE;
}
- case 102: break;
- case 84:
+ case 104: break;
+ case 86:
{ return JetTokens.TYPEOF_KEYWORD ;
}
- case 103: break;
- case 24:
+ case 105: break;
+ case 25:
{ return JetTokens.RPAR ;
}
- case 104: break;
- case 48:
+ case 106: break;
+ case 50:
{ return JetTokens.DOUBLE_ARROW;
}
- case 105: break;
- case 74:
+ case 107: break;
+ case 76:
{ return JetTokens.TRUE_KEYWORD ;
}
- case 106: break;
+ case 108: break;
case 31:
{ return JetTokens.FIELD_IDENTIFIER;
}
- case 107: break;
- case 54:
+ case 109: break;
+ case 56:
{ return JetTokens.ANDAND ;
}
- case 108: break;
- case 60:
+ case 110: break;
+ case 62:
{ return JetTokens.DOC_COMMENT;
}
- case 109: break;
+ case 111: break;
case 30:
{ return JetTokens.FLOAT_LITERAL;
}
- case 110: break;
- case 32:
+ case 112: break;
+ case 34:
{ return JetTokens.EOL_COMMENT;
}
- case 111: break;
- case 77:
+ case 113: break;
+ case 79:
{ return JetTokens.WHEN_KEYWORD ;
}
- case 112: break;
- case 17:
+ case 114: break;
+ case 18:
{ return JetTokens.COLON ;
}
- case 113: break;
- case 52:
+ case 115: break;
+ case 54:
{ return JetTokens.LTEQ ;
}
- case 114: break;
- case 41:
+ case 116: break;
+ case 43:
{ return JetTokens.ARROW ;
}
- case 115: break;
- case 19:
+ case 117: break;
+ case 20:
{ return JetTokens.LBRACKET ;
}
- case 116: break;
- case 59:
+ case 118: break;
+ case 61:
{ yypushback(2); return JetTokens.INTEGER_LITERAL;
}
- case 117: break;
- case 9:
+ case 119: break;
+ case 10:
{ return JetTokens.CHARACTER_LITERAL;
}
- case 118: break;
- case 66:
+ case 120: break;
+ case 68:
{ return JetTokens.VAR_KEYWORD ;
}
- case 119: break;
- case 53:
+ case 121: break;
+ case 55:
{ return JetTokens.GTEQ ;
}
- case 120: break;
+ case 122: break;
case 2:
{ return JetTokens.INTEGER_LITERAL;
}
- case 121: break;
- case 22:
+ case 123: break;
+ case 23:
{ return JetTokens.RBRACE ;
}
- case 122: break;
- case 79:
+ case 124: break;
+ case 81:
{ return JetTokens.CLASS_KEYWORD ;
}
- case 123: break;
- case 12:
+ case 125: break;
+ case 13:
{ return JetTokens.EXCL ;
}
- case 124: break;
- case 63:
+ case 126: break;
+ case 65:
{ return JetTokens.TRY_KEYWORD ;
}
- case 125: break;
- case 49:
+ case 127: break;
+ case 51:
{ return JetTokens.EXCLEQ ;
}
- case 126: break;
- case 40:
+ case 128: break;
+ case 42:
{ return JetTokens.MINUSEQ ;
}
- case 127: break;
- case 80:
+ case 129: break;
+ case 82:
{ return JetTokens.THROW_KEYWORD ;
}
- case 128: break;
- case 83:
+ case 130: break;
+ case 85:
{ return JetTokens.WHILE_KEYWORD ;
}
- case 129: break;
- case 39:
+ case 131: break;
+ case 41:
{ return JetTokens.MINUSMINUS;
}
- case 130: break;
- case 87:
+ case 132: break;
+ case 89:
{ return JetTokens.CONTINUE_KEYWORD ;
}
- case 131: break;
- case 69:
- { return JetTokens.NOT_IN;
- }
- case 132: break;
- case 5:
- { return JetTokens.DIV ;
- }
case 133: break;
- case 57:
- { return JetTokens.ELVIS ;
+ case 33:
+ { return JetTokens.ATAT ;
}
case 134: break;
- case 16:
- { return JetTokens.QUEST ;
+ case 71:
+ { return JetTokens.NOT_IN;
}
case 135: break;
- case 55:
- { return JetTokens.OROR ;
+ case 6:
+ { return JetTokens.DIV ;
}
case 136: break;
- case 18:
- { return JetTokens.PERC ;
+ case 59:
+ { return JetTokens.ELVIS ;
}
case 137: break;
- case 71:
- { return JetTokens.EXCLEQEQEQ;
+ case 32:
+ { return JetTokens.LABEL_IDENTIFIER;
}
case 138: break;
- case 58:
- { return JetTokens.PERCEQ ;
+ case 17:
+ { return JetTokens.QUEST ;
}
case 139: break;
- case 37:
- { return JetTokens.RANGE ;
+ case 57:
+ { return JetTokens.OROR ;
}
case 140: break;
+ case 19:
+ { return JetTokens.PERC ;
+ }
+ case 141: break;
+ case 73:
+ { return JetTokens.EXCLEQEQEQ;
+ }
+ case 142: break;
+ case 60:
+ { return JetTokens.PERCEQ ;
+ }
+ case 143: break;
+ case 39:
+ { return JetTokens.RANGE ;
+ }
+ case 144: break;
case 1:
{ return TokenType.BAD_CHARACTER;
}
- case 141: break;
- case 56:
+ case 145: break;
+ case 58:
{ return JetTokens.SAFE_ACCESS;
}
- case 142: break;
- case 88:
+ case 146: break;
+ case 90:
{ return JetTokens.NAMESPACE_KEYWORD ;
}
- case 143: break;
- case 70:
- { return JetTokens.NOT_IS;
- }
- case 144: break;
- case 6:
- { return JetTokens.MUL ;
- }
- case 145: break;
- case 20:
- { return JetTokens.RBRACKET ;
- }
- case 146: break;
- case 51:
- { return JetTokens.PLUSPLUS ;
- }
case 147: break;
- case 76:
- { return JetTokens.THIS_KEYWORD ;
+ case 72:
+ { return JetTokens.NOT_IS;
}
case 148: break;
case 7:
- { return JetTokens.DOT ;
+ { return JetTokens.MUL ;
}
case 149: break;
- case 25:
- { return JetTokens.SEMICOLON ;
+ case 21:
+ { return JetTokens.RBRACKET ;
}
case 150: break;
- case 45:
- { return JetTokens.IF_KEYWORD ;
+ case 53:
+ { return JetTokens.PLUSPLUS ;
}
case 151: break;
- case 11:
- { return JetTokens.EQ ;
+ case 78:
+ { return JetTokens.THIS_KEYWORD ;
}
case 152: break;
- case 28:
- { return JetTokens.AT ;
+ case 8:
+ { return JetTokens.DOT ;
}
case 153: break;
- case 23:
- { return JetTokens.LPAR ;
+ case 26:
+ { return JetTokens.SEMICOLON ;
}
case 154: break;
- case 8:
- { return JetTokens.MINUS ;
+ case 47:
+ { return JetTokens.IF_KEYWORD ;
}
case 155: break;
- case 81:
- { return JetTokens.FALSE_KEYWORD ;
+ case 12:
+ { return JetTokens.EQ ;
}
case 156: break;
- case 75:
- { return JetTokens.TYPE_KEYWORD ;
+ case 5:
+ { return JetTokens.AT ;
}
case 157: break;
- case 65:
- { return JetTokens.FUN_KEYWORD ;
+ case 24:
+ { return JetTokens.LPAR ;
}
case 158: break;
- case 44:
- { return JetTokens.IS_KEYWORD ;
+ case 9:
+ { return JetTokens.MINUS ;
}
case 159: break;
- case 34:
- { return JetTokens.DIVEQ ;
+ case 83:
+ { return JetTokens.FALSE_KEYWORD ;
}
case 160: break;
- case 89:
- { return JetTokens.EXTENSION_KEYWORD ;
+ case 77:
+ { return JetTokens.TYPE_KEYWORD ;
}
case 161: break;
- case 73:
- { return JetTokens.ELSE_KEYWORD ;
+ case 67:
+ { return JetTokens.FUN_KEYWORD ;
}
case 162: break;
- case 42:
- { return JetTokens.AS_KEYWORD ;
+ case 46:
+ { return JetTokens.IS_KEYWORD ;
}
case 163: break;
- case 43:
- { return JetTokens.IN_KEYWORD ;
+ case 36:
+ { return JetTokens.DIVEQ ;
}
case 164: break;
- case 47:
- { return JetTokens.EQEQ ;
+ case 91:
+ { return JetTokens.EXTENSION_KEYWORD ;
}
case 165: break;
- case 67:
- { return JetTokens.VAL_KEYWORD ;
+ case 75:
+ { return JetTokens.ELSE_KEYWORD ;
}
case 166: break;
- case 68:
- { return JetTokens.EQEQEQ ;
+ case 44:
+ { return JetTokens.AS_KEYWORD ;
}
case 167: break;
- case 78:
- { return JetTokens.CAPITALIZED_THIS_KEYWORD ;
+ case 45:
+ { return JetTokens.IN_KEYWORD ;
}
case 168: break;
- case 62:
- { return JetTokens.NEW_KEYWORD ;
+ case 49:
+ { return JetTokens.EQEQ ;
}
case 169: break;
- case 35:
- { return JetTokens.MULTEQ ;
+ case 69:
+ { return JetTokens.VAL_KEYWORD ;
}
case 170: break;
- case 10:
- { return JetTokens.STRING_LITERAL;
+ case 70:
+ { return JetTokens.EQEQEQ ;
}
case 171: break;
- case 21:
- { return JetTokens.LBRACE ;
+ case 80:
+ { return JetTokens.CAPITALIZED_THIS_KEYWORD ;
}
case 172: break;
- case 85:
- { return JetTokens.OBJECT_KEYWORD ;
+ case 64:
+ { return JetTokens.NEW_KEYWORD ;
}
case 173: break;
- case 82:
- { return JetTokens.BREAK_KEYWORD ;
+ case 37:
+ { return JetTokens.MULTEQ ;
}
case 174: break;
- case 33:
- { return JetTokens.BLOCK_COMMENT;
+ case 11:
+ { return JetTokens.STRING_LITERAL;
}
case 175: break;
- case 38:
- { return JetTokens.FILTER ;
+ case 22:
+ { return JetTokens.LBRACE ;
}
case 176: break;
- case 27:
- { return JetTokens.HASH ;
+ case 87:
+ { return JetTokens.OBJECT_KEYWORD ;
}
case 177: break;
- case 36:
- { return JetTokens.MAP ;
+ case 84:
+ { return JetTokens.BREAK_KEYWORD ;
}
case 178: break;
+ case 35:
+ { return JetTokens.BLOCK_COMMENT;
+ }
+ case 179: break;
+ case 40:
+ { return JetTokens.FILTER ;
+ }
+ case 180: break;
+ case 28:
+ { return JetTokens.HASH ;
+ }
+ case 181: break;
+ case 38:
+ { return JetTokens.MAP ;
+ }
+ case 182: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
diff --git a/idea/testData/psi/ControlStructures.jet b/idea/testData/psi/ControlStructures.jet
index 093b2c10a6e..82abdd79e20 100644
--- a/idea/testData/psi/ControlStructures.jet
+++ b/idea/testData/psi/ControlStructures.jet
@@ -3,9 +3,9 @@ fun a(
a : foo = throw new Foo,
a : foo = return 10,
a : foo = break,
- a : foo = break "la",
+ a : foo = break @la,
a : foo = continue,
- a : foo = continue "la",
+ a : foo = continue @la,
a : foo = if (10) foo else bar,
a : foo = if (10) foo
) {
@@ -13,11 +13,11 @@ fun a(
return
10
break
- "la"
- break "la"
+ @la
+ break @la
continue
- "la"
- continue "la"
+ @la
+ continue @la
if (foo)
if (foo)
bar
diff --git a/idea/testData/psi/ControlStructures.txt b/idea/testData/psi/ControlStructures.txt
index 332afae7ceb..324d58bf8d7 100644
--- a/idea/testData/psi/ControlStructures.txt
+++ b/idea/testData/psi/ControlStructures.txt
@@ -83,7 +83,7 @@ JetFile: ControlStructures.jet
BREAK
PsiElement(break)('break')
PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
@@ -117,7 +117,7 @@ JetFile: ControlStructures.jet
CONTINUE
PsiElement(continue)('continue')
PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
@@ -197,24 +197,24 @@ JetFile: ControlStructures.jet
BREAK
PsiElement(break)('break')
PsiWhiteSpace('\n ')
- STRING_CONSTANT
- PsiElement(STRING_LITERAL)('"la"')
- PsiWhiteSpace('\n ')
- BREAK
- PsiElement(break)('break')
- PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@la')
+ PsiWhiteSpace('\n ')
+ BREAK
+ PsiElement(break)('break')
+ PsiWhiteSpace(' ')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiWhiteSpace('\n ')
CONTINUE
PsiElement(continue)('continue')
PsiWhiteSpace('\n ')
- STRING_CONSTANT
- PsiElement(STRING_LITERAL)('"la"')
- PsiWhiteSpace('\n ')
- CONTINUE
- PsiElement(continue)('continue')
- PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@la')
+ PsiWhiteSpace('\n ')
+ CONTINUE
+ PsiElement(continue)('continue')
+ PsiWhiteSpace(' ')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
diff --git a/idea/testData/psi/Labels.jet b/idea/testData/psi/Labels.jet
new file mode 100644
index 00000000000..57f1eb85da4
--- /dev/null
+++ b/idea/testData/psi/Labels.jet
@@ -0,0 +1,60 @@
+fun foo() {
+ return
+ return 1
+ return (@a 1)
+
+ return@
+ return@ 1
+ return@ (@ 1)
+ return@ @ 1
+
+ return@a
+ return@a 1
+ return@a (@a 1)
+ return@a @a 1
+
+ return@@
+ return@@ 1
+ return@@ (@@ 1)
+ return@@ @@ 1
+
+ @a return@@
+ @a return@@ 1
+ @a return@@ (@@ 1)
+ @a return@@ @@ 1
+
+ break
+ break@
+ break@a
+ break@@
+
+ continue
+ continue@
+ continue@a
+ continue@@
+
+ a.filter @f{
+ if (1) return
+ return@f true
+ }
+
+ a.filter @{
+ if (1) return
+ return@ true
+ }
+
+ a.filter @@{
+ if (1) return
+ return@@ true
+ }
+
+ this
+ this@
+ this@a
+ this@@
+
+ this
+ this@
+ this@a
+ this@@
+}
\ No newline at end of file
diff --git a/idea/testData/psi/Labels.txt b/idea/testData/psi/Labels.txt
new file mode 100644
index 00000000000..5ea02f555d8
--- /dev/null
+++ b/idea/testData/psi/Labels.txt
@@ -0,0 +1,377 @@
+JetFile: Labels.jet
+ NAMESPACE
+ FUN
+ PsiElement(fun)('fun')
+ PsiWhiteSpace(' ')
+ PsiElement(IDENTIFIER)('foo')
+ TYPE_PARAMETER_LIST
+
+ VALUE_PARAMETER_LIST
+ PsiElement(LPAR)('(')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace(' ')
+ BLOCK
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiWhiteSpace(' ')
+ PARENTHESIZED
+ PsiElement(LPAR)('(')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace('\n\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(AT)('@')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(AT)('@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(AT)('@')
+ PsiWhiteSpace(' ')
+ PARENTHESIZED
+ PsiElement(LPAR)('(')
+ PREFIX_EXPRESSION
+ PsiElement(AT)('@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(AT)('@')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(AT)('@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ PARENTHESIZED
+ PsiElement(LPAR)('(')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ PARENTHESIZED
+ PsiElement(LPAR)('(')
+ PREFIX_EXPRESSION
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n\n ')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace('\n ')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n ')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ PARENTHESIZED
+ PsiElement(LPAR)('(')
+ PREFIX_EXPRESSION
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace('\n ')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace(' ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiWhiteSpace('\n\n ')
+ BREAK
+ PsiElement(break)('break')
+ PsiWhiteSpace('\n ')
+ BREAK
+ PsiElement(break)('break')
+ PsiElement(AT)('@')
+ PsiWhiteSpace('\n ')
+ BREAK
+ PsiElement(break)('break')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace('\n ')
+ BREAK
+ PsiElement(break)('break')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace('\n\n ')
+ CONTINUE
+ PsiElement(continue)('continue')
+ PsiWhiteSpace('\n ')
+ CONTINUE
+ PsiElement(continue)('continue')
+ PsiElement(AT)('@')
+ PsiWhiteSpace('\n ')
+ CONTINUE
+ PsiElement(continue)('continue')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace('\n ')
+ CONTINUE
+ PsiElement(continue)('continue')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace('\n\n ')
+ CALL_EXPRESSION
+ DOT_QIALIFIED_EXPRESSION
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('a')
+ PsiElement(DOT)('.')
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('filter')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@f')
+ FUNCTION_LITERAL
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n ')
+ BODY
+ IF
+ PsiElement(if)('if')
+ PsiWhiteSpace(' ')
+ PsiElement(LPAR)('(')
+ CONDITION
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace(' ')
+ THEN
+ RETURN
+ PsiElement(return)('return')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(LABEL_IDENTIFIER)('@f')
+ PsiWhiteSpace(' ')
+ BOOLEAN_CONSTANT
+ PsiElement(true)('true')
+ PsiWhiteSpace('\n ')
+ PsiElement(RBRACE)('}')
+ PsiWhiteSpace('\n\n ')
+ CALL_EXPRESSION
+ DOT_QIALIFIED_EXPRESSION
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('a')
+ PsiElement(DOT)('.')
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('filter')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(AT)('@')
+ FUNCTION_LITERAL
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n ')
+ BODY
+ IF
+ PsiElement(if)('if')
+ PsiWhiteSpace(' ')
+ PsiElement(LPAR)('(')
+ CONDITION
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace(' ')
+ THEN
+ RETURN
+ PsiElement(return)('return')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(AT)('@')
+ PsiWhiteSpace(' ')
+ BOOLEAN_CONSTANT
+ PsiElement(true)('true')
+ PsiWhiteSpace('\n ')
+ PsiElement(RBRACE)('}')
+ PsiWhiteSpace('\n\n ')
+ CALL_EXPRESSION
+ DOT_QIALIFIED_EXPRESSION
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('a')
+ PsiElement(DOT)('.')
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('filter')
+ PsiWhiteSpace(' ')
+ PREFIX_EXPRESSION
+ PsiElement(ATAT)('@@')
+ FUNCTION_LITERAL
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n ')
+ BODY
+ IF
+ PsiElement(if)('if')
+ PsiWhiteSpace(' ')
+ PsiElement(LPAR)('(')
+ CONDITION
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('1')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace(' ')
+ THEN
+ RETURN
+ PsiElement(return)('return')
+ PsiWhiteSpace('\n ')
+ RETURN
+ PsiElement(return)('return')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace(' ')
+ BOOLEAN_CONSTANT
+ PsiElement(true)('true')
+ PsiWhiteSpace('\n ')
+ PsiElement(RBRACE)('}')
+ PsiWhiteSpace('\n\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiWhiteSpace('\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(AT)('@')
+ PsiWhiteSpace('\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiWhiteSpace('\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(ATAT)('@@')
+ PsiWhiteSpace('\n\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(LT)('<')
+ TYPE_REFERENCE
+ USER_TYPE
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('A')
+ PsiElement(GT)('>')
+ PsiWhiteSpace('\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(AT)('@')
+ PsiElement(LT)('<')
+ TYPE_REFERENCE
+ USER_TYPE
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('A')
+ PsiElement(GT)('>')
+ PsiWhiteSpace('\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(LABEL_IDENTIFIER)('@a')
+ PsiElement(LT)('<')
+ TYPE_REFERENCE
+ USER_TYPE
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('A')
+ PsiElement(GT)('>')
+ PsiWhiteSpace('\n ')
+ THIS_EXPRESSION
+ PsiElement(this)('this')
+ PsiElement(ATAT)('@@')
+ PsiElement(LT)('<')
+ TYPE_REFERENCE
+ USER_TYPE
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('A')
+ PsiElement(GT)('>')
+ PsiWhiteSpace('\n')
+ PsiElement(RBRACE)('}')
\ No newline at end of file
diff --git a/idea/testData/psi/SimpleExpressions.jet b/idea/testData/psi/SimpleExpressions.jet
index 0cd377e6a62..db877d3764f 100644
--- a/idea/testData/psi/SimpleExpressions.jet
+++ b/idea/testData/psi/SimpleExpressions.jet
@@ -27,9 +27,9 @@ fun a(
a : foo = throw new Foo,
a : foo = return 10,
a : foo = break,
- a : foo = break "la",
+ a : foo = break @la,
a : foo = continue,
- a : foo = continue "la",
+ a : foo = continue @la,
a : foo = 10,
a : foo = 10,
a : foo = 10,
@@ -39,9 +39,9 @@ fun a(
return
10
break
- "la"
- break "la"
+ @la
+ break @la
continue
- "la"
- continue "la"
+ @la
+ continue @la
}
\ No newline at end of file
diff --git a/idea/testData/psi/SimpleExpressions.txt b/idea/testData/psi/SimpleExpressions.txt
index 6f2d562f236..09a374f8af5 100644
--- a/idea/testData/psi/SimpleExpressions.txt
+++ b/idea/testData/psi/SimpleExpressions.txt
@@ -550,7 +550,7 @@ JetFile: SimpleExpressions.jet
BREAK
PsiElement(break)('break')
PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
@@ -584,7 +584,7 @@ JetFile: SimpleExpressions.jet
CONTINUE
PsiElement(continue)('continue')
PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
@@ -670,23 +670,23 @@ JetFile: SimpleExpressions.jet
BREAK
PsiElement(break)('break')
PsiWhiteSpace('\n ')
- STRING_CONSTANT
- PsiElement(STRING_LITERAL)('"la"')
- PsiWhiteSpace('\n ')
- BREAK
- PsiElement(break)('break')
- PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@la')
+ PsiWhiteSpace('\n ')
+ BREAK
+ PsiElement(break)('break')
+ PsiWhiteSpace(' ')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiWhiteSpace('\n ')
CONTINUE
PsiElement(continue)('continue')
PsiWhiteSpace('\n ')
- STRING_CONSTANT
- PsiElement(STRING_LITERAL)('"la"')
- PsiWhiteSpace('\n ')
- CONTINUE
- PsiElement(continue)('continue')
- PsiWhiteSpace(' ')
- PsiElement(STRING_LITERAL)('"la"')
+ PREFIX_EXPRESSION
+ PsiElement(LABEL_IDENTIFIER)('@la')
+ PsiWhiteSpace('\n ')
+ CONTINUE
+ PsiElement(continue)('continue')
+ PsiWhiteSpace(' ')
+ PsiElement(LABEL_IDENTIFIER)('@la')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
\ No newline at end of file