Fix precedence of chained ternary operation.
Bug 22108739
Change-Id: I443da537f51e503edbeb269db7432757d58887a9
diff --git a/compilerCommon/BindingExpression.g4 b/compilerCommon/BindingExpression.g4
index 3142507..0835a14 100644
--- a/compilerCommon/BindingExpression.g4
+++ b/compilerCommon/BindingExpression.g4
@@ -66,7 +66,7 @@
| left=expression op='|' right=expression # BinaryOp
| left=expression op='&&' right=expression # AndOrOp
| left=expression op='||' right=expression # AndOrOp
- | left=expression op='?' iftrue=expression ':' iffalse=expression # TernaryOp
+ | <assoc=right>left=expression op='?' iftrue=expression ':' iffalse=expression # TernaryOp
| left=expression op='??' right=expression # QuestionQuestionOp
;
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpression.tokens b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpression.tokens
index d379280..d9d1035 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpression.tokens
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpression.tokens
@@ -1,101 +1,101 @@
-NullLiteral=51
-T__29=14
-T__28=15
-T__27=16
-T__26=17
-T__25=18
-T__24=19
-T__23=20
-T__22=21
-CharacterLiteral=48
+T__0=1
+T__1=2
+T__2=3
+T__3=4
+T__4=5
+T__5=6
+T__6=7
+T__7=8
+T__8=9
+T__9=10
+T__10=11
+T__11=12
+T__12=13
+T__13=14
+T__14=15
+T__15=16
+T__16=17
+T__17=18
+T__18=19
+T__19=20
+T__20=21
T__21=22
-T__20=23
-SingleQuoteString=49
-T__9=34
-T__8=35
-Identifier=52
-T__7=36
-T__6=37
-T__5=38
-T__4=39
-T__19=24
-T__16=27
-T__15=28
-T__18=25
-T__17=26
-T__12=31
-T__11=32
-T__14=29
-T__13=30
-T__10=33
+T__22=23
+T__23=24
+T__24=25
+T__25=26
+T__26=27
+T__27=28
+T__28=29
+T__29=30
+T__30=31
+T__31=32
+T__32=33
+T__33=34
+T__34=35
+T__35=36
+T__36=37
+T__37=38
+T__38=39
+T__39=40
+T__40=41
+T__41=42
+T__42=43
THIS=44
-PackageName=55
-DoubleQuoteString=50
-T__42=1
-T__40=3
-T__41=2
-ResourceType=56
-T__30=13
-T__31=12
-T__32=11
-WS=53
-T__33=10
-T__34=9
-T__35=8
-T__36=7
-T__37=6
-T__38=5
-T__39=4
-T__1=42
-T__0=43
-FloatingPointLiteral=46
-T__3=40
-T__2=41
IntegerLiteral=45
-ResourceReference=54
+FloatingPointLiteral=46
BooleanLiteral=47
-'!'=43
-'instanceof'=42
-'|'=41
-'class'=40
-'>='=39
-'~'=38
-'/'=37
-'=='=36
-'??'=35
-'null'=51
-'>'=34
-'||'=33
-'this'=44
-'&&'=32
-'='=31
-'+'=30
-'.'=29
-')'=28
-'byte'=27
-'^'=26
-'%'=25
-'>>'=23
-'char'=24
-'float'=22
-'boolean'=21
-'double'=20
-'<<'=18
-'void'=19
-'?'=17
-'<='=16
-'!='=15
-'<'=13
-'int'=14
-':'=12
-'('=11
+CharacterLiteral=48
+SingleQuoteString=49
+DoubleQuoteString=50
+NullLiteral=51
+Identifier=52
+WS=53
+ResourceReference=54
+PackageName=55
+ResourceType=56
+','=1
+'default'=2
+'='=3
+'('=4
+')'=5
+'.'=6
+'['=7
+']'=8
+'+'=9
'-'=10
-'['=9
-'*'=8
-','=7
-'default'=6
-'&'=5
-'short'=4
-']'=3
-'>>>'=2
-'long'=1
+'~'=11
+'!'=12
+'*'=13
+'/'=14
+'%'=15
+'<<'=16
+'>>>'=17
+'>>'=18
+'<='=19
+'>='=20
+'>'=21
+'<'=22
+'instanceof'=23
+'=='=24
+'!='=25
+'&'=26
+'^'=27
+'|'=28
+'&&'=29
+'||'=30
+'?'=31
+':'=32
+'??'=33
+'class'=34
+'void'=35
+'boolean'=36
+'char'=37
+'byte'=38
+'short'=39
+'int'=40
+'long'=41
+'float'=42
+'double'=43
+'this'=44
+'null'=51
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java
index 400c422..2b11492 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java
@@ -1,7 +1,8 @@
-// Generated from BindingExpression.g4 by ANTLR 4.4
+// Generated from BindingExpression.g4 by ANTLR 4.5
package android.databinding.parser;
import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
@@ -17,32 +18,6 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
@Override public void enterBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx) { }
/**
* {@inheritDoc}
@@ -56,13 +31,13 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { }
+ @Override public void enterResource(@NotNull BindingExpressionParser.ResourceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { }
+ @Override public void exitResource(@NotNull BindingExpressionParser.ResourceContext ctx) { }
/**
* {@inheritDoc}
@@ -82,13 +57,13 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { }
+ @Override public void enterUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { }
+ @Override public void exitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { }
/**
* {@inheritDoc}
@@ -121,45 +96,6 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
@Override public void enterPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx) { }
/**
* {@inheritDoc}
@@ -173,39 +109,13 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterType(@NotNull BindingExpressionParser.TypeContext ctx) { }
+ @Override public void enterGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitType(@NotNull BindingExpressionParser.TypeContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) { }
+ @Override public void exitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { }
/**
* {@inheritDoc}
@@ -225,13 +135,13 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { }
+ @Override public void enterComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { }
+ @Override public void exitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) { }
/**
* {@inheritDoc}
@@ -251,13 +161,26 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { }
+ @Override public void enterMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { }
+ @Override public void exitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) { }
/**
* {@inheritDoc}
@@ -303,65 +226,52 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
+ @Override public void enterBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
+ @Override public void exitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterResource(@NotNull BindingExpressionParser.ResourceContext ctx) { }
+ @Override public void enterDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitResource(@NotNull BindingExpressionParser.ResourceContext ctx) { }
+ @Override public void exitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { }
+ @Override public void enterConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { }
+ @Override public void exitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { }
+ @Override public void enterExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { }
+ @Override public void exitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { }
/**
* {@inheritDoc}
@@ -381,65 +291,26 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { }
+ @Override public void enterExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { }
+ @Override public void exitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { }
+ @Override public void enterLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
+ @Override public void exitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { }
/**
* {@inheritDoc}
@@ -459,13 +330,143 @@
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { }
+ @Override public void enterJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { }
+ @Override public void exitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterType(@NotNull BindingExpressionParser.TypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitType(@NotNull BindingExpressionParser.TypeContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void enterResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation does nothing.</p>
+ */
+ @Override public void exitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { }
/**
* {@inheritDoc}
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java
index a664007..08c54fa 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java
@@ -1,5 +1,6 @@
-// Generated from BindingExpression.g4 by ANTLR 4.4
+// Generated from BindingExpression.g4 by ANTLR 4.5
package android.databinding.parser;
+import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
@@ -18,22 +19,6 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
@Override public Result visitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx) { return visitChildren(ctx); }
/**
@@ -42,7 +27,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitResource(@NotNull BindingExpressionParser.ResourceContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -58,7 +43,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -82,30 +67,6 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
@Override public Result visitPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx) { return visitChildren(ctx); }
/**
@@ -114,23 +75,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitType(@NotNull BindingExpressionParser.TypeContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -146,7 +91,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -162,7 +107,15 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -194,7 +147,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -202,7 +155,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitResource(@NotNull BindingExpressionParser.ResourceContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -210,7 +163,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -218,15 +171,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -242,7 +187,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -250,31 +195,7 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { return visitChildren(ctx); }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation returns the result of calling
- * {@link #visitChildren} on {@code ctx}.</p>
- */
- @Override public Result visitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@@ -290,5 +211,85 @@
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { return visitChildren(ctx); }
+ @Override public Result visitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitType(@NotNull BindingExpressionParser.TypeContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { return visitChildren(ctx); }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.</p>
+ */
+ @Override public Result visitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { return visitChildren(ctx); }
}
\ No newline at end of file
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.java b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.java
index 47eb769..898ab4e 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.java
@@ -1,4 +1,4 @@
-// Generated from BindingExpression.g4 by ANTLR 4.4
+// Generated from BindingExpression.g4 by ANTLR 4.5
package android.databinding.parser;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
@@ -11,12 +11,12 @@
public class BindingExpressionLexer extends Lexer {
public static final int
- T__42=1, T__41=2, T__40=3, T__39=4, T__38=5, T__37=6, T__36=7, T__35=8,
- T__34=9, T__33=10, T__32=11, T__31=12, T__30=13, T__29=14, T__28=15, T__27=16,
- T__26=17, T__25=18, T__24=19, T__23=20, T__22=21, T__21=22, T__20=23,
- T__19=24, T__18=25, T__17=26, T__16=27, T__15=28, T__14=29, T__13=30,
- T__12=31, T__11=32, T__10=33, T__9=34, T__8=35, T__7=36, T__6=37, T__5=38,
- T__4=39, T__3=40, T__2=41, T__1=42, T__0=43, THIS=44, IntegerLiteral=45,
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
+ T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
+ T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
+ T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
+ T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
+ T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, THIS=44, IntegerLiteral=45,
FloatingPointLiteral=46, BooleanLiteral=47, CharacterLiteral=48, SingleQuoteString=49,
DoubleQuoteString=50, NullLiteral=51, Identifier=52, WS=53, ResourceReference=54,
PackageName=55, ResourceType=56;
@@ -24,23 +24,13 @@
"DEFAULT_MODE"
};
- public static final String[] tokenNames = {
- "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'",
- "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'",
- "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'",
- "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'",
- "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'",
- "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''",
- "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'",
- "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'"
- };
public static final String[] ruleNames = {
- "T__42", "T__41", "T__40", "T__39", "T__38", "T__37", "T__36", "T__35",
- "T__34", "T__33", "T__32", "T__31", "T__30", "T__29", "T__28", "T__27",
- "T__26", "T__25", "T__24", "T__23", "T__22", "T__21", "T__20", "T__19",
- "T__18", "T__17", "T__16", "T__15", "T__14", "T__13", "T__12", "T__11",
- "T__10", "T__9", "T__8", "T__7", "T__6", "T__5", "T__4", "T__3", "T__2",
- "T__1", "T__0", "THIS", "IntegerLiteral", "DecimalIntegerLiteral", "HexIntegerLiteral",
+ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
+ "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
+ "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
+ "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32",
+ "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40",
+ "T__41", "T__42", "THIS", "IntegerLiteral", "DecimalIntegerLiteral", "HexIntegerLiteral",
"OctalIntegerLiteral", "BinaryIntegerLiteral", "IntegerTypeSuffix", "DecimalNumeral",
"Digits", "Digit", "NonZeroDigit", "DigitOrUnderscore", "Underscores",
"HexNumeral", "HexDigits", "HexDigit", "HexDigitOrUnderscore", "OctalNumeral",
@@ -55,6 +45,56 @@
"JavaLetterOrDigit", "WS", "ResourceReference", "PackageName", "ResourceType"
};
+ private static final String[] _LITERAL_NAMES = {
+ null, "','", "'default'", "'='", "'('", "')'", "'.'", "'['", "']'", "'+'",
+ "'-'", "'~'", "'!'", "'*'", "'/'", "'%'", "'<<'", "'>>>'", "'>>'", "'<='",
+ "'>='", "'>'", "'<'", "'instanceof'", "'=='", "'!='", "'&'", "'^'", "'|'",
+ "'&&'", "'||'", "'?'", "':'", "'??'", "'class'", "'void'", "'boolean'",
+ "'char'", "'byte'", "'short'", "'int'", "'long'", "'float'", "'double'",
+ "'this'", null, null, null, null, null, null, "'null'"
+ };
+ private static final String[] _SYMBOLIC_NAMES = {
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, "THIS", "IntegerLiteral",
+ "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "SingleQuoteString",
+ "DoubleQuoteString", "NullLiteral", "Identifier", "WS", "ResourceReference",
+ "PackageName", "ResourceType"
+ };
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "<INVALID>";
+ }
+ }
+ }
+
+ @Override
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+ @NotNull
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
public BindingExpressionLexer(CharStream input) {
super(input);
@@ -65,9 +105,6 @@
public String getGrammarFileName() { return "BindingExpression.g4"; }
@Override
- public String[] getTokenNames() { return tokenNames; }
-
- @Override
public String[] getRuleNames() { return ruleNames; }
@Override
@@ -79,25 +116,31 @@
@Override
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
- case 93 : return JavaLetter_sempred(_localctx, predIndex);
+ case 93:
+ return JavaLetter_sempred(_localctx, predIndex);
- case 94 : return JavaLetterOrDigit_sempred(_localctx, predIndex);
- }
- return true;
- }
- private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) {
- switch (predIndex) {
- case 2: return Character.isJavaIdentifierPart(_input.LA(-1));
-
- case 3: return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
+ case 94:
+ return JavaLetterOrDigit_sempred(_localctx, predIndex);
}
return true;
}
private boolean JavaLetter_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
- case 0: return Character.isJavaIdentifierStart(_input.LA(-1));
+ case 0:
+ return Character.isJavaIdentifierStart(_input.LA(-1));
- case 1: return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
+ case 1:
+ return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
+ }
+ return true;
+ }
+ private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 2:
+ return Character.isJavaIdentifierPart(_input.LA(-1));
+
+ case 3:
+ return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
}
return true;
}
@@ -114,132 +157,132 @@
"\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
"\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
"\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
- "`\t`\4a\ta\4b\tb\4c\tc\4d\td\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\4\3"+
- "\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\b"+
- "\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\17\3\17\3\17"+
- "\3\17\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\23\3\23\3\23\3\24\3\24"+
- "\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26"+
- "\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31"+
- "\3\31\3\31\3\31\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\35"+
- "\3\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3!\3\"\3\"\3\"\3#\3#\3$\3$\3$\3"+
- "%\3%\3%\3&\3&\3\'\3\'\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3+\3+\3+\3+\3+"+
- "\3+\3+\3+\3+\3+\3+\3,\3,\3-\3-\3-\3-\3-\3.\3.\3.\3.\5.\u0168\n.\3/\3/"+
- "\5/\u016c\n/\3\60\3\60\5\60\u0170\n\60\3\61\3\61\5\61\u0174\n\61\3\62"+
- "\3\62\5\62\u0178\n\62\3\63\3\63\3\64\3\64\3\64\5\64\u017f\n\64\3\64\3"+
- "\64\3\64\5\64\u0184\n\64\5\64\u0186\n\64\3\65\3\65\7\65\u018a\n\65\f\65"+
- "\16\65\u018d\13\65\3\65\5\65\u0190\n\65\3\66\3\66\5\66\u0194\n\66\3\67"+
- "\3\67\38\38\58\u019a\n8\39\69\u019d\n9\r9\169\u019e\3:\3:\3:\3:\3;\3;"+
- "\7;\u01a7\n;\f;\16;\u01aa\13;\3;\5;\u01ad\n;\3<\3<\3=\3=\5=\u01b3\n=\3"+
- ">\3>\5>\u01b7\n>\3>\3>\3?\3?\7?\u01bd\n?\f?\16?\u01c0\13?\3?\5?\u01c3"+
- "\n?\3@\3@\3A\3A\5A\u01c9\nA\3B\3B\3B\3B\3C\3C\7C\u01d1\nC\fC\16C\u01d4"+
- "\13C\3C\5C\u01d7\nC\3D\3D\3E\3E\5E\u01dd\nE\3F\3F\5F\u01e1\nF\3G\3G\3"+
- "G\5G\u01e6\nG\3G\5G\u01e9\nG\3G\5G\u01ec\nG\3G\3G\3G\5G\u01f1\nG\3G\5"+
- "G\u01f4\nG\3G\3G\3G\5G\u01f9\nG\3G\3G\3G\5G\u01fe\nG\3H\3H\3H\3I\3I\3"+
- "J\5J\u0206\nJ\3J\3J\3K\3K\3L\3L\3M\3M\3M\5M\u0211\nM\3N\3N\5N\u0215\n"+
- "N\3N\3N\3N\5N\u021a\nN\3N\3N\5N\u021e\nN\3O\3O\3O\3P\3P\3Q\3Q\3Q\3Q\3"+
- "Q\3Q\3Q\3Q\3Q\5Q\u022e\nQ\3R\3R\3R\3R\3R\3R\3R\3R\5R\u0238\nR\3S\3S\3"+
- "T\3T\7T\u023e\nT\fT\16T\u0241\13T\3T\3T\3U\3U\5U\u0247\nU\3U\3U\3V\6V"+
- "\u024c\nV\rV\16V\u024d\3W\3W\5W\u0252\nW\3X\3X\5X\u0256\nX\3Y\3Y\3Y\3"+
- "Y\5Y\u025c\nY\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\5Z\u0269\nZ\3[\3[\3[\3"+
- "[\3[\3[\3[\3\\\3\\\3]\3]\3]\3]\3]\3^\3^\7^\u027b\n^\f^\16^\u027e\13^\3"+
- "_\3_\3_\3_\3_\3_\5_\u0286\n_\3`\3`\3`\3`\3`\3`\5`\u028e\n`\3a\6a\u0291"+
- "\na\ra\16a\u0292\3a\3a\3b\3b\3b\3b\5b\u029b\nb\3b\3b\3b\3b\3c\3c\3c\3"+
- "c\3c\3c\3c\3c\5c\u02a9\nc\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
+ "`\t`\4a\ta\4b\tb\4c\tc\4d\td\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3"+
+ "\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3"+
+ "\f\3\r\3\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\22"+
+ "\3\22\3\23\3\23\3\23\3\24\3\24\3\24\3\25\3\25\3\25\3\26\3\26\3\27\3\27"+
+ "\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\31"+
+ "\3\32\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\36\3\37\3\37"+
+ "\3\37\3 \3 \3!\3!\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3%\3%\3"+
+ "%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3("+
+ "\3)\3)\3)\3)\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3-"+
+ "\3-\3-\3-\3-\3.\3.\3.\3.\5.\u0168\n.\3/\3/\5/\u016c\n/\3\60\3\60\5\60"+
+ "\u0170\n\60\3\61\3\61\5\61\u0174\n\61\3\62\3\62\5\62\u0178\n\62\3\63\3"+
+ "\63\3\64\3\64\3\64\5\64\u017f\n\64\3\64\3\64\3\64\5\64\u0184\n\64\5\64"+
+ "\u0186\n\64\3\65\3\65\7\65\u018a\n\65\f\65\16\65\u018d\13\65\3\65\5\65"+
+ "\u0190\n\65\3\66\3\66\5\66\u0194\n\66\3\67\3\67\38\38\58\u019a\n8\39\6"+
+ "9\u019d\n9\r9\169\u019e\3:\3:\3:\3:\3;\3;\7;\u01a7\n;\f;\16;\u01aa\13"+
+ ";\3;\5;\u01ad\n;\3<\3<\3=\3=\5=\u01b3\n=\3>\3>\5>\u01b7\n>\3>\3>\3?\3"+
+ "?\7?\u01bd\n?\f?\16?\u01c0\13?\3?\5?\u01c3\n?\3@\3@\3A\3A\5A\u01c9\nA"+
+ "\3B\3B\3B\3B\3C\3C\7C\u01d1\nC\fC\16C\u01d4\13C\3C\5C\u01d7\nC\3D\3D\3"+
+ "E\3E\5E\u01dd\nE\3F\3F\5F\u01e1\nF\3G\3G\3G\5G\u01e6\nG\3G\5G\u01e9\n"+
+ "G\3G\5G\u01ec\nG\3G\3G\3G\5G\u01f1\nG\3G\5G\u01f4\nG\3G\3G\3G\5G\u01f9"+
+ "\nG\3G\3G\3G\5G\u01fe\nG\3H\3H\3H\3I\3I\3J\5J\u0206\nJ\3J\3J\3K\3K\3L"+
+ "\3L\3M\3M\3M\5M\u0211\nM\3N\3N\5N\u0215\nN\3N\3N\3N\5N\u021a\nN\3N\3N"+
+ "\5N\u021e\nN\3O\3O\3O\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\5Q\u022e\nQ\3R"+
+ "\3R\3R\3R\3R\3R\3R\3R\5R\u0238\nR\3S\3S\3T\3T\7T\u023e\nT\fT\16T\u0241"+
+ "\13T\3T\3T\3U\3U\5U\u0247\nU\3U\3U\3V\6V\u024c\nV\rV\16V\u024d\3W\3W\5"+
+ "W\u0252\nW\3X\3X\5X\u0256\nX\3Y\3Y\3Y\3Y\5Y\u025c\nY\3Z\3Z\3Z\3Z\3Z\3"+
+ "Z\3Z\3Z\3Z\3Z\3Z\5Z\u0269\nZ\3[\3[\3[\3[\3[\3[\3[\3\\\3\\\3]\3]\3]\3]"+
+ "\3]\3^\3^\7^\u027b\n^\f^\16^\u027e\13^\3_\3_\3_\3_\3_\3_\5_\u0286\n_\3"+
+ "`\3`\3`\3`\3`\3`\5`\u028e\n`\3a\6a\u0291\na\ra\16a\u0292\3a\3a\3b\3b\3"+
+ "b\3b\5b\u029b\nb\3b\3b\3b\3b\3c\3c\3c\3c\3c\3c\3c\3c\5c\u02a9\nc\3d\3"+
"d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
"d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
"d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
"d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
"d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
"d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
- "d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\5d\u0357\n"+
- "d\2\2\2e\3\2\3\5\2\4\7\2\5\t\2\6\13\2\7\r\2\b\17\2\t\21\2\n\23\2\13\25"+
- "\2\f\27\2\r\31\2\16\33\2\17\35\2\20\37\2\21!\2\22#\2\23%\2\24\'\2\25)"+
- "\2\26+\2\27-\2\30/\2\31\61\2\32\63\2\33\65\2\34\67\2\359\2\36;\2\37=\2"+
- " ?\2!A\2\"C\2#E\2$G\2%I\2&K\2\'M\2(O\2)Q\2*S\2+U\2,W\2-Y\2.[\2/]\2\2_"+
- "\2\2a\2\2c\2\2e\2\2g\2\2i\2\2k\2\2m\2\2o\2\2q\2\2s\2\2u\2\2w\2\2y\2\2"+
- "{\2\2}\2\2\177\2\2\u0081\2\2\u0083\2\2\u0085\2\2\u0087\2\2\u0089\2\2\u008b"+
- "\2\60\u008d\2\2\u008f\2\2\u0091\2\2\u0093\2\2\u0095\2\2\u0097\2\2\u0099"+
- "\2\2\u009b\2\2\u009d\2\2\u009f\2\2\u00a1\2\61\u00a3\2\62\u00a5\2\2\u00a7"+
- "\2\63\u00a9\2\64\u00ab\2\2\u00ad\2\2\u00af\2\2\u00b1\2\2\u00b3\2\2\u00b5"+
- "\2\2\u00b7\2\2\u00b9\2\65\u00bb\2\66\u00bd\2\2\u00bf\2\2\u00c1\2\67\u00c3"+
- "\28\u00c5\29\u00c7\2:\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz\5\2\62;CHch\3\2\62"+
- "9\4\2DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2RRrr\4\2))^^\4\2$$"+
- "^^\4\2^^bb\13\2$$))^^bbddhhppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0101\ud802"+
- "\udc01\3\2\ud802\udc01\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f\16\17"+
- "\"\"\u037b\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2"+
- "\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27"+
- "\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2"+
- "\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2"+
- "\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2"+
- "\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2"+
- "\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S"+
- "\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2\u008b\3\2\2\2\2"+
- "\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00b9"+
- "\3\2\2\2\2\u00bb\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2"+
- "\2\2\u00c7\3\2\2\2\3\u00c9\3\2\2\2\5\u00ce\3\2\2\2\7\u00d2\3\2\2\2\t\u00d4"+
- "\3\2\2\2\13\u00da\3\2\2\2\r\u00dc\3\2\2\2\17\u00e4\3\2\2\2\21\u00e6\3"+
- "\2\2\2\23\u00e8\3\2\2\2\25\u00ea\3\2\2\2\27\u00ec\3\2\2\2\31\u00ee\3\2"+
- "\2\2\33\u00f0\3\2\2\2\35\u00f2\3\2\2\2\37\u00f6\3\2\2\2!\u00f9\3\2\2\2"+
- "#\u00fc\3\2\2\2%\u00fe\3\2\2\2\'\u0101\3\2\2\2)\u0106\3\2\2\2+\u010d\3"+
- "\2\2\2-\u0115\3\2\2\2/\u011b\3\2\2\2\61\u011e\3\2\2\2\63\u0123\3\2\2\2"+
- "\65\u0125\3\2\2\2\67\u0127\3\2\2\29\u012c\3\2\2\2;\u012e\3\2\2\2=\u0130"+
- "\3\2\2\2?\u0132\3\2\2\2A\u0134\3\2\2\2C\u0137\3\2\2\2E\u013a\3\2\2\2G"+
- "\u013c\3\2\2\2I\u013f\3\2\2\2K\u0142\3\2\2\2M\u0144\3\2\2\2O\u0146\3\2"+
- "\2\2Q\u0149\3\2\2\2S\u014f\3\2\2\2U\u0151\3\2\2\2W\u015c\3\2\2\2Y\u015e"+
- "\3\2\2\2[\u0167\3\2\2\2]\u0169\3\2\2\2_\u016d\3\2\2\2a\u0171\3\2\2\2c"+
- "\u0175\3\2\2\2e\u0179\3\2\2\2g\u0185\3\2\2\2i\u0187\3\2\2\2k\u0193\3\2"+
- "\2\2m\u0195\3\2\2\2o\u0199\3\2\2\2q\u019c\3\2\2\2s\u01a0\3\2\2\2u\u01a4"+
- "\3\2\2\2w\u01ae\3\2\2\2y\u01b2\3\2\2\2{\u01b4\3\2\2\2}\u01ba\3\2\2\2\177"+
- "\u01c4\3\2\2\2\u0081\u01c8\3\2\2\2\u0083\u01ca\3\2\2\2\u0085\u01ce\3\2"+
- "\2\2\u0087\u01d8\3\2\2\2\u0089\u01dc\3\2\2\2\u008b\u01e0\3\2\2\2\u008d"+
- "\u01fd\3\2\2\2\u008f\u01ff\3\2\2\2\u0091\u0202\3\2\2\2\u0093\u0205\3\2"+
- "\2\2\u0095\u0209\3\2\2\2\u0097\u020b\3\2\2\2\u0099\u020d\3\2\2\2\u009b"+
- "\u021d\3\2\2\2\u009d\u021f\3\2\2\2\u009f\u0222\3\2\2\2\u00a1\u022d\3\2"+
- "\2\2\u00a3\u0237\3\2\2\2\u00a5\u0239\3\2\2\2\u00a7\u023b\3\2\2\2\u00a9"+
- "\u0244\3\2\2\2\u00ab\u024b\3\2\2\2\u00ad\u0251\3\2\2\2\u00af\u0255\3\2"+
- "\2\2\u00b1\u025b\3\2\2\2\u00b3\u0268\3\2\2\2\u00b5\u026a\3\2\2\2\u00b7"+
- "\u0271\3\2\2\2\u00b9\u0273\3\2\2\2\u00bb\u0278\3\2\2\2\u00bd\u0285\3\2"+
- "\2\2\u00bf\u028d\3\2\2\2\u00c1\u0290\3\2\2\2\u00c3\u0296\3\2\2\2\u00c5"+
- "\u02a8\3\2\2\2\u00c7\u0356\3\2\2\2\u00c9\u00ca\7n\2\2\u00ca\u00cb\7q\2"+
- "\2\u00cb\u00cc\7p\2\2\u00cc\u00cd\7i\2\2\u00cd\4\3\2\2\2\u00ce\u00cf\7"+
- "@\2\2\u00cf\u00d0\7@\2\2\u00d0\u00d1\7@\2\2\u00d1\6\3\2\2\2\u00d2\u00d3"+
- "\7_\2\2\u00d3\b\3\2\2\2\u00d4\u00d5\7u\2\2\u00d5\u00d6\7j\2\2\u00d6\u00d7"+
- "\7q\2\2\u00d7\u00d8\7t\2\2\u00d8\u00d9\7v\2\2\u00d9\n\3\2\2\2\u00da\u00db"+
- "\7(\2\2\u00db\f\3\2\2\2\u00dc\u00dd\7f\2\2\u00dd\u00de\7g\2\2\u00de\u00df"+
- "\7h\2\2\u00df\u00e0\7c\2\2\u00e0\u00e1\7w\2\2\u00e1\u00e2\7n\2\2\u00e2"+
- "\u00e3\7v\2\2\u00e3\16\3\2\2\2\u00e4\u00e5\7.\2\2\u00e5\20\3\2\2\2\u00e6"+
- "\u00e7\7,\2\2\u00e7\22\3\2\2\2\u00e8\u00e9\7]\2\2\u00e9\24\3\2\2\2\u00ea"+
- "\u00eb\7/\2\2\u00eb\26\3\2\2\2\u00ec\u00ed\7*\2\2\u00ed\30\3\2\2\2\u00ee"+
- "\u00ef\7<\2\2\u00ef\32\3\2\2\2\u00f0\u00f1\7>\2\2\u00f1\34\3\2\2\2\u00f2"+
- "\u00f3\7k\2\2\u00f3\u00f4\7p\2\2\u00f4\u00f5\7v\2\2\u00f5\36\3\2\2\2\u00f6"+
- "\u00f7\7#\2\2\u00f7\u00f8\7?\2\2\u00f8 \3\2\2\2\u00f9\u00fa\7>\2\2\u00fa"+
- "\u00fb\7?\2\2\u00fb\"\3\2\2\2\u00fc\u00fd\7A\2\2\u00fd$\3\2\2\2\u00fe"+
- "\u00ff\7>\2\2\u00ff\u0100\7>\2\2\u0100&\3\2\2\2\u0101\u0102\7x\2\2\u0102"+
- "\u0103\7q\2\2\u0103\u0104\7k\2\2\u0104\u0105\7f\2\2\u0105(\3\2\2\2\u0106"+
- "\u0107\7f\2\2\u0107\u0108\7q\2\2\u0108\u0109\7w\2\2\u0109\u010a\7d\2\2"+
- "\u010a\u010b\7n\2\2\u010b\u010c\7g\2\2\u010c*\3\2\2\2\u010d\u010e\7d\2"+
- "\2\u010e\u010f\7q\2\2\u010f\u0110\7q\2\2\u0110\u0111\7n\2\2\u0111\u0112"+
- "\7g\2\2\u0112\u0113\7c\2\2\u0113\u0114\7p\2\2\u0114,\3\2\2\2\u0115\u0116"+
- "\7h\2\2\u0116\u0117\7n\2\2\u0117\u0118\7q\2\2\u0118\u0119\7c\2\2\u0119"+
- "\u011a\7v\2\2\u011a.\3\2\2\2\u011b\u011c\7@\2\2\u011c\u011d\7@\2\2\u011d"+
- "\60\3\2\2\2\u011e\u011f\7e\2\2\u011f\u0120\7j\2\2\u0120\u0121\7c\2\2\u0121"+
- "\u0122\7t\2\2\u0122\62\3\2\2\2\u0123\u0124\7\'\2\2\u0124\64\3\2\2\2\u0125"+
- "\u0126\7`\2\2\u0126\66\3\2\2\2\u0127\u0128\7d\2\2\u0128\u0129\7{\2\2\u0129"+
- "\u012a\7v\2\2\u012a\u012b\7g\2\2\u012b8\3\2\2\2\u012c\u012d\7+\2\2\u012d"+
- ":\3\2\2\2\u012e\u012f\7\60\2\2\u012f<\3\2\2\2\u0130\u0131\7-\2\2\u0131"+
- ">\3\2\2\2\u0132\u0133\7?\2\2\u0133@\3\2\2\2\u0134\u0135\7(\2\2\u0135\u0136"+
- "\7(\2\2\u0136B\3\2\2\2\u0137\u0138\7~\2\2\u0138\u0139\7~\2\2\u0139D\3"+
- "\2\2\2\u013a\u013b\7@\2\2\u013bF\3\2\2\2\u013c\u013d\7A\2\2\u013d\u013e"+
- "\7A\2\2\u013eH\3\2\2\2\u013f\u0140\7?\2\2\u0140\u0141\7?\2\2\u0141J\3"+
- "\2\2\2\u0142\u0143\7\61\2\2\u0143L\3\2\2\2\u0144\u0145\7\u0080\2\2\u0145"+
- "N\3\2\2\2\u0146\u0147\7@\2\2\u0147\u0148\7?\2\2\u0148P\3\2\2\2\u0149\u014a"+
- "\7e\2\2\u014a\u014b\7n\2\2\u014b\u014c\7c\2\2\u014c\u014d\7u\2\2\u014d"+
- "\u014e\7u\2\2\u014eR\3\2\2\2\u014f\u0150\7~\2\2\u0150T\3\2\2\2\u0151\u0152"+
- "\7k\2\2\u0152\u0153\7p\2\2\u0153\u0154\7u\2\2\u0154\u0155\7v\2\2\u0155"+
- "\u0156\7c\2\2\u0156\u0157\7p\2\2\u0157\u0158\7e\2\2\u0158\u0159\7g\2\2"+
- "\u0159\u015a\7q\2\2\u015a\u015b\7h\2\2\u015bV\3\2\2\2\u015c\u015d\7#\2"+
- "\2\u015dX\3\2\2\2\u015e\u015f\7v\2\2\u015f\u0160\7j\2\2\u0160\u0161\7"+
- "k\2\2\u0161\u0162\7u\2\2\u0162Z\3\2\2\2\u0163\u0168\5]/\2\u0164\u0168"+
+ "d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3"+
+ "d\3d\3d\3d\3d\3d\3d\3d\3d\3d\5d\u0357\nd\2\2\2e\3\2\3\5\2\4\7\2\5\t\2"+
+ "\6\13\2\7\r\2\b\17\2\t\21\2\n\23\2\13\25\2\f\27\2\r\31\2\16\33\2\17\35"+
+ "\2\20\37\2\21!\2\22#\2\23%\2\24\'\2\25)\2\26+\2\27-\2\30/\2\31\61\2\32"+
+ "\63\2\33\65\2\34\67\2\359\2\36;\2\37=\2 ?\2!A\2\"C\2#E\2$G\2%I\2&K\2\'"+
+ "M\2(O\2)Q\2*S\2+U\2,W\2-Y\2.[\2/]\2\2_\2\2a\2\2c\2\2e\2\2g\2\2i\2\2k\2"+
+ "\2m\2\2o\2\2q\2\2s\2\2u\2\2w\2\2y\2\2{\2\2}\2\2\177\2\2\u0081\2\2\u0083"+
+ "\2\2\u0085\2\2\u0087\2\2\u0089\2\2\u008b\2\60\u008d\2\2\u008f\2\2\u0091"+
+ "\2\2\u0093\2\2\u0095\2\2\u0097\2\2\u0099\2\2\u009b\2\2\u009d\2\2\u009f"+
+ "\2\2\u00a1\2\61\u00a3\2\62\u00a5\2\2\u00a7\2\63\u00a9\2\64\u00ab\2\2\u00ad"+
+ "\2\2\u00af\2\2\u00b1\2\2\u00b3\2\2\u00b5\2\2\u00b7\2\2\u00b9\2\65\u00bb"+
+ "\2\66\u00bd\2\2\u00bf\2\2\u00c1\2\67\u00c3\28\u00c5\29\u00c7\2:\3\2\30"+
+ "\4\2NNnn\3\2\63;\4\2ZZzz\5\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GGg"+
+ "g\4\2--//\6\2FFHHffhh\4\2RRrr\4\2))^^\4\2$$^^\4\2^^bb\13\2$$))^^bbddh"+
+ "hppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0101\ud802\udc01\3\2\ud802\udc01"+
+ "\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f\16\17\"\"\u037b\2\3\3\2\2\2"+
+ "\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2"+
+ "\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2"+
+ "\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2"+
+ "\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2"+
+ "\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2"+
+ "\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2"+
+ "\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W"+
+ "\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2\u008b\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3"+
+ "\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2"+
+ "\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\3\u00c9"+
+ "\3\2\2\2\5\u00cb\3\2\2\2\7\u00d3\3\2\2\2\t\u00d5\3\2\2\2\13\u00d7\3\2"+
+ "\2\2\r\u00d9\3\2\2\2\17\u00db\3\2\2\2\21\u00dd\3\2\2\2\23\u00df\3\2\2"+
+ "\2\25\u00e1\3\2\2\2\27\u00e3\3\2\2\2\31\u00e5\3\2\2\2\33\u00e7\3\2\2\2"+
+ "\35\u00e9\3\2\2\2\37\u00eb\3\2\2\2!\u00ed\3\2\2\2#\u00f0\3\2\2\2%\u00f4"+
+ "\3\2\2\2\'\u00f7\3\2\2\2)\u00fa\3\2\2\2+\u00fd\3\2\2\2-\u00ff\3\2\2\2"+
+ "/\u0101\3\2\2\2\61\u010c\3\2\2\2\63\u010f\3\2\2\2\65\u0112\3\2\2\2\67"+
+ "\u0114\3\2\2\29\u0116\3\2\2\2;\u0118\3\2\2\2=\u011b\3\2\2\2?\u011e\3\2"+
+ "\2\2A\u0120\3\2\2\2C\u0122\3\2\2\2E\u0125\3\2\2\2G\u012b\3\2\2\2I\u0130"+
+ "\3\2\2\2K\u0138\3\2\2\2M\u013d\3\2\2\2O\u0142\3\2\2\2Q\u0148\3\2\2\2S"+
+ "\u014c\3\2\2\2U\u0151\3\2\2\2W\u0157\3\2\2\2Y\u015e\3\2\2\2[\u0167\3\2"+
+ "\2\2]\u0169\3\2\2\2_\u016d\3\2\2\2a\u0171\3\2\2\2c\u0175\3\2\2\2e\u0179"+
+ "\3\2\2\2g\u0185\3\2\2\2i\u0187\3\2\2\2k\u0193\3\2\2\2m\u0195\3\2\2\2o"+
+ "\u0199\3\2\2\2q\u019c\3\2\2\2s\u01a0\3\2\2\2u\u01a4\3\2\2\2w\u01ae\3\2"+
+ "\2\2y\u01b2\3\2\2\2{\u01b4\3\2\2\2}\u01ba\3\2\2\2\177\u01c4\3\2\2\2\u0081"+
+ "\u01c8\3\2\2\2\u0083\u01ca\3\2\2\2\u0085\u01ce\3\2\2\2\u0087\u01d8\3\2"+
+ "\2\2\u0089\u01dc\3\2\2\2\u008b\u01e0\3\2\2\2\u008d\u01fd\3\2\2\2\u008f"+
+ "\u01ff\3\2\2\2\u0091\u0202\3\2\2\2\u0093\u0205\3\2\2\2\u0095\u0209\3\2"+
+ "\2\2\u0097\u020b\3\2\2\2\u0099\u020d\3\2\2\2\u009b\u021d\3\2\2\2\u009d"+
+ "\u021f\3\2\2\2\u009f\u0222\3\2\2\2\u00a1\u022d\3\2\2\2\u00a3\u0237\3\2"+
+ "\2\2\u00a5\u0239\3\2\2\2\u00a7\u023b\3\2\2\2\u00a9\u0244\3\2\2\2\u00ab"+
+ "\u024b\3\2\2\2\u00ad\u0251\3\2\2\2\u00af\u0255\3\2\2\2\u00b1\u025b\3\2"+
+ "\2\2\u00b3\u0268\3\2\2\2\u00b5\u026a\3\2\2\2\u00b7\u0271\3\2\2\2\u00b9"+
+ "\u0273\3\2\2\2\u00bb\u0278\3\2\2\2\u00bd\u0285\3\2\2\2\u00bf\u028d\3\2"+
+ "\2\2\u00c1\u0290\3\2\2\2\u00c3\u0296\3\2\2\2\u00c5\u02a8\3\2\2\2\u00c7"+
+ "\u0356\3\2\2\2\u00c9\u00ca\7.\2\2\u00ca\4\3\2\2\2\u00cb\u00cc\7f\2\2\u00cc"+
+ "\u00cd\7g\2\2\u00cd\u00ce\7h\2\2\u00ce\u00cf\7c\2\2\u00cf\u00d0\7w\2\2"+
+ "\u00d0\u00d1\7n\2\2\u00d1\u00d2\7v\2\2\u00d2\6\3\2\2\2\u00d3\u00d4\7?"+
+ "\2\2\u00d4\b\3\2\2\2\u00d5\u00d6\7*\2\2\u00d6\n\3\2\2\2\u00d7\u00d8\7"+
+ "+\2\2\u00d8\f\3\2\2\2\u00d9\u00da\7\60\2\2\u00da\16\3\2\2\2\u00db\u00dc"+
+ "\7]\2\2\u00dc\20\3\2\2\2\u00dd\u00de\7_\2\2\u00de\22\3\2\2\2\u00df\u00e0"+
+ "\7-\2\2\u00e0\24\3\2\2\2\u00e1\u00e2\7/\2\2\u00e2\26\3\2\2\2\u00e3\u00e4"+
+ "\7\u0080\2\2\u00e4\30\3\2\2\2\u00e5\u00e6\7#\2\2\u00e6\32\3\2\2\2\u00e7"+
+ "\u00e8\7,\2\2\u00e8\34\3\2\2\2\u00e9\u00ea\7\61\2\2\u00ea\36\3\2\2\2\u00eb"+
+ "\u00ec\7\'\2\2\u00ec \3\2\2\2\u00ed\u00ee\7>\2\2\u00ee\u00ef\7>\2\2\u00ef"+
+ "\"\3\2\2\2\u00f0\u00f1\7@\2\2\u00f1\u00f2\7@\2\2\u00f2\u00f3\7@\2\2\u00f3"+
+ "$\3\2\2\2\u00f4\u00f5\7@\2\2\u00f5\u00f6\7@\2\2\u00f6&\3\2\2\2\u00f7\u00f8"+
+ "\7>\2\2\u00f8\u00f9\7?\2\2\u00f9(\3\2\2\2\u00fa\u00fb\7@\2\2\u00fb\u00fc"+
+ "\7?\2\2\u00fc*\3\2\2\2\u00fd\u00fe\7@\2\2\u00fe,\3\2\2\2\u00ff\u0100\7"+
+ ">\2\2\u0100.\3\2\2\2\u0101\u0102\7k\2\2\u0102\u0103\7p\2\2\u0103\u0104"+
+ "\7u\2\2\u0104\u0105\7v\2\2\u0105\u0106\7c\2\2\u0106\u0107\7p\2\2\u0107"+
+ "\u0108\7e\2\2\u0108\u0109\7g\2\2\u0109\u010a\7q\2\2\u010a\u010b\7h\2\2"+
+ "\u010b\60\3\2\2\2\u010c\u010d\7?\2\2\u010d\u010e\7?\2\2\u010e\62\3\2\2"+
+ "\2\u010f\u0110\7#\2\2\u0110\u0111\7?\2\2\u0111\64\3\2\2\2\u0112\u0113"+
+ "\7(\2\2\u0113\66\3\2\2\2\u0114\u0115\7`\2\2\u01158\3\2\2\2\u0116\u0117"+
+ "\7~\2\2\u0117:\3\2\2\2\u0118\u0119\7(\2\2\u0119\u011a\7(\2\2\u011a<\3"+
+ "\2\2\2\u011b\u011c\7~\2\2\u011c\u011d\7~\2\2\u011d>\3\2\2\2\u011e\u011f"+
+ "\7A\2\2\u011f@\3\2\2\2\u0120\u0121\7<\2\2\u0121B\3\2\2\2\u0122\u0123\7"+
+ "A\2\2\u0123\u0124\7A\2\2\u0124D\3\2\2\2\u0125\u0126\7e\2\2\u0126\u0127"+
+ "\7n\2\2\u0127\u0128\7c\2\2\u0128\u0129\7u\2\2\u0129\u012a\7u\2\2\u012a"+
+ "F\3\2\2\2\u012b\u012c\7x\2\2\u012c\u012d\7q\2\2\u012d\u012e\7k\2\2\u012e"+
+ "\u012f\7f\2\2\u012fH\3\2\2\2\u0130\u0131\7d\2\2\u0131\u0132\7q\2\2\u0132"+
+ "\u0133\7q\2\2\u0133\u0134\7n\2\2\u0134\u0135\7g\2\2\u0135\u0136\7c\2\2"+
+ "\u0136\u0137\7p\2\2\u0137J\3\2\2\2\u0138\u0139\7e\2\2\u0139\u013a\7j\2"+
+ "\2\u013a\u013b\7c\2\2\u013b\u013c\7t\2\2\u013cL\3\2\2\2\u013d\u013e\7"+
+ "d\2\2\u013e\u013f\7{\2\2\u013f\u0140\7v\2\2\u0140\u0141\7g\2\2\u0141N"+
+ "\3\2\2\2\u0142\u0143\7u\2\2\u0143\u0144\7j\2\2\u0144\u0145\7q\2\2\u0145"+
+ "\u0146\7t\2\2\u0146\u0147\7v\2\2\u0147P\3\2\2\2\u0148\u0149\7k\2\2\u0149"+
+ "\u014a\7p\2\2\u014a\u014b\7v\2\2\u014bR\3\2\2\2\u014c\u014d\7n\2\2\u014d"+
+ "\u014e\7q\2\2\u014e\u014f\7p\2\2\u014f\u0150\7i\2\2\u0150T\3\2\2\2\u0151"+
+ "\u0152\7h\2\2\u0152\u0153\7n\2\2\u0153\u0154\7q\2\2\u0154\u0155\7c\2\2"+
+ "\u0155\u0156\7v\2\2\u0156V\3\2\2\2\u0157\u0158\7f\2\2\u0158\u0159\7q\2"+
+ "\2\u0159\u015a\7w\2\2\u015a\u015b\7d\2\2\u015b\u015c\7n\2\2\u015c\u015d"+
+ "\7g\2\2\u015dX\3\2\2\2\u015e\u015f\7v\2\2\u015f\u0160\7j\2\2\u0160\u0161"+
+ "\7k\2\2\u0161\u0162\7u\2\2\u0162Z\3\2\2\2\u0163\u0168\5]/\2\u0164\u0168"+
"\5_\60\2\u0165\u0168\5a\61\2\u0166\u0168\5c\62\2\u0167\u0163\3\2\2\2\u0167"+
"\u0164\3\2\2\2\u0167\u0165\3\2\2\2\u0167\u0166\3\2\2\2\u0168\\\3\2\2\2"+
"\u0169\u016b\5g\64\2\u016a\u016c\5e\63\2\u016b\u016a\3\2\2\2\u016b\u016c"+
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.tokens b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.tokens
index d379280..d9d1035 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.tokens
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.tokens
@@ -1,101 +1,101 @@
-NullLiteral=51
-T__29=14
-T__28=15
-T__27=16
-T__26=17
-T__25=18
-T__24=19
-T__23=20
-T__22=21
-CharacterLiteral=48
+T__0=1
+T__1=2
+T__2=3
+T__3=4
+T__4=5
+T__5=6
+T__6=7
+T__7=8
+T__8=9
+T__9=10
+T__10=11
+T__11=12
+T__12=13
+T__13=14
+T__14=15
+T__15=16
+T__16=17
+T__17=18
+T__18=19
+T__19=20
+T__20=21
T__21=22
-T__20=23
-SingleQuoteString=49
-T__9=34
-T__8=35
-Identifier=52
-T__7=36
-T__6=37
-T__5=38
-T__4=39
-T__19=24
-T__16=27
-T__15=28
-T__18=25
-T__17=26
-T__12=31
-T__11=32
-T__14=29
-T__13=30
-T__10=33
+T__22=23
+T__23=24
+T__24=25
+T__25=26
+T__26=27
+T__27=28
+T__28=29
+T__29=30
+T__30=31
+T__31=32
+T__32=33
+T__33=34
+T__34=35
+T__35=36
+T__36=37
+T__37=38
+T__38=39
+T__39=40
+T__40=41
+T__41=42
+T__42=43
THIS=44
-PackageName=55
-DoubleQuoteString=50
-T__42=1
-T__40=3
-T__41=2
-ResourceType=56
-T__30=13
-T__31=12
-T__32=11
-WS=53
-T__33=10
-T__34=9
-T__35=8
-T__36=7
-T__37=6
-T__38=5
-T__39=4
-T__1=42
-T__0=43
-FloatingPointLiteral=46
-T__3=40
-T__2=41
IntegerLiteral=45
-ResourceReference=54
+FloatingPointLiteral=46
BooleanLiteral=47
-'!'=43
-'instanceof'=42
-'|'=41
-'class'=40
-'>='=39
-'~'=38
-'/'=37
-'=='=36
-'??'=35
-'null'=51
-'>'=34
-'||'=33
-'this'=44
-'&&'=32
-'='=31
-'+'=30
-'.'=29
-')'=28
-'byte'=27
-'^'=26
-'%'=25
-'>>'=23
-'char'=24
-'float'=22
-'boolean'=21
-'double'=20
-'<<'=18
-'void'=19
-'?'=17
-'<='=16
-'!='=15
-'<'=13
-'int'=14
-':'=12
-'('=11
+CharacterLiteral=48
+SingleQuoteString=49
+DoubleQuoteString=50
+NullLiteral=51
+Identifier=52
+WS=53
+ResourceReference=54
+PackageName=55
+ResourceType=56
+','=1
+'default'=2
+'='=3
+'('=4
+')'=5
+'.'=6
+'['=7
+']'=8
+'+'=9
'-'=10
-'['=9
-'*'=8
-','=7
-'default'=6
-'&'=5
-'short'=4
-']'=3
-'>>>'=2
-'long'=1
+'~'=11
+'!'=12
+'*'=13
+'/'=14
+'%'=15
+'<<'=16
+'>>>'=17
+'>>'=18
+'<='=19
+'>='=20
+'>'=21
+'<'=22
+'instanceof'=23
+'=='=24
+'!='=25
+'&'=26
+'^'=27
+'|'=28
+'&&'=29
+'||'=30
+'?'=31
+':'=32
+'??'=33
+'class'=34
+'void'=35
+'boolean'=36
+'char'=37
+'byte'=38
+'short'=39
+'int'=40
+'long'=41
+'float'=42
+'double'=43
+'this'=44
+'null'=51
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java
index 80e4a78..acd4c22 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java
@@ -1,5 +1,6 @@
-// Generated from BindingExpression.g4 by ANTLR 4.4
+// Generated from BindingExpression.g4 by ANTLR 4.5
package android.databinding.parser;
+import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;
@@ -9,28 +10,6 @@
*/
public interface BindingExpressionListener extends ParseTreeListener {
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- */
- void enterExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- */
- void exitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
-
- /**
- * Enter a parse tree produced by {@link BindingExpressionParser#resources}.
- * @param ctx the parse tree
- */
- void enterResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#resources}.
- * @param ctx the parse tree
- */
- void exitResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
-
- /**
* Enter a parse tree produced by the {@code BracketOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
@@ -44,17 +23,17 @@
void exitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx);
/**
- * Enter a parse tree produced by the {@code UnaryOp}
+ * Enter a parse tree produced by the {@code Resource}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
+ void enterResource(@NotNull BindingExpressionParser.ResourceContext ctx);
/**
- * Exit a parse tree produced by the {@code UnaryOp}
+ * Exit a parse tree produced by the {@code Resource}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
+ void exitResource(@NotNull BindingExpressionParser.ResourceContext ctx);
/**
* Enter a parse tree produced by the {@code CastOp}
@@ -70,15 +49,17 @@
void exitCastOp(@NotNull BindingExpressionParser.CastOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
+ * Enter a parse tree produced by the {@code UnaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
+ void enterUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
+ * Exit a parse tree produced by the {@code UnaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
+ void exitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
/**
* Enter a parse tree produced by the {@code AndOrOp}
@@ -107,39 +88,6 @@
void exitMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#expressionList}.
- * @param ctx the parse tree
- */
- void enterExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#expressionList}.
- * @param ctx the parse tree
- */
- void exitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
-
- /**
- * Enter a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
- * @param ctx the parse tree
- */
- void enterClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
- * @param ctx the parse tree
- */
- void exitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
-
- /**
- * Enter a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
- * @param ctx the parse tree
- */
- void enterStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
- * @param ctx the parse tree
- */
- void exitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
-
- /**
* Enter a parse tree produced by the {@code Primary}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
@@ -153,39 +101,17 @@
void exitPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#type}.
- * @param ctx the parse tree
- */
- void enterType(@NotNull BindingExpressionParser.TypeContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#type}.
- * @param ctx the parse tree
- */
- void exitType(@NotNull BindingExpressionParser.TypeContext ctx);
-
- /**
- * Enter a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- */
- void enterBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- */
- void exitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
-
- /**
- * Enter a parse tree produced by the {@code ComparisonOp}
+ * Enter a parse tree produced by the {@code Grouping}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
+ void enterGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
/**
- * Exit a parse tree produced by the {@code ComparisonOp}
+ * Exit a parse tree produced by the {@code Grouping}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
+ void exitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
/**
* Enter a parse tree produced by the {@code TernaryOp}
@@ -201,15 +127,17 @@
void exitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#constantValue}.
+ * Enter a parse tree produced by the {@code ComparisonOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
+ void enterComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#constantValue}.
+ * Exit a parse tree produced by the {@code ComparisonOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
+ void exitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
/**
* Enter a parse tree produced by the {@code DotOp}
@@ -225,15 +153,30 @@
void exitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#defaults}.
+ * Enter a parse tree produced by the {@code MathOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
+ void enterMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#defaults}.
+ * Exit a parse tree produced by the {@code MathOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
+ void exitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
+
+ /**
+ * Enter a parse tree produced by the {@code QuestionQuestionOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
+ * @param ctx the parse tree
+ */
+ void enterQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code QuestionQuestionOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
+ * @param ctx the parse tree
+ */
+ void exitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
/**
* Enter a parse tree produced by the {@code BitShiftOp}
@@ -275,65 +218,48 @@
void exitBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
*/
- void enterExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+ void enterBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
*/
- void exitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+ void exitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
/**
- * Enter a parse tree produced by the {@code Resource}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#defaults}.
* @param ctx the parse tree
*/
- void enterResource(@NotNull BindingExpressionParser.ResourceContext ctx);
+ void enterDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
/**
- * Exit a parse tree produced by the {@code Resource}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#defaults}.
* @param ctx the parse tree
*/
- void exitResource(@NotNull BindingExpressionParser.ResourceContext ctx);
+ void exitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#typeArguments}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#constantValue}.
* @param ctx the parse tree
*/
- void enterTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+ void enterConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#typeArguments}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#constantValue}.
* @param ctx the parse tree
*/
- void exitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+ void exitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
/**
- * Enter a parse tree produced by the {@code Grouping}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
+ void enterExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
/**
- * Exit a parse tree produced by the {@code Grouping}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
-
- /**
- * Enter a parse tree produced by the {@code MathOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- */
- void enterMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
- /**
- * Exit a parse tree produced by the {@code MathOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- */
- void exitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
+ void exitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#classExtraction}.
@@ -347,61 +273,26 @@
void exitClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#arguments}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#expressionList}.
* @param ctx the parse tree
*/
- void enterArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+ void enterExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#arguments}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#expressionList}.
* @param ctx the parse tree
*/
- void exitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+ void exitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#primitiveType}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#literal}.
* @param ctx the parse tree
*/
- void enterPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
+ void enterLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#primitiveType}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#literal}.
* @param ctx the parse tree
*/
- void exitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
-
- /**
- * Enter a parse tree produced by the {@code QuestionQuestionOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- */
- void enterQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
- /**
- * Exit a parse tree produced by the {@code QuestionQuestionOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- */
- void exitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
-
- /**
- * Enter a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
- * @param ctx the parse tree
- */
- void enterJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
- * @param ctx the parse tree
- */
- void exitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
-
- /**
- * Enter a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
- * @param ctx the parse tree
- */
- void enterExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
- /**
- * Exit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
- * @param ctx the parse tree
- */
- void exitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
+ void exitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#identifier}.
@@ -415,13 +306,123 @@
void exitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#literal}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
* @param ctx the parse tree
*/
- void enterLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
+ void enterJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#literal}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
* @param ctx the parse tree
*/
- void exitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
+ void exitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
+ * @param ctx the parse tree
+ */
+ void enterStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
+ * @param ctx the parse tree
+ */
+ void exitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
+ * @param ctx the parse tree
+ */
+ void enterExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
+ * @param ctx the parse tree
+ */
+ void exitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#typeArguments}.
+ * @param ctx the parse tree
+ */
+ void enterTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#typeArguments}.
+ * @param ctx the parse tree
+ */
+ void exitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#type}.
+ * @param ctx the parse tree
+ */
+ void enterType(@NotNull BindingExpressionParser.TypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#type}.
+ * @param ctx the parse tree
+ */
+ void exitType(@NotNull BindingExpressionParser.TypeContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
+ * @param ctx the parse tree
+ */
+ void enterExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
+ * @param ctx the parse tree
+ */
+ void exitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#arguments}.
+ * @param ctx the parse tree
+ */
+ void enterArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#arguments}.
+ * @param ctx the parse tree
+ */
+ void exitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
+ * @param ctx the parse tree
+ */
+ void enterClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
+ * @param ctx the parse tree
+ */
+ void exitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#primitiveType}.
+ * @param ctx the parse tree
+ */
+ void enterPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#primitiveType}.
+ * @param ctx the parse tree
+ */
+ void exitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#resources}.
+ * @param ctx the parse tree
+ */
+ void enterResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#resources}.
+ * @param ctx the parse tree
+ */
+ void exitResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
+
+ /**
+ * Enter a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
+ * @param ctx the parse tree
+ */
+ void enterResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
+ /**
+ * Exit a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
+ * @param ctx the parse tree
+ */
+ void exitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
}
\ No newline at end of file
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java
index 8463e9f..b469d2d 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java
@@ -1,31 +1,25 @@
-// Generated from BindingExpression.g4 by ANTLR 4.4
+// Generated from BindingExpression.g4 by ANTLR 4.5
package android.databinding.parser;
import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
public class BindingExpressionParser extends Parser {
public static final int
- T__42=1, T__41=2, T__40=3, T__39=4, T__38=5, T__37=6, T__36=7, T__35=8,
- T__34=9, T__33=10, T__32=11, T__31=12, T__30=13, T__29=14, T__28=15, T__27=16,
- T__26=17, T__25=18, T__24=19, T__23=20, T__22=21, T__21=22, T__20=23,
- T__19=24, T__18=25, T__17=26, T__16=27, T__15=28, T__14=29, T__13=30,
- T__12=31, T__11=32, T__10=33, T__9=34, T__8=35, T__7=36, T__6=37, T__5=38,
- T__4=39, T__3=40, T__2=41, T__1=42, T__0=43, THIS=44, IntegerLiteral=45,
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
+ T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
+ T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
+ T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
+ T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
+ T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, THIS=44, IntegerLiteral=45,
FloatingPointLiteral=46, BooleanLiteral=47, CharacterLiteral=48, SingleQuoteString=49,
DoubleQuoteString=50, NullLiteral=51, Identifier=52, WS=53, ResourceReference=54,
PackageName=55, ResourceType=56;
- public static final String[] tokenNames = {
- "<INVALID>", "'long'", "'>>>'", "']'", "'short'", "'&'", "'default'",
- "','", "'*'", "'['", "'-'", "'('", "':'", "'<'", "'int'", "'!='", "'<='",
- "'?'", "'<<'", "'void'", "'double'", "'boolean'", "'float'", "'>>'", "'char'",
- "'%'", "'^'", "'byte'", "')'", "'.'", "'+'", "'='", "'&&'", "'||'", "'>'",
- "'??'", "'=='", "'/'", "'~'", "'>='", "'class'", "'|'", "'instanceof'",
- "'!'", "'this'", "IntegerLiteral", "FloatingPointLiteral", "BooleanLiteral",
- "CharacterLiteral", "SingleQuoteString", "DoubleQuoteString", "'null'",
- "Identifier", "WS", "ResourceReference", "PackageName", "ResourceType"
- };
public static final int
RULE_bindingSyntax = 0, RULE_defaults = 1, RULE_constantValue = 2, RULE_expression = 3,
RULE_classExtraction = 4, RULE_expressionList = 5, RULE_literal = 6, RULE_identifier = 7,
@@ -40,11 +34,58 @@
"arguments", "classOrInterfaceType", "primitiveType", "resources", "resourceParameters"
};
- @Override
- public String getGrammarFileName() { return "BindingExpression.g4"; }
+ private static final String[] _LITERAL_NAMES = {
+ null, "','", "'default'", "'='", "'('", "')'", "'.'", "'['", "']'", "'+'",
+ "'-'", "'~'", "'!'", "'*'", "'/'", "'%'", "'<<'", "'>>>'", "'>>'", "'<='",
+ "'>='", "'>'", "'<'", "'instanceof'", "'=='", "'!='", "'&'", "'^'", "'|'",
+ "'&&'", "'||'", "'?'", "':'", "'??'", "'class'", "'void'", "'boolean'",
+ "'char'", "'byte'", "'short'", "'int'", "'long'", "'float'", "'double'",
+ "'this'", null, null, null, null, null, null, "'null'"
+ };
+ private static final String[] _SYMBOLIC_NAMES = {
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, "THIS", "IntegerLiteral",
+ "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "SingleQuoteString",
+ "DoubleQuoteString", "NullLiteral", "Identifier", "WS", "ResourceReference",
+ "PackageName", "ResourceType"
+ };
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "<INVALID>";
+ }
+ }
+ }
@Override
- public String[] getTokenNames() { return tokenNames; }
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+ @NotNull
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+ @Override
+ public String getGrammarFileName() { return "BindingExpression.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@@ -57,12 +98,12 @@
_interp = new ParserATNSimulator(this,_ATN);
}
public static class BindingSyntaxContext extends ParserRuleContext {
- public DefaultsContext defaults() {
- return getRuleContext(DefaultsContext.class,0);
- }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
+ public DefaultsContext defaults() {
+ return getRuleContext(DefaultsContext.class,0);
+ }
public BindingSyntaxContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -90,12 +131,14 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(38); expression(0);
+ setState(38);
+ expression(0);
setState(40);
_la = _input.LA(1);
- if (_la==T__36) {
+ if (_la==T__0) {
{
- setState(39); defaults();
+ setState(39);
+ defaults();
}
}
@@ -142,10 +185,14 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(42); match(T__36);
- setState(43); match(T__37);
- setState(44); match(T__12);
- setState(45); constantValue();
+ setState(42);
+ match(T__0);
+ setState(43);
+ match(T__1);
+ setState(44);
+ match(T__2);
+ setState(45);
+ constantValue();
}
}
catch (RecognitionException re) {
@@ -163,10 +210,10 @@
public LiteralContext literal() {
return getRuleContext(LiteralContext.class,0);
}
+ public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
- public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); }
public ConstantValueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -202,19 +249,22 @@
case NullLiteral:
enterOuterAlt(_localctx, 1);
{
- setState(47); literal();
+ setState(47);
+ literal();
}
break;
case ResourceReference:
enterOuterAlt(_localctx, 2);
{
- setState(48); match(ResourceReference);
+ setState(48);
+ match(ResourceReference);
}
break;
case Identifier:
enterOuterAlt(_localctx, 3);
{
- setState(49); identifier();
+ setState(49);
+ identifier();
}
break;
default:
@@ -244,12 +294,12 @@
}
}
public static class BracketOpContext extends ExpressionContext {
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public BracketOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -330,12 +380,12 @@
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public AndOrOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -355,13 +405,13 @@
public ExpressionContext target;
public Token methodName;
public ExpressionListContext args;
- public ExpressionListContext expressionList() {
- return getRuleContext(ExpressionListContext.class,0);
- }
- public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
+ public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
+ public ExpressionListContext expressionList() {
+ return getRuleContext(ExpressionListContext.class,0);
+ }
public MethodInvocationContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -378,15 +428,15 @@
}
}
public static class PrimaryContext extends ExpressionContext {
- public ClassExtractionContext classExtraction() {
- return getRuleContext(ClassExtractionContext.class,0);
- }
public LiteralContext literal() {
return getRuleContext(LiteralContext.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
+ public ClassExtractionContext classExtraction() {
+ return getRuleContext(ClassExtractionContext.class,0);
+ }
public PrimaryContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -426,12 +476,12 @@
public Token op;
public ExpressionContext iftrue;
public ExpressionContext iffalse;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public TernaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -451,12 +501,12 @@
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public ComparisonOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -473,10 +523,10 @@
}
}
public static class DotOpContext extends ExpressionContext {
- public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
+ public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
public DotOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -496,12 +546,12 @@
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public MathOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -517,41 +567,16 @@
else return visitor.visitChildren(this);
}
}
- public static class BitShiftOpContext extends ExpressionContext {
- public ExpressionContext left;
- public Token op;
- public ExpressionContext right;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
- public List<? extends ExpressionContext> expression() {
- return getRuleContexts(ExpressionContext.class);
- }
- public BitShiftOpContext(ExpressionContext ctx) { copyFrom(ctx); }
- @Override
- public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBitShiftOp(this);
- }
- @Override
- public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBitShiftOp(this);
- }
- @Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBitShiftOp(this);
- else return visitor.visitChildren(this);
- }
- }
public static class QuestionQuestionOpContext extends ExpressionContext {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public QuestionQuestionOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -567,13 +592,38 @@
else return visitor.visitChildren(this);
}
}
- public static class InstanceOfOpContext extends ExpressionContext {
- public TypeContext type() {
- return getRuleContext(TypeContext.class,0);
+ public static class BitShiftOpContext extends ExpressionContext {
+ public ExpressionContext left;
+ public Token op;
+ public ExpressionContext right;
+ public List<? extends ExpressionContext> expression() {
+ return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public BitShiftOpContext(ExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBitShiftOp(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBitShiftOp(this);
+ }
+ @Override
+ public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBitShiftOp(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class InstanceOfOpContext extends ExpressionContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
public InstanceOfOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -593,12 +643,12 @@
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public BinaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
@@ -640,10 +690,14 @@
_ctx = _localctx;
_prevctx = _localctx;
- setState(53); match(T__32);
- setState(54); type();
- setState(55); match(T__15);
- setState(56); expression(16);
+ setState(53);
+ match(T__3);
+ setState(54);
+ type();
+ setState(55);
+ match(T__4);
+ setState(56);
+ expression(16);
}
break;
@@ -655,11 +709,13 @@
setState(58);
((UnaryOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !(_la==T__33 || _la==T__13) ) {
+ if ( !(_la==T__8 || _la==T__9) ) {
((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(59); expression(15);
+ setState(59);
+ expression(15);
}
break;
@@ -671,11 +727,13 @@
setState(60);
((UnaryOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !(_la==T__5 || _la==T__0) ) {
+ if ( !(_la==T__10 || _la==T__11) ) {
((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(61); expression(14);
+ setState(61);
+ expression(14);
}
break;
@@ -684,9 +742,12 @@
_localctx = new GroupingContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(62); match(T__32);
- setState(63); expression(0);
- setState(64); match(T__15);
+ setState(62);
+ match(T__3);
+ setState(63);
+ expression(0);
+ setState(64);
+ match(T__4);
}
break;
@@ -695,7 +756,8 @@
_localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(66); literal();
+ setState(66);
+ literal();
}
break;
@@ -704,7 +766,8 @@
_localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(67); identifier();
+ setState(67);
+ identifier();
}
break;
@@ -713,7 +776,8 @@
_localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(68); classExtraction();
+ setState(68);
+ classExtraction();
}
break;
@@ -722,7 +786,8 @@
_localctx = new ResourceContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(69); resources();
+ setState(69);
+ resources();
}
break;
}
@@ -747,11 +812,13 @@
setState(73);
((MathOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__35) | (1L << T__18) | (1L << T__6))) != 0)) ) {
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14))) != 0)) ) {
((MathOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(74); ((MathOpContext)_localctx).right = expression(14);
+ setState(74);
+ ((MathOpContext)_localctx).right = expression(14);
}
break;
@@ -765,11 +832,13 @@
setState(76);
((MathOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !(_la==T__33 || _la==T__13) ) {
+ if ( !(_la==T__8 || _la==T__9) ) {
((MathOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(77); ((MathOpContext)_localctx).right = expression(13);
+ setState(77);
+ ((MathOpContext)_localctx).right = expression(13);
}
break;
@@ -783,11 +852,13 @@
setState(79);
((BitShiftOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__41) | (1L << T__25) | (1L << T__20))) != 0)) ) {
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__15) | (1L << T__16) | (1L << T__17))) != 0)) ) {
((BitShiftOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(80); ((BitShiftOpContext)_localctx).right = expression(12);
+ setState(80);
+ ((BitShiftOpContext)_localctx).right = expression(12);
}
break;
@@ -801,11 +872,13 @@
setState(82);
((ComparisonOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__30) | (1L << T__27) | (1L << T__9) | (1L << T__4))) != 0)) ) {
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21))) != 0)) ) {
((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(83); ((ComparisonOpContext)_localctx).right = expression(11);
+ setState(83);
+ ((ComparisonOpContext)_localctx).right = expression(11);
}
break;
@@ -819,11 +892,13 @@
setState(85);
((ComparisonOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
- if ( !(_la==T__28 || _la==T__7) ) {
+ if ( !(_la==T__23 || _la==T__24) ) {
((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
- setState(86); ((ComparisonOpContext)_localctx).right = expression(9);
+ setState(86);
+ ((ComparisonOpContext)_localctx).right = expression(9);
}
break;
@@ -834,8 +909,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(87);
if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
- setState(88); ((BinaryOpContext)_localctx).op = match(T__38);
- setState(89); ((BinaryOpContext)_localctx).right = expression(8);
+ setState(88);
+ ((BinaryOpContext)_localctx).op = match(T__25);
+ setState(89);
+ ((BinaryOpContext)_localctx).right = expression(8);
}
break;
@@ -846,8 +923,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(90);
if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
- setState(91); ((BinaryOpContext)_localctx).op = match(T__17);
- setState(92); ((BinaryOpContext)_localctx).right = expression(7);
+ setState(91);
+ ((BinaryOpContext)_localctx).op = match(T__26);
+ setState(92);
+ ((BinaryOpContext)_localctx).right = expression(7);
}
break;
@@ -858,8 +937,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(93);
if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
- setState(94); ((BinaryOpContext)_localctx).op = match(T__2);
- setState(95); ((BinaryOpContext)_localctx).right = expression(6);
+ setState(94);
+ ((BinaryOpContext)_localctx).op = match(T__27);
+ setState(95);
+ ((BinaryOpContext)_localctx).right = expression(6);
}
break;
@@ -870,8 +951,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(96);
if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
- setState(97); ((AndOrOpContext)_localctx).op = match(T__11);
- setState(98); ((AndOrOpContext)_localctx).right = expression(5);
+ setState(97);
+ ((AndOrOpContext)_localctx).op = match(T__28);
+ setState(98);
+ ((AndOrOpContext)_localctx).right = expression(5);
}
break;
@@ -882,8 +965,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(99);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
- setState(100); ((AndOrOpContext)_localctx).op = match(T__10);
- setState(101); ((AndOrOpContext)_localctx).right = expression(4);
+ setState(100);
+ ((AndOrOpContext)_localctx).op = match(T__29);
+ setState(101);
+ ((AndOrOpContext)_localctx).right = expression(4);
}
break;
@@ -894,10 +979,14 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(102);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
- setState(103); ((TernaryOpContext)_localctx).op = match(T__26);
- setState(104); ((TernaryOpContext)_localctx).iftrue = expression(0);
- setState(105); match(T__31);
- setState(106); ((TernaryOpContext)_localctx).iffalse = expression(3);
+ setState(103);
+ ((TernaryOpContext)_localctx).op = match(T__30);
+ setState(104);
+ ((TernaryOpContext)_localctx).iftrue = expression(0);
+ setState(105);
+ match(T__31);
+ setState(106);
+ ((TernaryOpContext)_localctx).iffalse = expression(2);
}
break;
@@ -908,8 +997,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(108);
if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
- setState(109); ((QuestionQuestionOpContext)_localctx).op = match(T__8);
- setState(110); ((QuestionQuestionOpContext)_localctx).right = expression(2);
+ setState(109);
+ ((QuestionQuestionOpContext)_localctx).op = match(T__32);
+ setState(110);
+ ((QuestionQuestionOpContext)_localctx).right = expression(2);
}
break;
@@ -919,8 +1010,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(111);
if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)");
- setState(112); match(T__14);
- setState(113); match(Identifier);
+ setState(112);
+ match(T__5);
+ setState(113);
+ match(Identifier);
}
break;
@@ -930,9 +1023,12 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(114);
if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)");
- setState(115); match(T__34);
- setState(116); expression(0);
- setState(117); match(T__40);
+ setState(115);
+ match(T__6);
+ setState(116);
+ expression(0);
+ setState(117);
+ match(T__7);
}
break;
@@ -943,18 +1039,23 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(119);
if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)");
- setState(120); match(T__14);
- setState(121); ((MethodInvocationContext)_localctx).methodName = match(Identifier);
- setState(122); match(T__32);
+ setState(120);
+ match(T__5);
+ setState(121);
+ ((MethodInvocationContext)_localctx).methodName = match(Identifier);
+ setState(122);
+ match(T__3);
setState(124);
_la = _input.LA(1);
- if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__42) | (1L << T__39) | (1L << T__33) | (1L << T__32) | (1L << T__29) | (1L << T__24) | (1L << T__23) | (1L << T__22) | (1L << T__21) | (1L << T__19) | (1L << T__16) | (1L << T__13) | (1L << T__5) | (1L << T__0) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) {
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) {
{
- setState(123); ((MethodInvocationContext)_localctx).args = expressionList();
+ setState(123);
+ ((MethodInvocationContext)_localctx).args = expressionList();
}
}
- setState(126); match(T__15);
+ setState(126);
+ match(T__4);
}
break;
@@ -964,8 +1065,10 @@
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(127);
if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
- setState(128); match(T__1);
- setState(129); type();
+ setState(128);
+ match(T__22);
+ setState(129);
+ type();
}
break;
}
@@ -1018,28 +1121,34 @@
try {
setState(142);
switch (_input.LA(1)) {
- case T__42:
+ case T__35:
+ case T__36:
+ case T__37:
+ case T__38:
case T__39:
- case T__29:
- case T__23:
- case T__22:
- case T__21:
- case T__19:
- case T__16:
+ case T__40:
+ case T__41:
+ case T__42:
case Identifier:
enterOuterAlt(_localctx, 1);
{
- setState(135); type();
- setState(136); match(T__14);
- setState(137); match(T__3);
+ setState(135);
+ type();
+ setState(136);
+ match(T__5);
+ setState(137);
+ match(T__33);
}
break;
- case T__24:
+ case T__34:
enterOuterAlt(_localctx, 2);
{
- setState(139); match(T__24);
- setState(140); match(T__14);
- setState(141); match(T__3);
+ setState(139);
+ match(T__34);
+ setState(140);
+ match(T__5);
+ setState(141);
+ match(T__33);
}
break;
default:
@@ -1058,12 +1167,12 @@
}
public static class ExpressionListContext extends ParserRuleContext {
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
- }
public List<? extends ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
public ExpressionListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1091,15 +1200,18 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(144); expression(0);
+ setState(144);
+ expression(0);
setState(149);
_errHandler.sync(this);
_la = _input.LA(1);
- while (_la==T__36) {
+ while (_la==T__0) {
{
{
- setState(145); match(T__36);
- setState(146); expression(0);
+ setState(145);
+ match(T__0);
+ setState(146);
+ expression(0);
}
}
setState(151);
@@ -1120,12 +1232,12 @@
}
public static class LiteralContext extends ParserRuleContext {
- public StringLiteralContext stringLiteral() {
- return getRuleContext(StringLiteralContext.class,0);
- }
public JavaLiteralContext javaLiteral() {
return getRuleContext(JavaLiteralContext.class,0);
}
+ public StringLiteralContext stringLiteral() {
+ return getRuleContext(StringLiteralContext.class,0);
+ }
public LiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1159,14 +1271,16 @@
case NullLiteral:
enterOuterAlt(_localctx, 1);
{
- setState(152); javaLiteral();
+ setState(152);
+ javaLiteral();
}
break;
case SingleQuoteString:
case DoubleQuoteString:
enterOuterAlt(_localctx, 2);
{
- setState(153); stringLiteral();
+ setState(153);
+ stringLiteral();
}
break;
default:
@@ -1212,7 +1326,8 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(156); match(Identifier);
+ setState(156);
+ match(Identifier);
}
}
catch (RecognitionException re) {
@@ -1227,11 +1342,11 @@
}
public static class JavaLiteralContext extends ParserRuleContext {
- public TerminalNode NullLiteral() { return getToken(BindingExpressionParser.NullLiteral, 0); }
- public TerminalNode CharacterLiteral() { return getToken(BindingExpressionParser.CharacterLiteral, 0); }
public TerminalNode IntegerLiteral() { return getToken(BindingExpressionParser.IntegerLiteral, 0); }
public TerminalNode FloatingPointLiteral() { return getToken(BindingExpressionParser.FloatingPointLiteral, 0); }
public TerminalNode BooleanLiteral() { return getToken(BindingExpressionParser.BooleanLiteral, 0); }
+ public TerminalNode NullLiteral() { return getToken(BindingExpressionParser.NullLiteral, 0); }
+ public TerminalNode CharacterLiteral() { return getToken(BindingExpressionParser.CharacterLiteral, 0); }
public JavaLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1263,8 +1378,9 @@
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << NullLiteral))) != 0)) ) {
_errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
}
}
catch (RecognitionException re) {
@@ -1312,8 +1428,9 @@
_la = _input.LA(1);
if ( !(_la==SingleQuoteString || _la==DoubleQuoteString) ) {
_errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
}
}
catch (RecognitionException re) {
@@ -1328,12 +1445,12 @@
}
public static class ExplicitGenericInvocationContext extends ParserRuleContext {
- public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
- return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
- }
public TypeArgumentsContext typeArguments() {
return getRuleContext(TypeArgumentsContext.class,0);
}
+ public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
+ return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
+ }
public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1360,8 +1477,10 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(162); typeArguments();
- setState(163); explicitGenericInvocationSuffix();
+ setState(162);
+ typeArguments();
+ setState(163);
+ explicitGenericInvocationSuffix();
}
}
catch (RecognitionException re) {
@@ -1376,12 +1495,12 @@
}
public static class TypeArgumentsContext extends ParserRuleContext {
- public TypeContext type(int i) {
- return getRuleContext(TypeContext.class,i);
- }
public List<? extends TypeContext> type() {
return getRuleContexts(TypeContext.class);
}
+ public TypeContext type(int i) {
+ return getRuleContext(TypeContext.class,i);
+ }
public TypeArgumentsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1409,23 +1528,28 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(165); match(T__30);
- setState(166); type();
+ setState(165);
+ match(T__21);
+ setState(166);
+ type();
setState(171);
_errHandler.sync(this);
_la = _input.LA(1);
- while (_la==T__36) {
+ while (_la==T__0) {
{
{
- setState(167); match(T__36);
- setState(168); type();
+ setState(167);
+ match(T__0);
+ setState(168);
+ type();
}
}
setState(173);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(174); match(T__9);
+ setState(174);
+ match(T__20);
}
}
catch (RecognitionException re) {
@@ -1440,12 +1564,12 @@
}
public static class TypeContext extends ParserRuleContext {
- public PrimitiveTypeContext primitiveType() {
- return getRuleContext(PrimitiveTypeContext.class,0);
- }
public ClassOrInterfaceTypeContext classOrInterfaceType() {
return getRuleContext(ClassOrInterfaceTypeContext.class,0);
}
+ public PrimitiveTypeContext primitiveType() {
+ return getRuleContext(PrimitiveTypeContext.class,0);
+ }
public TypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1476,7 +1600,8 @@
case Identifier:
enterOuterAlt(_localctx, 1);
{
- setState(176); classOrInterfaceType();
+ setState(176);
+ classOrInterfaceType();
setState(181);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
@@ -1484,8 +1609,10 @@
if ( _alt==1 ) {
{
{
- setState(177); match(T__34);
- setState(178); match(T__40);
+ setState(177);
+ match(T__6);
+ setState(178);
+ match(T__7);
}
}
}
@@ -1495,17 +1622,18 @@
}
}
break;
- case T__42:
+ case T__35:
+ case T__36:
+ case T__37:
+ case T__38:
case T__39:
- case T__29:
- case T__23:
- case T__22:
- case T__21:
- case T__19:
- case T__16:
+ case T__40:
+ case T__41:
+ case T__42:
enterOuterAlt(_localctx, 2);
{
- setState(184); primitiveType();
+ setState(184);
+ primitiveType();
setState(189);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
@@ -1513,8 +1641,10 @@
if ( _alt==1 ) {
{
{
- setState(185); match(T__34);
- setState(186); match(T__40);
+ setState(185);
+ match(T__6);
+ setState(186);
+ match(T__7);
}
}
}
@@ -1570,8 +1700,10 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(194); match(Identifier);
- setState(195); arguments();
+ setState(194);
+ match(Identifier);
+ setState(195);
+ arguments();
}
}
catch (RecognitionException re) {
@@ -1616,16 +1748,19 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(197); match(T__32);
+ setState(197);
+ match(T__3);
setState(199);
_la = _input.LA(1);
- if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__42) | (1L << T__39) | (1L << T__33) | (1L << T__32) | (1L << T__29) | (1L << T__24) | (1L << T__23) | (1L << T__22) | (1L << T__21) | (1L << T__19) | (1L << T__16) | (1L << T__13) | (1L << T__5) | (1L << T__0) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) {
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) {
{
- setState(198); expressionList();
+ setState(198);
+ expressionList();
}
}
- setState(201); match(T__15);
+ setState(201);
+ match(T__4);
}
}
catch (RecognitionException re) {
@@ -1640,18 +1775,18 @@
}
public static class ClassOrInterfaceTypeContext extends ParserRuleContext {
- public TypeArgumentsContext typeArguments(int i) {
- return getRuleContext(TypeArgumentsContext.class,i);
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
}
- public TerminalNode Identifier(int i) {
- return getToken(BindingExpressionParser.Identifier, i);
- }
- public List<? extends TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
public List<? extends TypeArgumentsContext> typeArguments() {
return getRuleContexts(TypeArgumentsContext.class);
}
- public IdentifierContext identifier() {
- return getRuleContext(IdentifierContext.class,0);
+ public TypeArgumentsContext typeArguments(int i) {
+ return getRuleContext(TypeArgumentsContext.class,i);
+ }
+ public List<? extends TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
+ public TerminalNode Identifier(int i) {
+ return getToken(BindingExpressionParser.Identifier, i);
}
public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
@@ -1680,12 +1815,14 @@
int _alt;
enterOuterAlt(_localctx, 1);
{
- setState(203); identifier();
+ setState(203);
+ identifier();
setState(205);
switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) {
case 1:
{
- setState(204); typeArguments();
+ setState(204);
+ typeArguments();
}
break;
}
@@ -1696,13 +1833,16 @@
if ( _alt==1 ) {
{
{
- setState(207); match(T__14);
- setState(208); match(Identifier);
+ setState(207);
+ match(T__5);
+ setState(208);
+ match(Identifier);
setState(210);
switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) {
case 1:
{
- setState(209); typeArguments();
+ setState(209);
+ typeArguments();
}
break;
}
@@ -1756,10 +1896,11 @@
{
setState(217);
_la = _input.LA(1);
- if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__42) | (1L << T__39) | (1L << T__29) | (1L << T__23) | (1L << T__22) | (1L << T__21) | (1L << T__19) | (1L << T__16))) != 0)) ) {
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42))) != 0)) ) {
_errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
}
}
catch (RecognitionException re) {
@@ -1774,10 +1915,10 @@
}
public static class ResourcesContext extends ParserRuleContext {
+ public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); }
public ResourceParametersContext resourceParameters() {
return getRuleContext(ResourceParametersContext.class,0);
}
- public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); }
public ResourcesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -1804,12 +1945,14 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(219); match(ResourceReference);
+ setState(219);
+ match(ResourceReference);
setState(221);
switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
case 1:
{
- setState(220); resourceParameters();
+ setState(220);
+ resourceParameters();
}
break;
}
@@ -1856,9 +1999,12 @@
try {
enterOuterAlt(_localctx, 1);
{
- setState(223); match(T__32);
- setState(224); expressionList();
- setState(225); match(T__15);
+ setState(223);
+ match(T__3);
+ setState(224);
+ expressionList();
+ setState(225);
+ match(T__4);
}
}
catch (RecognitionException re) {
@@ -1874,43 +2020,60 @@
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
- case 3: return expression_sempred((ExpressionContext)_localctx, predIndex);
+ case 3:
+ return expression_sempred((ExpressionContext)_localctx, predIndex);
}
return true;
}
private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
switch (predIndex) {
- case 0: return precpred(_ctx, 13);
+ case 0:
+ return precpred(_ctx, 13);
- case 1: return precpred(_ctx, 12);
+ case 1:
+ return precpred(_ctx, 12);
- case 2: return precpred(_ctx, 11);
+ case 2:
+ return precpred(_ctx, 11);
- case 3: return precpred(_ctx, 10);
+ case 3:
+ return precpred(_ctx, 10);
- case 4: return precpred(_ctx, 8);
+ case 4:
+ return precpred(_ctx, 8);
- case 5: return precpred(_ctx, 7);
+ case 5:
+ return precpred(_ctx, 7);
- case 6: return precpred(_ctx, 6);
+ case 6:
+ return precpred(_ctx, 6);
- case 7: return precpred(_ctx, 5);
+ case 7:
+ return precpred(_ctx, 5);
- case 8: return precpred(_ctx, 4);
+ case 8:
+ return precpred(_ctx, 4);
- case 9: return precpred(_ctx, 3);
+ case 9:
+ return precpred(_ctx, 3);
- case 10: return precpred(_ctx, 2);
+ case 10:
+ return precpred(_ctx, 2);
- case 11: return precpred(_ctx, 1);
+ case 11:
+ return precpred(_ctx, 1);
- case 12: return precpred(_ctx, 19);
+ case 12:
+ return precpred(_ctx, 19);
- case 13: return precpred(_ctx, 18);
+ case 13:
+ return precpred(_ctx, 18);
- case 14: return precpred(_ctx, 17);
+ case 14:
+ return precpred(_ctx, 17);
- case 15: return precpred(_ctx, 9);
+ case 15:
+ return precpred(_ctx, 9);
}
return true;
}
@@ -1934,66 +2097,65 @@
"\21\3\21\3\21\3\21\5\21\u00d5\n\21\7\21\u00d7\n\21\f\21\16\21\u00da\13"+
"\21\3\22\3\22\3\23\3\23\5\23\u00e0\n\23\3\24\3\24\3\24\3\24\3\24\2\2\3"+
"\b\25\2\2\4\2\6\2\b\2\n\2\f\2\16\2\20\2\22\2\24\2\26\2\30\2\32\2\34\2"+
- "\36\2 \2\"\2$\2&\2\2\13\4\2\f\f \4\2((--\5\2\n\n\33\33\'\'\5\2\4\4\24"+
- "\24\31\31\6\2\17\17\22\22$$))\4\2\21\21&&\4\2/\62\65\65\3\2\63\64\b\2"+
- "\3\3\6\6\20\20\26\30\32\32\35\35\u00f9\2(\3\2\2\2\4,\3\2\2\2\6\64\3\2"+
- "\2\2\bH\3\2\2\2\n\u0090\3\2\2\2\f\u0092\3\2\2\2\16\u009c\3\2\2\2\20\u009e"+
- "\3\2\2\2\22\u00a0\3\2\2\2\24\u00a2\3\2\2\2\26\u00a4\3\2\2\2\30\u00a7\3"+
- "\2\2\2\32\u00c2\3\2\2\2\34\u00c4\3\2\2\2\36\u00c7\3\2\2\2 \u00cd\3\2\2"+
- "\2\"\u00db\3\2\2\2$\u00dd\3\2\2\2&\u00e1\3\2\2\2(*\5\b\5\2)+\5\4\3\2*"+
- ")\3\2\2\2*+\3\2\2\2+\3\3\2\2\2,-\7\t\2\2-.\7\b\2\2./\7!\2\2/\60\5\6\4"+
- "\2\60\5\3\2\2\2\61\65\5\16\b\2\62\65\78\2\2\63\65\5\20\t\2\64\61\3\2\2"+
- "\2\64\62\3\2\2\2\64\63\3\2\2\2\65\7\3\2\2\2\66\67\b\5\1\2\678\7\r\2\2"+
- "89\5\32\16\29:\7\36\2\2:;\5\b\5\22;I\3\2\2\2<=\t\2\2\2=I\5\b\5\21>?\t"+
- "\3\2\2?I\5\b\5\20@A\7\r\2\2AB\5\b\5\2BC\7\36\2\2CI\3\2\2\2DI\5\16\b\2"+
- "EI\5\20\t\2FI\5\n\6\2GI\5$\23\2H\66\3\2\2\2H<\3\2\2\2H>\3\2\2\2H@\3\2"+
- "\2\2HD\3\2\2\2HE\3\2\2\2HF\3\2\2\2HG\3\2\2\2I\u0086\3\2\2\2JK\f\17\2\2"+
- "KL\t\4\2\2L\u0085\5\b\5\20MN\f\16\2\2NO\t\2\2\2O\u0085\5\b\5\17PQ\f\r"+
- "\2\2QR\t\5\2\2R\u0085\5\b\5\16ST\f\f\2\2TU\t\6\2\2U\u0085\5\b\5\rVW\f"+
- "\n\2\2WX\t\7\2\2X\u0085\5\b\5\13YZ\f\t\2\2Z[\7\7\2\2[\u0085\5\b\5\n\\"+
- "]\f\b\2\2]^\7\34\2\2^\u0085\5\b\5\t_`\f\7\2\2`a\7+\2\2a\u0085\5\b\5\b"+
- "bc\f\6\2\2cd\7\"\2\2d\u0085\5\b\5\7ef\f\5\2\2fg\7#\2\2g\u0085\5\b\5\6"+
- "hi\f\4\2\2ij\7\23\2\2jk\5\b\5\2kl\7\16\2\2lm\5\b\5\5m\u0085\3\2\2\2no"+
- "\f\3\2\2op\7%\2\2p\u0085\5\b\5\4qr\f\25\2\2rs\7\37\2\2s\u0085\7\66\2\2"+
- "tu\f\24\2\2uv\7\13\2\2vw\5\b\5\2wx\7\5\2\2x\u0085\3\2\2\2yz\f\23\2\2z"+
- "{\7\37\2\2{|\7\66\2\2|~\7\r\2\2}\177\5\f\7\2~}\3\2\2\2~\177\3\2\2\2\177"+
- "\u0080\3\2\2\2\u0080\u0085\7\36\2\2\u0081\u0082\f\13\2\2\u0082\u0083\7"+
- ",\2\2\u0083\u0085\5\32\16\2\u0084J\3\2\2\2\u0084M\3\2\2\2\u0084P\3\2\2"+
- "\2\u0084S\3\2\2\2\u0084V\3\2\2\2\u0084Y\3\2\2\2\u0084\\\3\2\2\2\u0084"+
+ "\36\2 \2\"\2$\2&\2\2\13\3\2\13\f\3\2\r\16\3\2\17\21\3\2\22\24\3\2\25\30"+
+ "\3\2\32\33\4\2/\62\65\65\3\2\63\64\3\2&-\u00f9\2(\3\2\2\2\4,\3\2\2\2\6"+
+ "\64\3\2\2\2\bH\3\2\2\2\n\u0090\3\2\2\2\f\u0092\3\2\2\2\16\u009c\3\2\2"+
+ "\2\20\u009e\3\2\2\2\22\u00a0\3\2\2\2\24\u00a2\3\2\2\2\26\u00a4\3\2\2\2"+
+ "\30\u00a7\3\2\2\2\32\u00c2\3\2\2\2\34\u00c4\3\2\2\2\36\u00c7\3\2\2\2 "+
+ "\u00cd\3\2\2\2\"\u00db\3\2\2\2$\u00dd\3\2\2\2&\u00e1\3\2\2\2(*\5\b\5\2"+
+ ")+\5\4\3\2*)\3\2\2\2*+\3\2\2\2+\3\3\2\2\2,-\7\3\2\2-.\7\4\2\2./\7\5\2"+
+ "\2/\60\5\6\4\2\60\5\3\2\2\2\61\65\5\16\b\2\62\65\78\2\2\63\65\5\20\t\2"+
+ "\64\61\3\2\2\2\64\62\3\2\2\2\64\63\3\2\2\2\65\7\3\2\2\2\66\67\b\5\1\2"+
+ "\678\7\6\2\289\5\32\16\29:\7\7\2\2:;\5\b\5\22;I\3\2\2\2<=\t\2\2\2=I\5"+
+ "\b\5\21>?\t\3\2\2?I\5\b\5\20@A\7\6\2\2AB\5\b\5\2BC\7\7\2\2CI\3\2\2\2D"+
+ "I\5\16\b\2EI\5\20\t\2FI\5\n\6\2GI\5$\23\2H\66\3\2\2\2H<\3\2\2\2H>\3\2"+
+ "\2\2H@\3\2\2\2HD\3\2\2\2HE\3\2\2\2HF\3\2\2\2HG\3\2\2\2I\u0086\3\2\2\2"+
+ "JK\f\17\2\2KL\t\4\2\2L\u0085\5\b\5\20MN\f\16\2\2NO\t\2\2\2O\u0085\5\b"+
+ "\5\17PQ\f\r\2\2QR\t\5\2\2R\u0085\5\b\5\16ST\f\f\2\2TU\t\6\2\2U\u0085\5"+
+ "\b\5\rVW\f\n\2\2WX\t\7\2\2X\u0085\5\b\5\13YZ\f\t\2\2Z[\7\34\2\2[\u0085"+
+ "\5\b\5\n\\]\f\b\2\2]^\7\35\2\2^\u0085\5\b\5\t_`\f\7\2\2`a\7\36\2\2a\u0085"+
+ "\5\b\5\bbc\f\6\2\2cd\7\37\2\2d\u0085\5\b\5\7ef\f\5\2\2fg\7 \2\2g\u0085"+
+ "\5\b\5\6hi\f\4\2\2ij\7!\2\2jk\5\b\5\2kl\7\"\2\2lm\5\b\5\4m\u0085\3\2\2"+
+ "\2no\f\3\2\2op\7#\2\2p\u0085\5\b\5\4qr\f\25\2\2rs\7\b\2\2s\u0085\7\66"+
+ "\2\2tu\f\24\2\2uv\7\t\2\2vw\5\b\5\2wx\7\n\2\2x\u0085\3\2\2\2yz\f\23\2"+
+ "\2z{\7\b\2\2{|\7\66\2\2|~\7\6\2\2}\177\5\f\7\2~}\3\2\2\2~\177\3\2\2\2"+
+ "\177\u0080\3\2\2\2\u0080\u0085\7\7\2\2\u0081\u0082\f\13\2\2\u0082\u0083"+
+ "\7\31\2\2\u0083\u0085\5\32\16\2\u0084J\3\2\2\2\u0084M\3\2\2\2\u0084P\3"+
+ "\2\2\2\u0084S\3\2\2\2\u0084V\3\2\2\2\u0084Y\3\2\2\2\u0084\\\3\2\2\2\u0084"+
"_\3\2\2\2\u0084b\3\2\2\2\u0084e\3\2\2\2\u0084h\3\2\2\2\u0084n\3\2\2\2"+
"\u0084q\3\2\2\2\u0084t\3\2\2\2\u0084y\3\2\2\2\u0084\u0081\3\2\2\2\u0085"+
"\u0088\3\2\2\2\u0086\u0084\3\2\2\2\u0086\u0087\3\2\2\2\u0087\t\3\2\2\2"+
- "\u0088\u0086\3\2\2\2\u0089\u008a\5\32\16\2\u008a\u008b\7\37\2\2\u008b"+
- "\u008c\7*\2\2\u008c\u0091\3\2\2\2\u008d\u008e\7\25\2\2\u008e\u008f\7\37"+
- "\2\2\u008f\u0091\7*\2\2\u0090\u0089\3\2\2\2\u0090\u008d\3\2\2\2\u0091"+
- "\13\3\2\2\2\u0092\u0097\5\b\5\2\u0093\u0094\7\t\2\2\u0094\u0096\5\b\5"+
- "\2\u0095\u0093\3\2\2\2\u0096\u0099\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098"+
- "\3\2\2\2\u0098\r\3\2\2\2\u0099\u0097\3\2\2\2\u009a\u009d\5\22\n\2\u009b"+
- "\u009d\5\24\13\2\u009c\u009a\3\2\2\2\u009c\u009b\3\2\2\2\u009d\17\3\2"+
- "\2\2\u009e\u009f\7\66\2\2\u009f\21\3\2\2\2\u00a0\u00a1\t\b\2\2\u00a1\23"+
- "\3\2\2\2\u00a2\u00a3\t\t\2\2\u00a3\25\3\2\2\2\u00a4\u00a5\5\30\r\2\u00a5"+
- "\u00a6\5\34\17\2\u00a6\27\3\2\2\2\u00a7\u00a8\7\17\2\2\u00a8\u00ad\5\32"+
- "\16\2\u00a9\u00aa\7\t\2\2\u00aa\u00ac\5\32\16\2\u00ab\u00a9\3\2\2\2\u00ac"+
- "\u00af\3\2\2\2\u00ad\u00ab\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2"+
- "\2\2\u00af\u00ad\3\2\2\2\u00b0\u00b1\7$\2\2\u00b1\31\3\2\2\2\u00b2\u00b7"+
- "\5 \21\2\u00b3\u00b4\7\13\2\2\u00b4\u00b6\7\5\2\2\u00b5\u00b3\3\2\2\2"+
- "\u00b6\u00b9\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00c3"+
- "\3\2\2\2\u00b9\u00b7\3\2\2\2\u00ba\u00bf\5\"\22\2\u00bb\u00bc\7\13\2\2"+
- "\u00bc\u00be\7\5\2\2\u00bd\u00bb\3\2\2\2\u00be\u00c1\3\2\2\2\u00bf\u00bd"+
- "\3\2\2\2\u00bf\u00c0\3\2\2\2\u00c0\u00c3\3\2\2\2\u00c1\u00bf\3\2\2\2\u00c2"+
- "\u00b2\3\2\2\2\u00c2\u00ba\3\2\2\2\u00c3\33\3\2\2\2\u00c4\u00c5\7\66\2"+
- "\2\u00c5\u00c6\5\36\20\2\u00c6\35\3\2\2\2\u00c7\u00c9\7\r\2\2\u00c8\u00ca"+
- "\5\f\7\2\u00c9\u00c8\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb"+
- "\u00cc\7\36\2\2\u00cc\37\3\2\2\2\u00cd\u00cf\5\20\t\2\u00ce\u00d0\5\30"+
- "\r\2\u00cf\u00ce\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d8\3\2\2\2\u00d1"+
- "\u00d2\7\37\2\2\u00d2\u00d4\7\66\2\2\u00d3\u00d5\5\30\r\2\u00d4\u00d3"+
- "\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5\u00d7\3\2\2\2\u00d6\u00d1\3\2\2\2\u00d7"+
- "\u00da\3\2\2\2\u00d8\u00d6\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9!\3\2\2\2"+
- "\u00da\u00d8\3\2\2\2\u00db\u00dc\t\n\2\2\u00dc#\3\2\2\2\u00dd\u00df\7"+
- "8\2\2\u00de\u00e0\5&\24\2\u00df\u00de\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0"+
- "%\3\2\2\2\u00e1\u00e2\7\r\2\2\u00e2\u00e3\5\f\7\2\u00e3\u00e4\7\36\2\2"+
- "\u00e4\'\3\2\2\2\24*\64H~\u0084\u0086\u0090\u0097\u009c\u00ad\u00b7\u00bf"+
- "\u00c2\u00c9\u00cf\u00d4\u00d8\u00df";
+ "\u0088\u0086\3\2\2\2\u0089\u008a\5\32\16\2\u008a\u008b\7\b\2\2\u008b\u008c"+
+ "\7$\2\2\u008c\u0091\3\2\2\2\u008d\u008e\7%\2\2\u008e\u008f\7\b\2\2\u008f"+
+ "\u0091\7$\2\2\u0090\u0089\3\2\2\2\u0090\u008d\3\2\2\2\u0091\13\3\2\2\2"+
+ "\u0092\u0097\5\b\5\2\u0093\u0094\7\3\2\2\u0094\u0096\5\b\5\2\u0095\u0093"+
+ "\3\2\2\2\u0096\u0099\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098\3\2\2\2\u0098"+
+ "\r\3\2\2\2\u0099\u0097\3\2\2\2\u009a\u009d\5\22\n\2\u009b\u009d\5\24\13"+
+ "\2\u009c\u009a\3\2\2\2\u009c\u009b\3\2\2\2\u009d\17\3\2\2\2\u009e\u009f"+
+ "\7\66\2\2\u009f\21\3\2\2\2\u00a0\u00a1\t\b\2\2\u00a1\23\3\2\2\2\u00a2"+
+ "\u00a3\t\t\2\2\u00a3\25\3\2\2\2\u00a4\u00a5\5\30\r\2\u00a5\u00a6\5\34"+
+ "\17\2\u00a6\27\3\2\2\2\u00a7\u00a8\7\30\2\2\u00a8\u00ad\5\32\16\2\u00a9"+
+ "\u00aa\7\3\2\2\u00aa\u00ac\5\32\16\2\u00ab\u00a9\3\2\2\2\u00ac\u00af\3"+
+ "\2\2\2\u00ad\u00ab\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2\2\2\u00af"+
+ "\u00ad\3\2\2\2\u00b0\u00b1\7\27\2\2\u00b1\31\3\2\2\2\u00b2\u00b7\5 \21"+
+ "\2\u00b3\u00b4\7\t\2\2\u00b4\u00b6\7\n\2\2\u00b5\u00b3\3\2\2\2\u00b6\u00b9"+
+ "\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00c3\3\2\2\2\u00b9"+
+ "\u00b7\3\2\2\2\u00ba\u00bf\5\"\22\2\u00bb\u00bc\7\t\2\2\u00bc\u00be\7"+
+ "\n\2\2\u00bd\u00bb\3\2\2\2\u00be\u00c1\3\2\2\2\u00bf\u00bd\3\2\2\2\u00bf"+
+ "\u00c0\3\2\2\2\u00c0\u00c3\3\2\2\2\u00c1\u00bf\3\2\2\2\u00c2\u00b2\3\2"+
+ "\2\2\u00c2\u00ba\3\2\2\2\u00c3\33\3\2\2\2\u00c4\u00c5\7\66\2\2\u00c5\u00c6"+
+ "\5\36\20\2\u00c6\35\3\2\2\2\u00c7\u00c9\7\6\2\2\u00c8\u00ca\5\f\7\2\u00c9"+
+ "\u00c8\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cc\7\7"+
+ "\2\2\u00cc\37\3\2\2\2\u00cd\u00cf\5\20\t\2\u00ce\u00d0\5\30\r\2\u00cf"+
+ "\u00ce\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d8\3\2\2\2\u00d1\u00d2\7\b"+
+ "\2\2\u00d2\u00d4\7\66\2\2\u00d3\u00d5\5\30\r\2\u00d4\u00d3\3\2\2\2\u00d4"+
+ "\u00d5\3\2\2\2\u00d5\u00d7\3\2\2\2\u00d6\u00d1\3\2\2\2\u00d7\u00da\3\2"+
+ "\2\2\u00d8\u00d6\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9!\3\2\2\2\u00da\u00d8"+
+ "\3\2\2\2\u00db\u00dc\t\n\2\2\u00dc#\3\2\2\2\u00dd\u00df\78\2\2\u00de\u00e0"+
+ "\5&\24\2\u00df\u00de\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0%\3\2\2\2\u00e1"+
+ "\u00e2\7\6\2\2\u00e2\u00e3\5\f\7\2\u00e3\u00e4\7\7\2\2\u00e4\'\3\2\2\2"+
+ "\24*\64H~\u0084\u0086\u0090\u0097\u009c\u00ad\u00b7\u00bf\u00c2\u00c9"+
+ "\u00cf\u00d4\u00d8\u00df";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
diff --git a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java
index 1f80a34..dfcf31d 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java
@@ -1,5 +1,6 @@
-// Generated from BindingExpression.g4 by ANTLR 4.4
+// Generated from BindingExpression.g4 by ANTLR 4.5
package android.databinding.parser;
+import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
@@ -12,20 +13,6 @@
*/
public interface BindingExpressionVisitor<Result> extends ParseTreeVisitor<Result> {
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
-
- /**
- * Visit a parse tree produced by {@link BindingExpressionParser#resources}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
-
- /**
* Visit a parse tree produced by the {@code BracketOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
@@ -34,12 +21,12 @@
Result visitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx);
/**
- * Visit a parse tree produced by the {@code UnaryOp}
+ * Visit a parse tree produced by the {@code Resource}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
+ Result visitResource(@NotNull BindingExpressionParser.ResourceContext ctx);
/**
* Visit a parse tree produced by the {@code CastOp}
@@ -50,11 +37,12 @@
Result visitCastOp(@NotNull BindingExpressionParser.CastOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
+ * Visit a parse tree produced by the {@code UnaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
+ Result visitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
/**
* Visit a parse tree produced by the {@code AndOrOp}
@@ -73,27 +61,6 @@
Result visitMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#expressionList}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
-
- /**
- * Visit a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
-
- /**
- * Visit a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
-
- /**
* Visit a parse tree produced by the {@code Primary}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
@@ -102,26 +69,12 @@
Result visitPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#type}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitType(@NotNull BindingExpressionParser.TypeContext ctx);
-
- /**
- * Visit a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
-
- /**
- * Visit a parse tree produced by the {@code ComparisonOp}
+ * Visit a parse tree produced by the {@code Grouping}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
+ Result visitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
/**
* Visit a parse tree produced by the {@code TernaryOp}
@@ -132,11 +85,12 @@
Result visitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#constantValue}.
+ * Visit a parse tree produced by the {@code ComparisonOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
+ Result visitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
/**
* Visit a parse tree produced by the {@code DotOp}
@@ -147,11 +101,20 @@
Result visitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#defaults}.
+ * Visit a parse tree produced by the {@code MathOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
+ Result visitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
+
+ /**
+ * Visit a parse tree produced by the {@code QuestionQuestionOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
/**
* Visit a parse tree produced by the {@code BitShiftOp}
@@ -178,42 +141,32 @@
Result visitBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+ Result visitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
/**
- * Visit a parse tree produced by the {@code Resource}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#defaults}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitResource(@NotNull BindingExpressionParser.ResourceContext ctx);
+ Result visitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#typeArguments}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#constantValue}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+ Result visitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
/**
- * Visit a parse tree produced by the {@code Grouping}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
-
- /**
- * Visit a parse tree produced by the {@code MathOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
+ Result visitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
/**
* Visit a parse tree produced by {@link BindingExpressionParser#classExtraction}.
@@ -223,40 +176,18 @@
Result visitClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#arguments}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#expressionList}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+ Result visitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#primitiveType}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#literal}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
-
- /**
- * Visit a parse tree produced by the {@code QuestionQuestionOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
-
- /**
- * Visit a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
-
- /**
- * Visit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
+ Result visitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
/**
* Visit a parse tree produced by {@link BindingExpressionParser#identifier}.
@@ -266,9 +197,79 @@
Result visitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#literal}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
+ Result visitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#typeArguments}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#type}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitType(@NotNull BindingExpressionParser.TypeContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#arguments}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#primitiveType}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#resources}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
+
+ /**
+ * Visit a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
+ * @param ctx the parse tree
+ * @return the visitor result
+ */
+ Result visitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
}
\ No newline at end of file