summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.idea/compiler.xml10
-rw-r--r--.idea/gradle.xml12
-rw-r--r--.idea/misc.xml42
-rw-r--r--.idea/modules.xml20
-rw-r--r--.idea/modules/baseLibrary/baseLibrary.iml12
-rw-r--r--.idea/modules/baseLibrary/baseLibrary_main.iml13
-rw-r--r--.idea/modules/baseLibrary/baseLibrary_test.iml17
-rw-r--r--.idea/modules/compilationTests/compilationTests.iml12
-rw-r--r--.idea/modules/compilationTests/compilationTests_main.iml13
-rw-r--r--.idea/modules/compilationTests/compilationTests_test.iml32
-rw-r--r--.idea/modules/compiler/compiler.iml12
-rw-r--r--.idea/modules/compiler/compiler_main.iml24
-rw-r--r--.idea/modules/compiler/compiler_test.iml32
-rw-r--r--.idea/modules/compilerCommon/compilerCommon.iml12
-rw-r--r--.idea/modules/compilerCommon/compilerCommon_main.iml21
-rw-r--r--.idea/modules/compilerCommon/compilerCommon_test.iml23
-rw-r--r--.idea/modules/data-binding.iml12
-rw-r--r--.idea/modules/dataBinding/dataBinding.iml12
-rw-r--r--baseLibrary/baseLibrary.iml20
-rw-r--r--baseLibrary/build.gradle6
-rw-r--r--baseLibrary/db-baseLibrary.iml2
-rw-r--r--baseLibrary/src/main/java/android/databinding/package.html13
-rw-r--r--build.gradle5
-rw-r--r--compilationTests/compilationTests.iml33
-rw-r--r--compilationTests/src/test/java/android/databinding/compilationTest/MultiLayoutVerificationTest.java4
-rw-r--r--compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java2
-rw-r--r--compiler/build.gradle10
-rw-r--r--compiler/compiler.iml36
-rw-r--r--compiler/db-compiler.iml2
-rw-r--r--compiler/src/main/java/android/databinding/tool/CompilerChef.java5
-rw-r--r--compiler/src/main/java/android/databinding/tool/ExpressionParser.java11
-rw-r--r--compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java66
-rw-r--r--compiler/src/main/java/android/databinding/tool/LayoutBinder.java9
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/ExprModel.java6
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java47
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt26
-rw-r--r--compiler/src/test/java/android/databinding/tool/ExpressionVisitorTest.java6
-rw-r--r--compiler/src/test/java/android/databinding/tool/LayoutBinderTest.java6
-rw-r--r--compiler/src/test/java/android/databinding/tool/expr/ExecutionPathTest.java2
-rw-r--r--compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java6
-rw-r--r--compilerCommon/build.gradle16
-rw-r--r--compilerCommon/compilerCommon.iml32
-rw-r--r--compilerCommon/db-compilerCommon-base.iml41
-rw-r--r--compilerCommon/db-compilerCommon.iml6
-rw-r--r--compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java250
-rw-r--r--compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java151
-rw-r--r--compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionLexer.java552
-rw-r--r--compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java384
-rw-r--r--compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java519
-rw-r--r--compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java222
-rw-r--r--compilerCommon/src/main/java/android/databinding/tool/util/StringUtils.java6
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.java200
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.tokens30
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.java324
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.tokens30
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseListener.java51
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseVisitor.java31
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserListener.java71
-rw-r--r--compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserVisitor.java45
-rw-r--r--data-binding.iml14
-rw-r--r--dataBinding/dataBinding.iml14
-rw-r--r--databinding.properties4
-rw-r--r--extensions/baseAdapters/build.gradle5
-rw-r--r--extensions/library/build.gradle4
-rw-r--r--extensions/library/src/main/java/android/databinding/ViewDataBinding.java18
65 files changed, 1810 insertions, 1864 deletions
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 96cc43ef..0103dd1c 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -18,5 +18,15 @@
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
+ <bytecodeTargetLevel>
+ <module name="baseLibrary_main" target="1.6" />
+ <module name="baseLibrary_test" target="1.6" />
+ <module name="compilationTests_main" target="1.6" />
+ <module name="compilationTests_test" target="1.6" />
+ <module name="compiler_main" target="1.8" />
+ <module name="compiler_test" target="1.8" />
+ <module name="compilerCommon_main" target="1.8" />
+ <module name="compilerCommon_test" target="1.8" />
+ </bytecodeTargetLevel>
</component>
</project> \ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index c9e59e10..0dce8633 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -5,7 +5,7 @@
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
- <option name="gradleJvm" value="1.6" />
+ <option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
@@ -17,16 +17,6 @@
</set>
</option>
<option name="useAutoImport" value="true" />
- <option name="myModules">
- <set>
- <option value="$PROJECT_DIR$" />
- <option value="$PROJECT_DIR$/baseLibrary" />
- <option value="$PROJECT_DIR$/compilationTests" />
- <option value="$PROJECT_DIR$/compiler" />
- <option value="$PROJECT_DIR$/compilerCommon" />
- <option value="$PROJECT_DIR$/dataBinding" />
- </set>
- </option>
</GradleProjectSettings>
</option>
</component>
diff --git a/.idea/misc.xml b/.idea/misc.xml
index caac6524..e48072ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,7 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="EntryPointsManager">
- <entry_points version="2.0" />
+ <component name="ProjectInspectionProfilesVisibleTreeState">
+ <entry key="Project Default">
+ <profile-state>
+ <expanded-state>
+ <State>
+ <id />
+ </State>
+ <State>
+ <id>Class structureJava</id>
+ </State>
+ <State>
+ <id>Code maturity issuesJava</id>
+ </State>
+ <State>
+ <id>Java</id>
+ </State>
+ <State>
+ <id>Java language level migration aidsJava</id>
+ </State>
+ <State>
+ <id>Javadoc issuesJava</id>
+ </State>
+ <State>
+ <id>Performance issuesJava</id>
+ </State>
+ <State>
+ <id>Threading issuesJava</id>
+ </State>
+ </expanded-state>
+ <selected-state>
+ <State>
+ <id>BashSupport</id>
+ </State>
+ </selected-state>
+ </profile-state>
+ </entry>
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
@@ -13,7 +47,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
- <output url="file://$PROJECT_DIR$/classes" />
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project> \ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 7eefe600..a3acbc51 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,12 +2,20 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
- <module fileurl="file://$PROJECT_DIR$/baseLibrary/baseLibrary.iml" filepath="$PROJECT_DIR$/baseLibrary/baseLibrary.iml" />
- <module fileurl="file://$PROJECT_DIR$/compilationTests/compilationTests.iml" filepath="$PROJECT_DIR$/compilationTests/compilationTests.iml" />
- <module fileurl="file://$PROJECT_DIR$/compiler/compiler.iml" filepath="$PROJECT_DIR$/compiler/compiler.iml" />
- <module fileurl="file://$PROJECT_DIR$/compilerCommon/compilerCommon.iml" filepath="$PROJECT_DIR$/compilerCommon/compilerCommon.iml" />
- <module fileurl="file://$PROJECT_DIR$/data-binding.iml" filepath="$PROJECT_DIR$/data-binding.iml" />
- <module fileurl="file://$PROJECT_DIR$/dataBinding/dataBinding.iml" filepath="$PROJECT_DIR$/dataBinding/dataBinding.iml" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/baseLibrary/baseLibrary.iml" filepath="$PROJECT_DIR$/.idea/modules/baseLibrary/baseLibrary.iml" group="dataBinding/baseLibrary" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/baseLibrary/baseLibrary_main.iml" filepath="$PROJECT_DIR$/.idea/modules/baseLibrary/baseLibrary_main.iml" group="dataBinding/baseLibrary" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/baseLibrary/baseLibrary_test.iml" filepath="$PROJECT_DIR$/.idea/modules/baseLibrary/baseLibrary_test.iml" group="dataBinding/baseLibrary" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compilationTests/compilationTests.iml" filepath="$PROJECT_DIR$/.idea/modules/compilationTests/compilationTests.iml" group="dataBinding/compilationTests" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compilationTests/compilationTests_main.iml" filepath="$PROJECT_DIR$/.idea/modules/compilationTests/compilationTests_main.iml" group="dataBinding/compilationTests" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compilationTests/compilationTests_test.iml" filepath="$PROJECT_DIR$/.idea/modules/compilationTests/compilationTests_test.iml" group="dataBinding/compilationTests" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compiler/compiler.iml" filepath="$PROJECT_DIR$/.idea/modules/compiler/compiler.iml" group="dataBinding/compiler" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compilerCommon/compilerCommon.iml" filepath="$PROJECT_DIR$/.idea/modules/compilerCommon/compilerCommon.iml" group="dataBinding/compilerCommon" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compilerCommon/compilerCommon_main.iml" filepath="$PROJECT_DIR$/.idea/modules/compilerCommon/compilerCommon_main.iml" group="dataBinding/compilerCommon" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compilerCommon/compilerCommon_test.iml" filepath="$PROJECT_DIR$/.idea/modules/compilerCommon/compilerCommon_test.iml" group="dataBinding/compilerCommon" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compiler/compiler_main.iml" filepath="$PROJECT_DIR$/.idea/modules/compiler/compiler_main.iml" group="dataBinding/compiler" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/compiler/compiler_test.iml" filepath="$PROJECT_DIR$/.idea/modules/compiler/compiler_test.iml" group="dataBinding/compiler" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/data-binding.iml" filepath="$PROJECT_DIR$/.idea/modules/data-binding.iml" />
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/dataBinding/dataBinding.iml" filepath="$PROJECT_DIR$/.idea/modules/dataBinding/dataBinding.iml" group="dataBinding" />
</modules>
</component>
</project> \ No newline at end of file
diff --git a/.idea/modules/baseLibrary/baseLibrary.iml b/.idea/modules/baseLibrary/baseLibrary.iml
new file mode 100644
index 00000000..019a989b
--- /dev/null
+++ b/.idea/modules/baseLibrary/baseLibrary.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:baseLibrary" external.linked.project.path="$MODULE_DIR$/../../../baseLibrary" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../baseLibrary">
+ <excludeFolder url="file://$MODULE_DIR$/../../../baseLibrary/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/../../../baseLibrary/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/baseLibrary/baseLibrary_main.iml b/.idea/modules/baseLibrary/baseLibrary_main.iml
new file mode 100644
index 00000000..4d93153a
--- /dev/null
+++ b/.idea/modules/baseLibrary/baseLibrary_main.iml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:baseLibrary:main" external.linked.project.path="$MODULE_DIR$/../../../baseLibrary" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.type="sourceSet" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/../../../baseLibrary/build/classes/main" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../baseLibrary/src/main">
+ <sourceFolder url="file://$MODULE_DIR$/../../../baseLibrary/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../baseLibrary/src/main/resources" type="java-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/baseLibrary/baseLibrary_test.iml b/.idea/modules/baseLibrary/baseLibrary_test.iml
new file mode 100644
index 00000000..bc70242f
--- /dev/null
+++ b/.idea/modules/baseLibrary/baseLibrary_test.iml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:baseLibrary:test" external.linked.project.path="$MODULE_DIR$/../../../baseLibrary" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.type="sourceSet" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+ <output-test url="file://$MODULE_DIR$/../../../baseLibrary/build/classes/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../baseLibrary/src/test">
+ <sourceFolder url="file://$MODULE_DIR$/../../../baseLibrary/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../baseLibrary/src/test/resources" type="java-test-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="baseLibrary_main" />
+ <orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
+ <orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
+ </component>
+ <component name="TestModuleProperties" production-module="baseLibrary_main" />
+</module> \ No newline at end of file
diff --git a/.idea/modules/compilationTests/compilationTests.iml b/.idea/modules/compilationTests/compilationTests.iml
new file mode 100644
index 00000000..bedf7d94
--- /dev/null
+++ b/.idea/modules/compilationTests/compilationTests.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compilationTests" external.linked.project.path="$MODULE_DIR$/../../../compilationTests" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="data-binding.dataBinding" external.system.module.version="1.0" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compilationTests">
+ <excludeFolder url="file://$MODULE_DIR$/../../../compilationTests/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/../../../compilationTests/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/compilationTests/compilationTests_main.iml b/.idea/modules/compilationTests/compilationTests_main.iml
new file mode 100644
index 00000000..def742ce
--- /dev/null
+++ b/.idea/modules/compilationTests/compilationTests_main.iml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compilationTests:main" external.linked.project.path="$MODULE_DIR$/../../../compilationTests" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="data-binding.dataBinding" external.system.module.type="sourceSet" external.system.module.version="1.0" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/../../../compilationTests/build/classes/main" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compilationTests/src/main">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilationTests/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilationTests/src/main/resources" type="java-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/compilationTests/compilationTests_test.iml b/.idea/modules/compilationTests/compilationTests_test.iml
new file mode 100644
index 00000000..5241cc7f
--- /dev/null
+++ b/.idea/modules/compilationTests/compilationTests_test.iml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compilationTests:test" external.linked.project.path="$MODULE_DIR$/../../../compilationTests" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="data-binding.dataBinding" external.system.module.type="sourceSet" external.system.module.version="1.0" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+ <output-test url="file://$MODULE_DIR$/../../../compilationTests/build/classes/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compilationTests/src/test">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilationTests/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilationTests/src/test/resources" type="java-test-resource" />
+ </content>
+ <content url="file://$MODULE_DIR$/../../../compiler/src/test/java/android">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/test/java/android/databinding/tool/reflection/java" isTestSource="true" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="compilationTests_main" />
+ <orderEntry type="module" module-name="baseLibrary_main" />
+ <orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
+ <orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.3.2" level="project" />
+ <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
+ <orderEntry type="library" name="Gradle: commons-codec:commons-codec:1.10" level="project" />
+ <orderEntry type="module" module-name="compilerCommon_main" />
+ <orderEntry type="module" module-name="compiler_main" />
+ <orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
+ <orderEntry type="library" name="Gradle: org.antlr:antlr4:4.5.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.tools:annotations:24.5.0" level="project" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.0.0" level="project" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-runtime:1.0.0" level="project" />
+ </component>
+ <component name="TestModuleProperties" production-module="compilationTests_main" />
+</module> \ No newline at end of file
diff --git a/.idea/modules/compiler/compiler.iml b/.idea/modules/compiler/compiler.iml
new file mode 100644
index 00000000..50b5884c
--- /dev/null
+++ b/.idea/modules/compiler/compiler.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compiler" external.linked.project.path="$MODULE_DIR$/../../../compiler" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compiler">
+ <excludeFolder url="file://$MODULE_DIR$/../../../compiler/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/../../../compiler/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/compiler/compiler_main.iml b/.idea/modules/compiler/compiler_main.iml
new file mode 100644
index 00000000..abf84114
--- /dev/null
+++ b/.idea/modules/compiler/compiler_main.iml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compiler:main" external.linked.project.path="$MODULE_DIR$/../../../compiler" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.type="sourceSet" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/../../../compiler/build/classes/main" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compiler/src/main">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/main/kotlin" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/main/resources" type="java-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="compilerCommon_main" />
+ <orderEntry type="module" module-name="baseLibrary_main" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.0.0" level="project" />
+ <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
+ <orderEntry type="library" name="Gradle: commons-codec:commons-codec:1.10" level="project" />
+ <orderEntry type="library" name="Gradle: org.antlr:antlr4:4.5.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.tools:annotations:24.5.0" level="project" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-runtime:1.0.0" level="project" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/compiler/compiler_test.iml b/.idea/modules/compiler/compiler_test.iml
new file mode 100644
index 00000000..433185ee
--- /dev/null
+++ b/.idea/modules/compiler/compiler_test.iml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compiler:test" external.linked.project.path="$MODULE_DIR$/../../../compiler" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.type="sourceSet" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
+ <output-test url="file://$MODULE_DIR$/../../../compiler/build/classes/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compiler/src/test/java">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/test/java" isTestSource="true" />
+ </content>
+ <content url="file://$MODULE_DIR$/../../../compiler/src/test/kotlin">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/test/kotlin" isTestSource="true" />
+ </content>
+ <content url="file://$MODULE_DIR$/../../../compiler/src/test/resources">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compiler/src/test/resources" type="java-test-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="compiler_main" />
+ <orderEntry type="module" module-name="compilerCommon_main" />
+ <orderEntry type="module" module-name="baseLibrary_main" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.0.0" level="project" />
+ <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
+ <orderEntry type="library" name="Gradle: commons-codec:commons-codec:1.10" level="project" />
+ <orderEntry type="library" name="Gradle: org.antlr:antlr4:4.5.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
+ <orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
+ <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.tools:annotations:24.5.0" level="project" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-runtime:1.0.0" level="project" />
+ <orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
+ </component>
+ <component name="TestModuleProperties" production-module="compiler_main" />
+</module> \ No newline at end of file
diff --git a/.idea/modules/compilerCommon/compilerCommon.iml b/.idea/modules/compilerCommon/compilerCommon.iml
new file mode 100644
index 00000000..27fdbd49
--- /dev/null
+++ b/.idea/modules/compilerCommon/compilerCommon.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compilerCommon" external.linked.project.path="$MODULE_DIR$/../../../compilerCommon" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compilerCommon">
+ <excludeFolder url="file://$MODULE_DIR$/../../../compilerCommon/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/../../../compilerCommon/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/compilerCommon/compilerCommon_main.iml b/.idea/modules/compilerCommon/compilerCommon_main.iml
new file mode 100644
index 00000000..4978e298
--- /dev/null
+++ b/.idea/modules/compilerCommon/compilerCommon_main.iml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compilerCommon:main" external.linked.project.path="$MODULE_DIR$/../../../compilerCommon" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.type="sourceSet" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/../../../compilerCommon/build/classes/main" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compilerCommon/src/main">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilerCommon/src/main/grammar-gen" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilerCommon/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilerCommon/src/main/xml-gen" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilerCommon/src/main/resources" type="java-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="baseLibrary_main" />
+ <orderEntry type="library" name="Gradle: org.antlr:antlr4:4.5.3" level="project" />
+ <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
+ <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.tools:annotations:24.5.0" level="project" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/compilerCommon/compilerCommon_test.iml b/.idea/modules/compilerCommon/compilerCommon_test.iml
new file mode 100644
index 00000000..26e89c6f
--- /dev/null
+++ b/.idea/modules/compilerCommon/compilerCommon_test.iml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding:compilerCommon:test" external.linked.project.path="$MODULE_DIR$/../../../compilerCommon" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.type="sourceSet" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
+ <output-test url="file://$MODULE_DIR$/../../../compilerCommon/build/classes/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../compilerCommon/src/test">
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilerCommon/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/../../../compilerCommon/src/test/resources" type="java-test-resource" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module" module-name="compilerCommon_main" />
+ <orderEntry type="module" module-name="baseLibrary_main" />
+ <orderEntry type="library" name="Gradle: org.antlr:antlr4:4.5.3" level="project" />
+ <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
+ <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.tools:annotations:24.5.0" level="project" />
+ <orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
+ <orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
+ </component>
+ <component name="TestModuleProperties" production-module="compilerCommon_main" />
+</module> \ No newline at end of file
diff --git a/.idea/modules/data-binding.iml b/.idea/modules/data-binding.iml
new file mode 100644
index 00000000..2bbad644
--- /dev/null
+++ b/.idea/modules/data-binding.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="data-binding" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../..">
+ <excludeFolder url="file://$MODULE_DIR$/../../.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/../../build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/modules/dataBinding/dataBinding.iml b/.idea/modules/dataBinding/dataBinding.iml
new file mode 100644
index 00000000..d0099f24
--- /dev/null
+++ b/.idea/modules/dataBinding/dataBinding.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":dataBinding" external.linked.project.path="$MODULE_DIR$/../../../dataBinding" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="2.2.0-dev" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$/../../../dataBinding">
+ <excludeFolder url="file://$MODULE_DIR$/../../../dataBinding/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/../../../dataBinding/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/baseLibrary/baseLibrary.iml b/baseLibrary/baseLibrary.iml
deleted file mode 100644
index c6163c1f..00000000
--- a/baseLibrary/baseLibrary.iml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":dataBinding:baseLibrary" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="1.1" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build/classes/main" />
- <output-test url="file://$MODULE_DIR$/build/classes/test" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
- </component>
-</module> \ No newline at end of file
diff --git a/baseLibrary/build.gradle b/baseLibrary/build.gradle
index 7489e0d1..8cbfd6d5 100644
--- a/baseLibrary/build.gradle
+++ b/baseLibrary/build.gradle
@@ -62,6 +62,10 @@ task prebuildJar(type : Copy) {
}
}
+javadoc {
+ options.addStringOption('Xdoclint:none', '-quiet')
+}
+
project.ext.pomName = 'Data Binding Base Library'
project.ext.pomDesc = 'Shared library between Data Binding runtime lib and compiler'
-enablePublishing(this, true) \ No newline at end of file
+enablePublishing(this, true)
diff --git a/baseLibrary/db-baseLibrary.iml b/baseLibrary/db-baseLibrary.iml
index 7cf99832..1804bc90 100644
--- a/baseLibrary/db-baseLibrary.iml
+++ b/baseLibrary/db-baseLibrary.iml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module relativePaths="true" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
diff --git a/baseLibrary/src/main/java/android/databinding/package.html b/baseLibrary/src/main/java/android/databinding/package.html
new file mode 100644
index 00000000..0415b4c6
--- /dev/null
+++ b/baseLibrary/src/main/java/android/databinding/package.html
@@ -0,0 +1,13 @@
+<html>
+<body>
+<p>Contains components used when developing applications with data binding.</p>
+
+<p>Android data binding operates primarily at compile time, processing expressions
+found in the layout file and generating code in the application. This package
+contains common code that will be included with the application, just like
+support library components.</p>
+
+<p>See the <a href="{@docRoot}/tools/data-binding/guide.html">Data Binding Guide</a>
+to get started using data binding.</p>
+</body>
+</html>
diff --git a/build.gradle b/build.gradle
index 45e1623e..2aa4ea4b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -230,7 +230,7 @@ def fullJar(project) {
doLast {
def jarJarLibrary = new File(dataBindingConfig.externalPrebuiltsBase,
- 'tools/common/m2/repository/com/googlecode/jarjar/jarjar/1.3/jarjar-1.3.jar').
+ 'tools/common/m2/repository/com/googlecode/jarjar/jarjar/1.4/jarjar-1.4.jar').
getCanonicalPath()
// in Ant
ant.taskdef(name: "jarjarIt",
@@ -241,8 +241,7 @@ def fullJar(project) {
// input is our inputLibrary
zipfileset(src: inputLibrary)
// rule to repackage antlr to new package
- rule pattern: 'org.antlr.**', result: 'com.google.repacked.antlr.@1'
- rule pattern: 'com.tunnelvisionlabs.**', result: 'com.google.repacked.tunnelvision.@1'
+ rule pattern: 'org.antlr.**', result: 'com.google.repacked.org.antlr.@1'
rule pattern: 'org.abego.treelayout.**', result: 'com.google.repacked.treelayout.@1'
// rule to repackage commons
rule pattern: 'org.apache.**', result: 'com.google.repacked.apache.@1'
diff --git a/compilationTests/compilationTests.iml b/compilationTests/compilationTests.iml
deleted file mode 100644
index 751bf1e8..00000000
--- a/compilationTests/compilationTests.iml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":dataBinding:compilationTests" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="data-binding.dataBinding" external.system.module.version="1.0" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build/classes/main" />
- <output-test url="file://$MODULE_DIR$/build/classes/test" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="module" module-name="compilerCommon" scope="TEST" />
- <orderEntry type="module" module-name="baseLibrary" scope="TEST" />
- <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.apache.commons:commons-lang3:3.3.2" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: commons-io:commons-io:2.4" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: commons-codec:commons-codec:1.10" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.tunnelvisionlabs:antlr4:4.5" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.tunnelvisionlabs:antlr4-runtime:4.5" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.tunnelvisionlabs:antlr4-annotations:4.5" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.antlr:antlr-runtime:3.5.2" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.antlr:ST4:4.0.8" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.abego.treelayout:org.abego.treelayout.core:1.0.1" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.google.guava:guava:17.0" level="project" />
- </component>
-</module> \ No newline at end of file
diff --git a/compilationTests/src/test/java/android/databinding/compilationTest/MultiLayoutVerificationTest.java b/compilationTests/src/test/java/android/databinding/compilationTest/MultiLayoutVerificationTest.java
index bbf86e7a..2c138687 100644
--- a/compilationTests/src/test/java/android/databinding/compilationTest/MultiLayoutVerificationTest.java
+++ b/compilationTests/src/test/java/android/databinding/compilationTest/MultiLayoutVerificationTest.java
@@ -208,13 +208,15 @@ public class MultiLayoutVerificationTest extends BaseCompilationTest {
CompilationResult result = runGradle("assembleDebug");
assertNotEquals(result.output, 0, result.resultCode);
List<ScopedException> exceptions = result.getBindingExceptions();
- assertEquals(result.error, 2, exceptions.size());
boolean foundNormal = false;
boolean foundLandscape = false;
for (ScopedException exception : exceptions) {
ScopedErrorReport report = exception.getScopedErrorReport();
assertNotNull(report);
+ if (exception.getMessage().startsWith("Cannot find the setter")) {
+ continue;
+ }
File file = new File(report.getFilePath());
assertTrue(file.exists());
assertEquals(result.error, 1, report.getLocations().size());
diff --git a/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java b/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java
index a4c7af9c..ee5467e2 100644
--- a/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java
+++ b/compilationTests/src/test/java/android/databinding/compilationTest/SimpleCompilationTest.java
@@ -396,7 +396,7 @@ public class SimpleCompilationTest extends BaseCompilationTest {
}
ModelMethod modelMethod = injectedClass.getMethod(
method.getName(), args, Modifier.isStatic(method.getModifiers()), false);
- assertNotNull(modelMethod);
+ assertNotNull("Method " + method + " not found", modelMethod);
}
}
}
diff --git a/compiler/build.gradle b/compiler/build.gradle
index 8a9e9919..cd4eac27 100644
--- a/compiler/build.gradle
+++ b/compiler/build.gradle
@@ -16,8 +16,8 @@
apply plugin: 'java'
apply plugin: 'kotlin'
-sourceCompatibility = dataBindingConfig.javaTargetCompatibility
-targetCompatibility = dataBindingConfig.javaSourceCompatibility
+sourceCompatibility = dataBindingConfig.compilerJavaTargetCompatibility
+targetCompatibility = dataBindingConfig.compilerJavaSourceCompatibility
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@@ -38,7 +38,7 @@ dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'commons-io:commons-io:2.4'
compile 'commons-codec:commons-codec:1.10'
- compile 'com.tunnelvisionlabs:antlr4:4.5'
+ compile 'org.antlr:antlr4:4.5.3'
compile 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
testCompile 'junit:junit:4.12'
}
@@ -60,7 +60,9 @@ uploadArchives {
}
}
-
+javadoc {
+ options.addStringOption('Xdoclint:none', '-quiet')
+}
project.ext.pomName = 'Data Binding Annotation Processor'
project.ext.pomDesc = 'The annotation processor for Data Binding. Generates binding classes for runtime.'
diff --git a/compiler/compiler.iml b/compiler/compiler.iml
deleted file mode 100644
index adf86190..00000000
--- a/compiler/compiler.iml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":dataBinding:compiler" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="1.1" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build/classes/main" />
- <output-test url="file://$MODULE_DIR$/build/classes/test" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/kotlin" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/kotlin" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="module" module-name="compilerCommon" />
- <orderEntry type="module" module-name="baseLibrary" />
- <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
- <orderEntry type="library" name="Gradle: commons-codec:commons-codec:1.10" level="project" />
- <orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4:4.5" level="project" />
- <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
- <orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4-runtime:4.5" level="project" />
- <orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4-annotations:4.5" level="project" />
- <orderEntry type="library" name="Gradle: org.antlr:antlr-runtime:3.5.2" level="project" />
- <orderEntry type="library" name="Gradle: org.antlr:ST4:4.0.8" level="project" />
- <orderEntry type="library" name="Gradle: org.abego.treelayout:org.abego.treelayout.core:1.0.1" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
- <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
- <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.0.0-beta-4584" level="project" />
- <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-runtime:1.0.0-beta-4584" level="project" />
- </component>
-</module> \ No newline at end of file
diff --git a/compiler/db-compiler.iml b/compiler/db-compiler.iml
index 2f3a0d27..d47a5828 100644
--- a/compiler/db-compiler.iml
+++ b/compiler/db-compiler.iml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module relativePaths="true" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
diff --git a/compiler/src/main/java/android/databinding/tool/CompilerChef.java b/compiler/src/main/java/android/databinding/tool/CompilerChef.java
index 611f3b8f..c167207a 100644
--- a/compiler/src/main/java/android/databinding/tool/CompilerChef.java
+++ b/compiler/src/main/java/android/databinding/tool/CompilerChef.java
@@ -135,6 +135,11 @@ public class CompilerChef {
"java.lang.Object");
injectedClass.addMethod(new InjectedMethod(injectedClass, true, "getColorFromResource",
"int", "android.view.View", "int"));
+ injectedClass.addMethod(new InjectedMethod(injectedClass, true,
+ "getColorStateListFromResource", "android.content.res.ColorStateList",
+ "android.view.View", "int"));
+ injectedClass.addMethod(new InjectedMethod(injectedClass, true, "getDrawableFromResource",
+ "android.graphics.drawable.Drawable", "android.view.View", "int"));
injectedClass.addMethod(new InjectedMethod(injectedClass, true, "parse",
"boolean", "java.lang.String", "boolean"));
injectedClass.addMethod(new InjectedMethod(injectedClass, true, "parse",
diff --git a/compiler/src/main/java/android/databinding/tool/ExpressionParser.java b/compiler/src/main/java/android/databinding/tool/ExpressionParser.java
index 5468c936..18fb8399 100644
--- a/compiler/src/main/java/android/databinding/tool/ExpressionParser.java
+++ b/compiler/src/main/java/android/databinding/tool/ExpressionParser.java
@@ -23,7 +23,6 @@ import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.Recognizer;
import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.Nullable;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.TerminalNode;
@@ -37,6 +36,8 @@ import android.databinding.tool.store.Location;
import android.databinding.tool.util.L;
import android.databinding.tool.util.Preconditions;
+import com.android.annotations.Nullable;
+
import java.util.ArrayList;
import java.util.List;
@@ -49,16 +50,16 @@ public class ExpressionParser {
visitor = new ExpressionVisitor(mModel);
}
- public Expr parse(String input, @Nullable Location locationInFile) {
+ public Expr parse(String input, @Nullable Location locationInFile, BindingTarget target) {
ANTLRInputStream inputStream = new ANTLRInputStream(input);
BindingExpressionLexer lexer = new BindingExpressionLexer(inputStream);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
final BindingExpressionParser parser = new BindingExpressionParser(tokenStream);
+ visitor.setBindingTarget(target);
parser.addErrorListener(new BaseErrorListener() {
@Override
- public <T extends Token> void syntaxError(Recognizer<T, ?> recognizer,
- @Nullable T offendingSymbol, int line, int charPositionInLine, String msg,
- @Nullable RecognitionException e) {
+ public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
+ int charPositionInLine, String msg, RecognitionException e) {
L.e(ErrorMessages.SYNTAX_ERROR, msg);
}
});
diff --git a/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java b/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java
index f35b1e2b..d273f387 100644
--- a/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java
+++ b/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java
@@ -31,10 +31,10 @@ import android.databinding.tool.reflection.ModelAnalyzer;
import android.databinding.tool.reflection.ModelClass;
import android.databinding.tool.util.Preconditions;
+import com.android.annotations.NonNull;
import com.google.common.base.Objects;
import org.antlr.v4.runtime.ParserRuleContext;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.TerminalNode;
@@ -43,19 +43,24 @@ import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
-public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
+class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
private ExprModel mModel;
private ParseTreeListener mParseTreeListener;
private ArrayDeque<ExprModel> mModelStack = new ArrayDeque<ExprModel>();
+ private BindingTarget mTarget;
- public ExpressionVisitor(ExprModel model) {
+ ExpressionVisitor(ExprModel model) {
mModel = model;
}
- public void setParseTreeListener(ParseTreeListener parseTreeListener) {
+ void setParseTreeListener(ParseTreeListener parseTreeListener) {
mParseTreeListener = parseTreeListener;
}
+ public void setBindingTarget(BindingTarget bindingTarget) {
+ mTarget = bindingTarget;
+ }
+
private void onEnter(ParserRuleContext context) {
if (mParseTreeListener != null) {
mParseTreeListener.enterEveryRule(context);
@@ -82,7 +87,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx) {
+ public Expr visitRootLambda(@NonNull BindingExpressionParser.RootLambdaContext ctx) {
try {
onEnter(ctx);
CallbackExprModel callbackModel = new CallbackExprModel(mModel);
@@ -100,7 +105,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
@Override
public Expr visitSingleLambdaParameter(
- @NotNull BindingExpressionParser.SingleLambdaParameterContext ctx) {
+ @NonNull BindingExpressionParser.SingleLambdaParameterContext ctx) {
try {
onEnter(ctx);
Preconditions.check(mModel instanceof CallbackExprModel, "Lambdas can only be used in"
@@ -115,7 +120,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
@Override
public Expr visitLambdaParameterList(
- @NotNull BindingExpressionParser.LambdaParameterListContext ctx) {
+ @NonNull BindingExpressionParser.LambdaParameterListContext ctx) {
try {
onEnter(ctx);
Preconditions.check(mModel instanceof CallbackExprModel, "Lambdas can only be used in"
@@ -136,7 +141,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) {
+ public Expr visitStringLiteral(@NonNull BindingExpressionParser.StringLiteralContext ctx) {
try {
onEnter(ctx);
final String javaString;
@@ -155,7 +160,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx) {
+ public Expr visitRootExpr(@NonNull BindingExpressionParser.RootExprContext ctx) {
try {
onEnter(ctx);
// TODO handle defaults
@@ -170,7 +175,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) {
+ public Expr visitGrouping(@NonNull BindingExpressionParser.GroupingContext ctx) {
try {
onEnter(ctx);
Preconditions.check(ctx.children.size() == 3, "Grouping expression should have"
@@ -182,7 +187,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx) {
+ public Expr visitDotOp(@NonNull BindingExpressionParser.DotOpContext ctx) {
try {
onEnter(ctx);
ModelAnalyzer analyzer = ModelAnalyzer.getInstance();
@@ -202,7 +207,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx) {
+ public Expr visitFunctionRef(@NonNull BindingExpressionParser.FunctionRefContext ctx) {
try {
onEnter(ctx);
return mModel.methodReference(ctx.expression().accept(this),
@@ -213,7 +218,8 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx) {
+ public Expr visitQuestionQuestionOp(
+ @NonNull BindingExpressionParser.QuestionQuestionOpContext ctx) {
try {
onEnter(ctx);
final Expr left = ctx.left.accept(this);
@@ -225,9 +231,9 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitTerminal(@NotNull TerminalNode node) {
+ public Expr visitTerminal(@NonNull TerminalNode node) {
try {
- onEnter((ParserRuleContext) node.getParent().getRuleContext());
+ onEnter((ParserRuleContext) node.getParent());
final int type = node.getSymbol().getType();
Class classType;
switch (type) {
@@ -259,12 +265,12 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
return mModel.symbol(node.getText(), classType);
} finally {
- onExit((ParserRuleContext) node.getParent().getRuleContext());
+ onExit((ParserRuleContext) node.getParent());
}
}
@Override
- public Expr visitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx) {
+ public Expr visitComparisonOp(@NonNull BindingExpressionParser.ComparisonOpContext ctx) {
try {
onEnter(ctx);
return mModel.comparison(ctx.op.getText(), ctx.left.accept(this), ctx.right.accept(this));
@@ -274,7 +280,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx) {
+ public Expr visitIdentifier(@NonNull BindingExpressionParser.IdentifierContext ctx) {
try {
onEnter(ctx);
return mModel.identifier(ctx.getText());
@@ -284,7 +290,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx) {
+ public Expr visitTernaryOp(@NonNull BindingExpressionParser.TernaryOpContext ctx) {
try {
onEnter(ctx);
return mModel.ternary(ctx.left.accept(this), ctx.iftrue.accept(this),
@@ -297,7 +303,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
@Override
public Expr visitMethodInvocation(
- @NotNull BindingExpressionParser.MethodInvocationContext ctx) {
+ @NonNull BindingExpressionParser.MethodInvocationContext ctx) {
try {
onEnter(ctx);
List<Expr> args = new ArrayList<Expr>();
@@ -317,7 +323,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) {
+ public Expr visitMathOp(@NonNull BindingExpressionParser.MathOpContext ctx) {
try {
onEnter(ctx);
return mModel.math(ctx.left.accept(this), ctx.op.getText(), ctx.right.accept(this));
@@ -327,7 +333,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitAndOrOp(@NotNull AndOrOpContext ctx) {
+ public Expr visitAndOrOp(@NonNull AndOrOpContext ctx) {
try {
onEnter(ctx);
return mModel.logical(ctx.left.accept(this), ctx.op.getText(), ctx.right.accept(this));
@@ -337,7 +343,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitBinaryOp(@NotNull BinaryOpContext ctx) {
+ public Expr visitBinaryOp(@NonNull BinaryOpContext ctx) {
try {
onEnter(ctx);
return mModel.math(ctx.left.accept(this), ctx.op.getText(), ctx.right.accept(this));
@@ -347,7 +353,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitBitShiftOp(@NotNull BitShiftOpContext ctx) {
+ public Expr visitBitShiftOp(@NonNull BitShiftOpContext ctx) {
try {
onEnter(ctx);
return mModel.bitshift(ctx.left.accept(this), ctx.op.getText(), ctx.right.accept(this));
@@ -357,7 +363,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitInstanceOfOp(@NotNull InstanceOfOpContext ctx) {
+ public Expr visitInstanceOfOp(@NonNull InstanceOfOpContext ctx) {
try {
onEnter(ctx);
return mModel.instanceOfOp(ctx.expression().accept(this), ctx.type().getText());
@@ -367,7 +373,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitUnaryOp(@NotNull UnaryOpContext ctx) {
+ public Expr visitUnaryOp(@NonNull UnaryOpContext ctx) {
try {
onEnter(ctx);
return mModel.unary(ctx.op.getText(), ctx.expression().accept(this));
@@ -377,7 +383,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitResources(@NotNull BindingExpressionParser.ResourcesContext ctx) {
+ public Expr visitResources(@NonNull BindingExpressionParser.ResourcesContext ctx) {
try {
onEnter(ctx);
final List<Expr> args = new ArrayList<Expr>();
@@ -397,14 +403,14 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
final int startIndex = Math.max(1, colonIndex + 1);
final String resourceType = resourceReference.substring(startIndex, slashIndex).trim();
final String resourceName = resourceReference.substring(slashIndex + 1).trim();
- return mModel.resourceExpr(packageName, resourceType, resourceName, args);
+ return mModel.resourceExpr(mTarget, packageName, resourceType, resourceName, args);
} finally {
onExit(ctx);
}
}
@Override
- public Expr visitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx) {
+ public Expr visitBracketOp(@NonNull BindingExpressionParser.BracketOpContext ctx) {
try {
onEnter(ctx);
return mModel.bracketExpr(visit(ctx.expression(0)), visit(ctx.expression(1)));
@@ -414,7 +420,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
}
@Override
- public Expr visitCastOp(@NotNull BindingExpressionParser.CastOpContext ctx) {
+ public Expr visitCastOp(@NonNull BindingExpressionParser.CastOpContext ctx) {
try {
onEnter(ctx);
return mModel.castExpr(ctx.type().getText(), visit(ctx.expression()));
diff --git a/compiler/src/main/java/android/databinding/tool/LayoutBinder.java b/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
index 7969854a..bcbafda6 100644
--- a/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
+++ b/compiler/src/main/java/android/databinding/tool/LayoutBinder.java
@@ -30,7 +30,7 @@ import android.databinding.tool.util.Preconditions;
import android.databinding.tool.writer.LayoutBinderWriter;
import android.databinding.tool.writer.LayoutBinderWriterKt;
-import org.antlr.v4.runtime.misc.Nullable;
+import com.android.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
@@ -222,7 +222,8 @@ public class LayoutBinder implements FileScopeProvider {
try {
Scope.enter(bindingBundle.getValueLocation());
Expr expr = parse(bindingBundle.getExpr(),
- bindingBundle.getValueLocation());
+ bindingBundle.getValueLocation(),
+ bindingTarget);
bindingTarget.addBinding(bindingBundle.getName(), expr);
if (bindingBundle.isTwoWay()) {
bindingTarget.addInverseBinding(bindingBundle.getName(), expr,
@@ -295,8 +296,8 @@ public class LayoutBinder implements FileScopeProvider {
return target;
}
- public Expr parse(String input, @Nullable Location locationInFile) {
- final Expr parsed = mExpressionParser.parse(input, locationInFile);
+ public Expr parse(String input, @Nullable Location locationInFile, BindingTarget target) {
+ final Expr parsed = mExpressionParser.parse(input, locationInFile, target);
parsed.setBindingExpression(true);
return parsed;
}
diff --git a/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java b/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java
index 87169cee..34b25690 100644
--- a/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java
+++ b/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java
@@ -273,9 +273,9 @@ public class ExprModel {
return register(new UnaryExpr(op, expr));
}
- public Expr resourceExpr(String packageName, String resourceType, String resourceName,
- List<Expr> args) {
- return register(new ResourceExpr(packageName, resourceType, resourceName, args));
+ public Expr resourceExpr(BindingTarget target, String packageName, String resourceType,
+ String resourceName, List<Expr> args) {
+ return register(new ResourceExpr(target, packageName, resourceType, resourceName, args));
}
public Expr bracketExpr(Expr variableExpr, Expr argExpr) {
diff --git a/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java b/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java
index 2ecf5fb0..df36cf63 100644
--- a/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java
+++ b/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java
@@ -15,9 +15,11 @@
*/
package android.databinding.tool.expr;
+import android.databinding.tool.BindingTarget;
import android.databinding.tool.reflection.ModelAnalyzer;
import android.databinding.tool.reflection.ModelClass;
import android.databinding.tool.writer.KCode;
+import android.databinding.tool.writer.LayoutBinderWriterKt;
import java.util.HashMap;
import java.util.List;
@@ -45,9 +47,12 @@ public class ResourceExpr extends Expr {
protected final String mResourceId;
- public ResourceExpr(String packageName, String resourceType, String resourceName,
- List<Expr> args) {
+ protected final BindingTarget mTarget;
+
+ public ResourceExpr(BindingTarget target, String packageName, String resourceType,
+ String resourceName, List<Expr> args) {
super(args);
+ mTarget = target;
if ("android".equals(packageName)) {
mPackage = "android.";
} else {
@@ -121,7 +126,11 @@ public class ResourceExpr extends Expr {
@Override
protected String computeUniqueKey() {
String base = toString();
- return join(base, computeChildrenKey());
+ String view = "";
+ if (requiresView()) {
+ view = LayoutBinderWriterKt.getFieldName(mTarget);
+ }
+ return join(base, view, computeChildrenKey());
}
@Override
@@ -132,7 +141,7 @@ public class ResourceExpr extends Expr {
@Override
public Expr cloneToModel(ExprModel model) {
String pkg = mPackage.isEmpty() ? "" : "android";
- return model.resourceExpr(pkg, mResourceType, mResourceId,
+ return model.resourceExpr(mTarget, pkg, mResourceType, mResourceId,
cloneToModel(model, getChildren()));
}
@@ -146,19 +155,31 @@ public class ResourceExpr extends Expr {
computeUniqueKey();
}
+ private boolean requiresView() {
+ return !mTarget.isBinder() && !("anim".equals(mResourceType) ||
+ "animator".equals(mResourceType) ||
+ "id".equals(mResourceType) ||
+ "interpolator".equals(mResourceType) ||
+ "layout".equals(mResourceType) ||
+ "stateListAnimator".equals(mResourceType) ||
+ "transition".equals(mResourceType));
+ }
+
public String toJava() {
final String context = "getRoot().getContext()";
- final String resources = "getRoot().getResources()";
+ final String viewName = requiresView() ? LayoutBinderWriterKt.getFieldName(mTarget) :
+ "getRoot()";
+ final String resources = viewName + ".getResources()";
final String resourceName = mPackage + "R." + getResourceObject() + "." + mResourceId;
if ("anim".equals(mResourceType)) return "android.view.animation.AnimationUtils.loadAnimation(" + context + ", " + resourceName + ")";
if ("animator".equals(mResourceType)) return "android.animation.AnimatorInflater.loadAnimator(" + context + ", " + resourceName + ")";
if ("bool".equals(mResourceType)) return resources + ".getBoolean(" + resourceName + ")";
- if ("color".equals(mResourceType)) return "android.databinding.DynamicUtil.getColorFromResource(getRoot(), " + resourceName + ")";
- if ("colorStateList".equals(mResourceType)) return "getColorStateListFromResource(" + resourceName + ")";
+ if ("color".equals(mResourceType)) return "android.databinding.DynamicUtil.getColorFromResource(" + viewName + ", " + resourceName + ")";
+ if ("colorStateList".equals(mResourceType)) return "android.databinding.DynamicUtil.getColorStateListFromResource(" + viewName + ", " + resourceName + ")";
if ("dimen".equals(mResourceType)) return resources + ".getDimension(" + resourceName + ")";
if ("dimenOffset".equals(mResourceType)) return resources + ".getDimensionPixelOffset(" + resourceName + ")";
if ("dimenSize".equals(mResourceType)) return resources + ".getDimensionPixelSize(" + resourceName + ")";
- if ("drawable".equals(mResourceType)) return "getDrawableFromResource(" + resourceName + ")";
+ if ("drawable".equals(mResourceType)) return "android.databinding.DynamicUtil.getDrawableFromResource(" + viewName + ", " + resourceName + ")";
if ("fraction".equals(mResourceType)) {
String base = getChildCode(0, "1");
String pbase = getChildCode(1, "1");
@@ -174,11 +195,11 @@ public class ResourceExpr extends Expr {
if (getChildren().isEmpty()) {
return resourceName;
} else {
- return makeParameterCall(resourceName, "getQuantityString");
+ return makeParameterCall(resources, resourceName, "getQuantityString");
}
}
if ("stateListAnimator".equals(mResourceType)) return "android.animation.AnimatorInflater.loadStateListAnimator(" + context + ", " + resourceName + ")";
- if ("string".equals(mResourceType)) return makeParameterCall(resourceName, "getString");
+ if ("string".equals(mResourceType)) return makeParameterCall(resources, resourceName, "getString");
if ("stringArray".equals(mResourceType)) return resources + ".getStringArray(" + resourceName + ")";
if ("transition".equals(mResourceType)) return "android.transition.TransitionInflater.from(" + context + ").inflateTransition(" + resourceName + ")";
if ("typedArray".equals(mResourceType)) return resources + ".obtainTypedArray(" + resourceName + ")";
@@ -196,9 +217,9 @@ public class ResourceExpr extends Expr {
}
}
- private String makeParameterCall(String resourceName, String methodCall) {
- StringBuilder sb = new StringBuilder("getRoot().getResources().");
- sb.append(methodCall).append("(").append(resourceName);
+ private String makeParameterCall(String resources, String resourceName, String methodCall) {
+ StringBuilder sb = new StringBuilder(resources);
+ sb.append('.').append(methodCall).append("(").append(resourceName);
for (Expr expr : getChildren()) {
sb.append(", ").append(expr.toCode().generate());
}
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt
index 8d76b030..e7314606 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt
@@ -8,13 +8,33 @@ class DynamicUtilWriter() {
nl("")
block("public class DynamicUtil") {
nl("@SuppressWarnings(\"deprecation\")")
- block("public static int getColorFromResource(final android.view.View root, final int resourceId)") {
+ block("public static int getColorFromResource(final android.view.View view, final int resourceId)") {
if (targetSdk >= 23) {
block("if (VERSION.SDK_INT >= VERSION_CODES.M)") {
- nl("return root.getContext().getColor(resourceId);")
+ nl("return view.getContext().getColor(resourceId);")
}
}
- nl("return root.getResources().getColor(resourceId);")
+ nl("return view.getResources().getColor(resourceId);")
+ }
+
+ nl("@SuppressWarnings(\"deprecation\")")
+ block("public static android.content.res.ColorStateList getColorStateListFromResource(final android.view.View view, final int resourceId)") {
+ if (targetSdk >= 23) {
+ block("if (VERSION.SDK_INT >= VERSION_CODES.M)") {
+ nl("return view.getContext().getColorStateList(resourceId);")
+ }
+ }
+ nl("return view.getResources().getColorStateList(resourceId);")
+ }
+
+ nl("@SuppressWarnings(\"deprecation\")")
+ block("public static android.graphics.drawable.Drawable getDrawableFromResource(final android.view.View view, final int resourceId)") {
+ if (targetSdk >= 21) {
+ block("if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP)") {
+ nl("return view.getContext().getDrawable(resourceId);")
+ }
+ }
+ nl("return view.getResources().getDrawable(resourceId);")
}
block("public static boolean parse(String str, boolean fallback)") {
diff --git a/compiler/src/test/java/android/databinding/tool/ExpressionVisitorTest.java b/compiler/src/test/java/android/databinding/tool/ExpressionVisitorTest.java
index 84b032af..3d3d8fed 100644
--- a/compiler/src/test/java/android/databinding/tool/ExpressionVisitorTest.java
+++ b/compiler/src/test/java/android/databinding/tool/ExpressionVisitorTest.java
@@ -51,7 +51,7 @@ public class ExpressionVisitorTest {
}
private <T extends Expr> T parse(String input, Class<T> klass) {
- final Expr parsed = mParser.parse(input, null);
+ final Expr parsed = mParser.parse(input, null, null);
assertSame(klass, parsed.getClass());
return (T) parsed;
}
@@ -89,7 +89,7 @@ public class ExpressionVisitorTest {
@Test
public void testComparison() {
- final Expr res = mParser.parse("3 " + mOp + " 5", null);
+ final Expr res = mParser.parse("3 " + mOp + " 5", null, null);
assertEquals(3, mParser.getModel().size());
assertTrue(res instanceof ComparisonExpr);
// 0 because they are both static
@@ -180,7 +180,7 @@ public class ExpressionVisitorTest {
assertEquals(0, parsed.getArgs().size());
assertEquals(1, parsed.getDependencies().size());
final Dependency dep = parsed.getDependencies().get(0);
- assertSame(mParser.parse("user", null), dep.getOther());
+ assertSame(mParser.parse("user", null, null), dep.getOther());
assertFalse(dep.isConditional());
}
diff --git a/compiler/src/test/java/android/databinding/tool/LayoutBinderTest.java b/compiler/src/test/java/android/databinding/tool/LayoutBinderTest.java
index c7f81ab1..564ecef4 100644
--- a/compiler/src/test/java/android/databinding/tool/LayoutBinderTest.java
+++ b/compiler/src/test/java/android/databinding/tool/LayoutBinderTest.java
@@ -77,8 +77,8 @@ public class LayoutBinderTest {
int originalSize = mExprModel.size();
mLayoutBinder.addVariable("user", "android.databinding.tool2.LayoutBinderTest.TestUser",
null);
- mLayoutBinder.parse("user.name", null);
- mLayoutBinder.parse("user.lastName", null);
+ mLayoutBinder.parse("user.name", null, null);
+ mLayoutBinder.parse("user.lastName", null, null);
assertEquals(originalSize + 3, mExprModel.size());
final List<Expr> bindingExprs = mExprModel.getBindingExpressions();
assertEquals(2, bindingExprs.size());
@@ -94,7 +94,7 @@ public class LayoutBinderTest {
public void testParseWithMethods() {
mLayoutBinder.addVariable("user", "android.databinding.tool.LayoutBinderTest.TestUser",
null);
- mLayoutBinder.parse("user.fullName", null);
+ mLayoutBinder.parse("user.fullName", null, null);
Expr item = mExprModel.getBindingExpressions().get(0);
assertTrue(item instanceof FieldAccessExpr);
IdentifierExpr id = mExprModel.identifier("user");
diff --git a/compiler/src/test/java/android/databinding/tool/expr/ExecutionPathTest.java b/compiler/src/test/java/android/databinding/tool/expr/ExecutionPathTest.java
index 2bb8832f..d6fb4707 100644
--- a/compiler/src/test/java/android/databinding/tool/expr/ExecutionPathTest.java
+++ b/compiler/src/test/java/android/databinding/tool/expr/ExecutionPathTest.java
@@ -57,7 +57,7 @@ public class ExecutionPathTest {
public void simpleExpr() {
MockLayoutBinder lb = new MockLayoutBinder();
ExprModel model = lb.getModel();
- Expr parsed = lb.parse(mExpression, null);
+ Expr parsed = lb.parse(mExpression, null, null);
List<ExecutionPath> paths = new ArrayList<ExecutionPath>();
ExecutionPath root = ExecutionPath.createRoot();
paths.add(root);
diff --git a/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java b/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
index e20dea74..a661c30f 100644
--- a/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
+++ b/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
@@ -154,7 +154,7 @@ public class ExprModelTest {
IdentifierExpr a = lb.addVariable("a", "java.lang.String", null);
IdentifierExpr b = lb.addVariable("b", "java.lang.String", null);
IdentifierExpr c = lb.addVariable("c", "java.lang.String", null);
- lb.parse("a == null ? b : c", null);
+ lb.parse("a == null ? b : c", null, null);
mExprModel.comparison("==", a, mExprModel.symbol("null", Object.class));
lb.getModel().seal();
List<Expr> shouldRead = getShouldRead();
@@ -303,7 +303,7 @@ public class ExprModelTest {
IdentifierExpr c = lb.addVariable("c", "java.lang.String", null);
IdentifierExpr d = lb.addVariable("d", "java.lang.String", null);
IdentifierExpr e = lb.addVariable("e", "java.lang.String", null);
- final Expr aTernary = lb.parse("a == null ? b == null ? c : d : e", null);
+ final Expr aTernary = lb.parse("a == null ? b == null ? c : d : e", null, null);
assertTrue(aTernary instanceof TernaryExpr);
final Expr bTernary = ((TernaryExpr) aTernary).getIfTrue();
assertTrue(bTernary instanceof TernaryExpr);
@@ -1132,7 +1132,7 @@ public class ExprModelTest {
}
private <T extends Expr> T parse(LayoutBinder binder, String input, Class<T> klass) {
- final Expr parsed = binder.parse(input, null);
+ final Expr parsed = binder.parse(input, null, null);
assertTrue(klass.isAssignableFrom(parsed.getClass()));
return (T) parsed;
}
diff --git a/compilerCommon/build.gradle b/compilerCommon/build.gradle
index 91ce05db..0f260e48 100644
--- a/compilerCommon/build.gradle
+++ b/compilerCommon/build.gradle
@@ -16,9 +16,6 @@
apply plugin: 'java'
-sourceCompatibility = dataBindingConfig.javaSourceCompatibility
-targetCompatibility = dataBindingConfig.javaTargetCompatibility
-
sourceSets {
main {
java {
@@ -38,17 +35,26 @@ sourceSets {
dependencies {
testCompile 'junit:junit:4.12'
compile project(':dataBinding:baseLibrary')
- compile 'com.tunnelvisionlabs:antlr4:4.5'
+ compile 'org.antlr:antlr4:4.5.3'
compile 'commons-io:commons-io:2.4'
compile 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
compile 'com.google.guava:guava:17.0'
+ compile 'com.android.tools:annotations:24.5.0'
+}
+
+project.tasks.create(name : "generateXmlLexer", type : JavaExec) {
+ classpath configurations.runtime
+ main "org.antlr.v4.Tool"
+ workingDir projectDir
+ args "XMLLexer.g4", "-visitor", "-lib", projectDir.absolutePath, "-o", "src/main/xml-gen/android/databinding/parser", "-package", "android.databinding.parser"
}
project.tasks.create(name : "generateXmlParser", type : JavaExec) {
classpath configurations.runtime
main "org.antlr.v4.Tool"
workingDir projectDir
- args "XMLParser.g4", "-visitor", "-o", "src/main/java/android/databinding/parser", "-package", "android.databinding.parser", "-lib", "."
+ args "XMLParser.g4", "-visitor", "-lib", projectDir.absolutePath, "-o", "src/main/xml-gen/android/databinding/parser", "-package", "android.databinding.parser"
+ dependsOn "generateXmlLexer"
}
project.tasks.create(name : "generateGrammar", type : JavaExec) {
diff --git a/compilerCommon/compilerCommon.iml b/compilerCommon/compilerCommon.iml
deleted file mode 100644
index d9cc2c61..00000000
--- a/compilerCommon/compilerCommon.iml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":dataBinding:compilerCommon" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="1.1" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build/classes/main" />
- <output-test url="file://$MODULE_DIR$/build/classes/test" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/src/main/grammar-gen" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/xml-gen" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="module" module-name="baseLibrary" />
- <orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4:4.5" level="project" />
- <orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
- <orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
- <orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4-runtime:4.5" level="project" />
- <orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4-annotations:4.5" level="project" />
- <orderEntry type="library" name="Gradle: org.antlr:antlr-runtime:3.5.2" level="project" />
- <orderEntry type="library" name="Gradle: org.antlr:ST4:4.0.8" level="project" />
- <orderEntry type="library" name="Gradle: org.abego.treelayout:org.abego.treelayout.core:1.0.1" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
- <orderEntry type="library" name="Gradle: com.google.guava:guava:17.0" level="project" />
- </component>
-</module> \ No newline at end of file
diff --git a/compilerCommon/db-compilerCommon-base.iml b/compilerCommon/db-compilerCommon-base.iml
index 38f8122f..bc880d54 100644
--- a/compilerCommon/db-compilerCommon-base.iml
+++ b/compilerCommon/db-compilerCommon-base.iml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module relativePaths="true" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
@@ -16,7 +16,7 @@
<orderEntry type="module-library" exported="">
<library>
<CLASSES>
- <root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/com/tunnelvisionlabs/antlr4/4.5/antlr4-4.5.jar!/" />
+ <root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
@@ -45,42 +45,6 @@
<orderEntry type="module-library" exported="">
<library>
<CLASSES>
- <root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/com/tunnelvisionlabs/antlr4-runtime/4.5/antlr4-runtime-4.5.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- <orderEntry type="module-library" exported="">
- <library>
- <CLASSES>
- <root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/com/tunnelvisionlabs/antlr4-annotations/4.5/antlr4-annotations-4.5.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- <orderEntry type="module-library" exported="">
- <library>
- <CLASSES>
- <root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- <orderEntry type="module-library" exported="">
- <library>
- <CLASSES>
- <root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/org/antlr/ST4/4.0.8/ST4-4.0.8.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- <orderEntry type="module-library" exported="">
- <library>
- <CLASSES>
<root url="jar://$MODULE_DIR$/../../../prebuilts/tools/common/m2/repository/org/abego/treelayout/org.abego.treelayout.core/1.0.1/org.abego.treelayout.core-1.0.1.jar!/" />
</CLASSES>
<JAVADOC />
@@ -110,5 +74,6 @@
</library>
</orderEntry>
<orderEntry type="library" exported="" name="guava-tools" level="project" />
+ <orderEntry type="module" module-name="android-annotations" />
</component>
</module> \ No newline at end of file
diff --git a/compilerCommon/db-compilerCommon.iml b/compilerCommon/db-compilerCommon.iml
index 3b18b8a9..eb533639 100644
--- a/compilerCommon/db-compilerCommon.iml
+++ b/compilerCommon/db-compilerCommon.iml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module relativePaths="true" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
@@ -25,8 +25,7 @@
<SOURCES />
</library>
</orderEntry>
- <orderEntry type="library" exported="" name="antlr4-runtime-4.5" level="project" />
- <orderEntry type="library" exported="" name="antlr4-annotations-4.5" level="project" />
+ <orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" />
<orderEntry type="module-library" scope="TEST">
<library>
<CLASSES>
@@ -49,5 +48,6 @@
</SOURCES>
</library>
</orderEntry>
+ <orderEntry type="module" module-name="android-annotations" exported="" />
</component>
</module> \ No newline at end of file
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 fc81eb83..c9ccebd6 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseListener.java
@@ -1,9 +1,7 @@
-// Generated from BindingExpression.g4 by ANTLR 4.5
+// Generated from BindingExpression.g4 by ANTLR 4.5.3
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;
@@ -18,582 +16,504 @@ public class BindingExpressionBaseListener implements BindingExpressionListener
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterCastOp(@NotNull BindingExpressionParser.CastOpContext ctx) { }
+ @Override public void enterRootExpr(BindingExpressionParser.RootExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitCastOp(@NotNull BindingExpressionParser.CastOpContext 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) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx) { }
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void exitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx) { }
-
- /**
- * {@inheritDoc}
- *
- * <p>The default implementation does nothing.</p>
- */
- @Override public void enterUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { }
+ @Override public void exitRootExpr(BindingExpressionParser.RootExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx) { }
-
+ @Override public void enterRootLambda(BindingExpressionParser.RootLambdaContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterResource(@NotNull BindingExpressionParser.ResourceContext ctx) { }
+ @Override public void exitRootLambda(BindingExpressionParser.RootLambdaContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitResource(@NotNull BindingExpressionParser.ResourceContext ctx) { }
-
+ @Override public void enterDefaults(BindingExpressionParser.DefaultsContext 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) { }
-
+ @Override public void exitDefaults(BindingExpressionParser.DefaultsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { }
+ @Override public void enterConstantValue(BindingExpressionParser.ConstantValueContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx) { }
-
+ @Override public void exitConstantValue(BindingExpressionParser.ConstantValueContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx) { }
+ @Override public void enterLambdaExpression(BindingExpressionParser.LambdaExpressionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx) { }
-
+ @Override public void exitLambdaExpression(BindingExpressionParser.LambdaExpressionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterBitShiftOp(@NotNull BindingExpressionParser.BitShiftOpContext ctx) { }
+ @Override public void enterSingleLambdaParameter(BindingExpressionParser.SingleLambdaParameterContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitBitShiftOp(@NotNull BindingExpressionParser.BitShiftOpContext ctx) { }
-
+ @Override public void exitSingleLambdaParameter(BindingExpressionParser.SingleLambdaParameterContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterAndOrOp(@NotNull BindingExpressionParser.AndOrOpContext ctx) { }
+ @Override public void enterLambdaParameterList(BindingExpressionParser.LambdaParameterListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitAndOrOp(@NotNull BindingExpressionParser.AndOrOpContext ctx) { }
-
+ @Override public void exitLambdaParameterList(BindingExpressionParser.LambdaParameterListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx) { }
+ @Override public void enterInferredFormalParameterList(BindingExpressionParser.InferredFormalParameterListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx) { }
-
+ @Override public void exitInferredFormalParameterList(BindingExpressionParser.InferredFormalParameterListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx) { }
+ @Override public void enterCastOp(BindingExpressionParser.CastOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx) { }
-
+ @Override public void exitCastOp(BindingExpressionParser.CastOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterDotOp(@NotNull BindingExpressionParser.DotOpContext ctx) { }
+ @Override public void enterComparisonOp(BindingExpressionParser.ComparisonOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx) { }
-
+ @Override public void exitComparisonOp(BindingExpressionParser.ComparisonOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { }
+ @Override public void enterUnaryOp(BindingExpressionParser.UnaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx) { }
-
+ @Override public void exitUnaryOp(BindingExpressionParser.UnaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterInstanceOfOp(@NotNull BindingExpressionParser.InstanceOfOpContext ctx) { }
+ @Override public void enterBracketOp(BindingExpressionParser.BracketOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitInstanceOfOp(@NotNull BindingExpressionParser.InstanceOfOpContext ctx) { }
-
+ @Override public void exitBracketOp(BindingExpressionParser.BracketOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx) { }
+ @Override public void enterResource(BindingExpressionParser.ResourceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx) { }
-
+ @Override public void exitResource(BindingExpressionParser.ResourceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx) { }
+ @Override public void enterQuestionQuestionOp(BindingExpressionParser.QuestionQuestionOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx) { }
-
+ @Override public void exitQuestionQuestionOp(BindingExpressionParser.QuestionQuestionOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx) { }
+ @Override public void enterGrouping(BindingExpressionParser.GroupingContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx) { }
-
+ @Override public void exitGrouping(BindingExpressionParser.GroupingContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx) { }
+ @Override public void enterMethodInvocation(BindingExpressionParser.MethodInvocationContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx) { }
-
+ @Override public void exitMethodInvocation(BindingExpressionParser.MethodInvocationContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterSingleLambdaParameter(@NotNull BindingExpressionParser.SingleLambdaParameterContext ctx) { }
+ @Override public void enterBitShiftOp(BindingExpressionParser.BitShiftOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitSingleLambdaParameter(@NotNull BindingExpressionParser.SingleLambdaParameterContext ctx) { }
-
+ @Override public void exitBitShiftOp(BindingExpressionParser.BitShiftOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterLambdaParameterList(@NotNull BindingExpressionParser.LambdaParameterListContext ctx) { }
+ @Override public void enterAndOrOp(BindingExpressionParser.AndOrOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitLambdaParameterList(@NotNull BindingExpressionParser.LambdaParameterListContext ctx) { }
-
+ @Override public void exitAndOrOp(BindingExpressionParser.AndOrOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { }
+ @Override public void enterTernaryOp(BindingExpressionParser.TernaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx) { }
-
+ @Override public void exitTernaryOp(BindingExpressionParser.TernaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { }
+ @Override public void enterPrimary(BindingExpressionParser.PrimaryContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx) { }
-
+ @Override public void exitPrimary(BindingExpressionParser.PrimaryContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { }
+ @Override public void enterDotOp(BindingExpressionParser.DotOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx) { }
-
+ @Override public void exitDotOp(BindingExpressionParser.DotOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterLambdaExpression(@NotNull BindingExpressionParser.LambdaExpressionContext ctx) { }
+ @Override public void enterMathOp(BindingExpressionParser.MathOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitLambdaExpression(@NotNull BindingExpressionParser.LambdaExpressionContext ctx) { }
-
+ @Override public void exitMathOp(BindingExpressionParser.MathOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterLambdaParameters(@NotNull BindingExpressionParser.LambdaParametersContext ctx) { }
+ @Override public void enterInstanceOfOp(BindingExpressionParser.InstanceOfOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitLambdaParameters(@NotNull BindingExpressionParser.LambdaParametersContext ctx) { }
-
+ @Override public void exitInstanceOfOp(BindingExpressionParser.InstanceOfOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterInferredFormalParameterList(@NotNull BindingExpressionParser.InferredFormalParameterListContext ctx) { }
+ @Override public void enterBinaryOp(BindingExpressionParser.BinaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitInferredFormalParameterList(@NotNull BindingExpressionParser.InferredFormalParameterListContext ctx) { }
-
+ @Override public void exitBinaryOp(BindingExpressionParser.BinaryOpContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { }
+ @Override public void enterFunctionRef(BindingExpressionParser.FunctionRefContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx) { }
-
+ @Override public void exitFunctionRef(BindingExpressionParser.FunctionRefContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx) { }
+ @Override public void enterClassExtraction(BindingExpressionParser.ClassExtractionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx) { }
-
+ @Override public void exitClassExtraction(BindingExpressionParser.ClassExtractionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { }
+ @Override public void enterExpressionList(BindingExpressionParser.ExpressionListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx) { }
-
+ @Override public void exitExpressionList(BindingExpressionParser.ExpressionListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { }
+ @Override public void enterLiteral(BindingExpressionParser.LiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { }
-
+ @Override public void exitLiteral(BindingExpressionParser.LiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx) { }
+ @Override public void enterIdentifier(BindingExpressionParser.IdentifierContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx) { }
-
+ @Override public void exitIdentifier(BindingExpressionParser.IdentifierContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { }
+ @Override public void enterJavaLiteral(BindingExpressionParser.JavaLiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx) { }
-
+ @Override public void exitJavaLiteral(BindingExpressionParser.JavaLiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { }
+ @Override public void enterStringLiteral(BindingExpressionParser.StringLiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx) { }
-
+ @Override public void exitStringLiteral(BindingExpressionParser.StringLiteralContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
+ @Override public void enterExplicitGenericInvocation(BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
-
+ @Override public void exitExplicitGenericInvocation(BindingExpressionParser.ExplicitGenericInvocationContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { }
+ @Override public void enterTypeArguments(BindingExpressionParser.TypeArgumentsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx) { }
-
+ @Override public void exitTypeArguments(BindingExpressionParser.TypeArgumentsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterType(@NotNull BindingExpressionParser.TypeContext ctx) { }
+ @Override public void enterType(BindingExpressionParser.TypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitType(@NotNull BindingExpressionParser.TypeContext ctx) { }
-
+ @Override public void exitType(BindingExpressionParser.TypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
+ @Override public void enterExplicitGenericInvocationSuffix(BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
-
+ @Override public void exitExplicitGenericInvocationSuffix(BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { }
+ @Override public void enterArguments(BindingExpressionParser.ArgumentsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx) { }
-
+ @Override public void exitArguments(BindingExpressionParser.ArgumentsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
+ @Override public void enterClassOrInterfaceType(BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
-
+ @Override public void exitClassOrInterfaceType(BindingExpressionParser.ClassOrInterfaceTypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { }
+ @Override public void enterPrimitiveType(BindingExpressionParser.PrimitiveTypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx) { }
-
+ @Override public void exitPrimitiveType(BindingExpressionParser.PrimitiveTypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { }
+ @Override public void enterResources(BindingExpressionParser.ResourcesContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitResources(@NotNull BindingExpressionParser.ResourcesContext ctx) { }
-
+ @Override public void exitResources(BindingExpressionParser.ResourcesContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { }
+ @Override public void enterResourceParameters(BindingExpressionParser.ResourceParametersContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx) { }
+ @Override public void exitResourceParameters(BindingExpressionParser.ResourceParametersContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterEveryRule(@NotNull ParserRuleContext ctx) { }
+ @Override public void enterEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitEveryRule(@NotNull ParserRuleContext ctx) { }
+ @Override public void exitEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void visitTerminal(@NotNull TerminalNode node) { }
+ @Override public void visitTerminal(TerminalNode node) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void visitErrorNode(@NotNull ErrorNode node) { }
+ @Override public void visitErrorNode(ErrorNode node) { }
} \ No newline at end of file
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 01a86e6c..5ba08bae 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionBaseVisitor.java
@@ -1,7 +1,5 @@
-// Generated from BindingExpression.g4 by ANTLR 4.5
+// Generated from BindingExpression.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
@@ -9,351 +7,288 @@ import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
* which can be extended to create a visitor which only needs to handle a subset
* of the available methods.
*
- * @param <Result> The return type of the visit operation. Use {@link Void} for
+ * @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
-public class BindingExpressionBaseVisitor<Result> extends AbstractParseTreeVisitor<Result> implements BindingExpressionVisitor<Result> {
+public class BindingExpressionBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements BindingExpressionVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitCastOp(@NotNull BindingExpressionParser.CastOpContext 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); }
-
- /**
- * {@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); }
-
+ @Override public T visitRootExpr(BindingExpressionParser.RootExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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 T visitRootLambda(BindingExpressionParser.RootLambdaContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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 T visitDefaults(BindingExpressionParser.DefaultsContext 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); }
-
+ @Override public T visitConstantValue(BindingExpressionParser.ConstantValueContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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); }
-
+ @Override public T visitLambdaExpression(BindingExpressionParser.LambdaExpressionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitSingleLambdaParameter(BindingExpressionParser.SingleLambdaParameterContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitBitShiftOp(@NotNull BindingExpressionParser.BitShiftOpContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitLambdaParameterList(BindingExpressionParser.LambdaParameterListContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitAndOrOp(@NotNull BindingExpressionParser.AndOrOpContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitInferredFormalParameterList(BindingExpressionParser.InferredFormalParameterListContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext 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); }
-
+ @Override public T visitCastOp(BindingExpressionParser.CastOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitComparisonOp(BindingExpressionParser.ComparisonOpContext 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 T visitUnaryOp(BindingExpressionParser.UnaryOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitInstanceOfOp(@NotNull BindingExpressionParser.InstanceOfOpContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitBracketOp(BindingExpressionParser.BracketOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitResource(BindingExpressionParser.ResourceContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitQuestionQuestionOp(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 visitRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitGrouping(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 visitRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitMethodInvocation(BindingExpressionParser.MethodInvocationContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitSingleLambdaParameter(@NotNull BindingExpressionParser.SingleLambdaParameterContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitBitShiftOp(BindingExpressionParser.BitShiftOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitLambdaParameterList(@NotNull BindingExpressionParser.LambdaParameterListContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitAndOrOp(BindingExpressionParser.AndOrOpContext 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); }
-
+ @Override public T visitTernaryOp(BindingExpressionParser.TernaryOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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 T visitPrimary(BindingExpressionParser.PrimaryContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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 T visitDotOp(BindingExpressionParser.DotOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitLambdaExpression(@NotNull BindingExpressionParser.LambdaExpressionContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitMathOp(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 visitLambdaParameters(@NotNull BindingExpressionParser.LambdaParametersContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitInstanceOfOp(BindingExpressionParser.InstanceOfOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitInferredFormalParameterList(@NotNull BindingExpressionParser.InferredFormalParameterListContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitBinaryOp(BindingExpressionParser.BinaryOpContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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); }
-
+ @Override public T visitFunctionRef(BindingExpressionParser.FunctionRefContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitClassExtraction(BindingExpressionParser.ClassExtractionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <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); }
-
+ @Override public T visitExpressionList(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 visitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitLiteral(BindingExpressionParser.LiteralContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitIdentifier(BindingExpressionParser.IdentifierContext 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); }
-
+ @Override public T visitJavaLiteral(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); }
-
+ @Override public T visitStringLiteral(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); }
-
+ @Override public T visitExplicitGenericInvocation(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); }
-
+ @Override public T visitTypeArguments(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); }
-
+ @Override public T visitType(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); }
-
+ @Override public T visitExplicitGenericInvocationSuffix(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); }
-
+ @Override public T visitArguments(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); }
-
+ @Override public T visitClassOrInterfaceType(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); }
-
+ @Override public T visitPrimitiveType(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); }
-
+ @Override public T visitResources(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); }
+ @Override public T visitResourceParameters(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 8b8bb8b9..d89c63e6 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.5
+// Generated from BindingExpression.g4 by ANTLR 4.5.3
package android.databinding.parser;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
@@ -9,7 +9,13 @@ import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class BindingExpressionLexer extends Lexer {
+ static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
public static final int
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,
@@ -91,7 +97,7 @@ public class BindingExpressionLexer extends Lexer {
}
@Override
- @NotNull
+
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@@ -99,7 +105,7 @@ public class BindingExpressionLexer extends Lexer {
public BindingExpressionLexer(CharStream input) {
super(input);
- _interp = new LexerATNSimulator(this,_ATN);
+ _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
@@ -115,13 +121,15 @@ public class BindingExpressionLexer extends Lexer {
public String[] getModeNames() { return modeNames; }
@Override
+ public ATN getATN() { return _ATN; }
+
+ @Override
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 95:
- return JavaLetter_sempred(_localctx, predIndex);
-
+ return JavaLetter_sempred((RuleContext)_localctx, predIndex);
case 96:
- return JavaLetterOrDigit_sempred(_localctx, predIndex);
+ return JavaLetterOrDigit_sempred((RuleContext)_localctx, predIndex);
}
return true;
}
@@ -129,7 +137,6 @@ public class BindingExpressionLexer extends Lexer {
switch (predIndex) {
case 0:
return Character.isJavaIdentifierStart(_input.LA(-1));
-
case 1:
return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
}
@@ -139,7 +146,6 @@ public class BindingExpressionLexer extends Lexer {
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)));
}
@@ -147,7 +153,7 @@ public class BindingExpressionLexer extends Lexer {
}
public static final String _serializedATN =
- "\3\uaf6f\u8320\u479d\ub75c\u4880\u1605\u191c\uab37\2<\u0370\b\1\4\2\t"+
+ "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2<\u0370\b\1\4\2\t"+
"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
@@ -196,271 +202,273 @@ public class BindingExpressionLexer extends Lexer {
"\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f"+
"\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f"+
"\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f"+
- "\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\5f\u036f\nf\2\2\2g\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\60_\2\61a\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\2\u008d\2"+
- "\2\u008f\2\62\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\2\u00a3\2\2\u00a5\2\63\u00a7\2\64\u00a9"+
- "\2\2\u00ab\2\65\u00ad\2\66\u00af\2\2\u00b1\2\2\u00b3\2\2\u00b5\2\2\u00b7"+
- "\2\2\u00b9\2\2\u00bb\2\2\u00bd\2\67\u00bf\28\u00c1\2\2\u00c3\2\2\u00c5"+
- "\29\u00c7\2:\u00c9\2;\u00cb\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\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\"\"\u0395\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]"+
- "\3\2\2\2\2_\3\2\2\2\2\u008f\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2"+
- "\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c5"+
- "\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\3\u00cd\3\2\2"+
- "\2\5\u00cf\3\2\2\2\7\u00d7\3\2\2\2\t\u00d9\3\2\2\2\13\u00dc\3\2\2\2\r"+
- "\u00de\3\2\2\2\17\u00e0\3\2\2\2\21\u00e2\3\2\2\2\23\u00e5\3\2\2\2\25\u00e7"+
- "\3\2\2\2\27\u00e9\3\2\2\2\31\u00eb\3\2\2\2\33\u00ed\3\2\2\2\35\u00ef\3"+
- "\2\2\2\37\u00f1\3\2\2\2!\u00f3\3\2\2\2#\u00f5\3\2\2\2%\u00f7\3\2\2\2\'"+
- "\u00fa\3\2\2\2)\u00fe\3\2\2\2+\u0101\3\2\2\2-\u0104\3\2\2\2/\u0107\3\2"+
- "\2\2\61\u0109\3\2\2\2\63\u010b\3\2\2\2\65\u0116\3\2\2\2\67\u0119\3\2\2"+
- "\29\u011c\3\2\2\2;\u011e\3\2\2\2=\u0120\3\2\2\2?\u0122\3\2\2\2A\u0125"+
- "\3\2\2\2C\u0128\3\2\2\2E\u012a\3\2\2\2G\u012c\3\2\2\2I\u012f\3\2\2\2K"+
- "\u0135\3\2\2\2M\u013d\3\2\2\2O\u0142\3\2\2\2Q\u0147\3\2\2\2S\u014d\3\2"+
- "\2\2U\u0151\3\2\2\2W\u0156\3\2\2\2Y\u015c\3\2\2\2[\u0163\3\2\2\2]\u0179"+
- "\3\2\2\2_\u017f\3\2\2\2a\u0181\3\2\2\2c\u0185\3\2\2\2e\u0189\3\2\2\2g"+
- "\u018d\3\2\2\2i\u0191\3\2\2\2k\u019d\3\2\2\2m\u019f\3\2\2\2o\u01ab\3\2"+
- "\2\2q\u01ad\3\2\2\2s\u01b1\3\2\2\2u\u01b4\3\2\2\2w\u01b8\3\2\2\2y\u01bc"+
- "\3\2\2\2{\u01c6\3\2\2\2}\u01ca\3\2\2\2\177\u01cc\3\2\2\2\u0081\u01d2\3"+
- "\2\2\2\u0083\u01dc\3\2\2\2\u0085\u01e0\3\2\2\2\u0087\u01e2\3\2\2\2\u0089"+
- "\u01e6\3\2\2\2\u008b\u01f0\3\2\2\2\u008d\u01f4\3\2\2\2\u008f\u01f8\3\2"+
- "\2\2\u0091\u0215\3\2\2\2\u0093\u0217\3\2\2\2\u0095\u021a\3\2\2\2\u0097"+
- "\u021d\3\2\2\2\u0099\u0221\3\2\2\2\u009b\u0223\3\2\2\2\u009d\u0225\3\2"+
- "\2\2\u009f\u0235\3\2\2\2\u00a1\u0237\3\2\2\2\u00a3\u023a\3\2\2\2\u00a5"+
- "\u0245\3\2\2\2\u00a7\u024f\3\2\2\2\u00a9\u0251\3\2\2\2\u00ab\u0253\3\2"+
- "\2\2\u00ad\u025c\3\2\2\2\u00af\u0263\3\2\2\2\u00b1\u0269\3\2\2\2\u00b3"+
- "\u026d\3\2\2\2\u00b5\u0273\3\2\2\2\u00b7\u0280\3\2\2\2\u00b9\u0282\3\2"+
- "\2\2\u00bb\u0289\3\2\2\2\u00bd\u028b\3\2\2\2\u00bf\u0290\3\2\2\2\u00c1"+
- "\u029d\3\2\2\2\u00c3\u02a5\3\2\2\2\u00c5\u02a8\3\2\2\2\u00c7\u02ae\3\2"+
- "\2\2\u00c9\u02c0\3\2\2\2\u00cb\u036e\3\2\2\2\u00cd\u00ce\7.\2\2\u00ce"+
- "\4\3\2\2\2\u00cf\u00d0\7f\2\2\u00d0\u00d1\7g\2\2\u00d1\u00d2\7h\2\2\u00d2"+
- "\u00d3\7c\2\2\u00d3\u00d4\7w\2\2\u00d4\u00d5\7n\2\2\u00d5\u00d6\7v\2\2"+
- "\u00d6\6\3\2\2\2\u00d7\u00d8\7?\2\2\u00d8\b\3\2\2\2\u00d9\u00da\7/\2\2"+
- "\u00da\u00db\7@\2\2\u00db\n\3\2\2\2\u00dc\u00dd\7*\2\2\u00dd\f\3\2\2\2"+
- "\u00de\u00df\7+\2\2\u00df\16\3\2\2\2\u00e0\u00e1\7\60\2\2\u00e1\20\3\2"+
- "\2\2\u00e2\u00e3\7<\2\2\u00e3\u00e4\7<\2\2\u00e4\22\3\2\2\2\u00e5\u00e6"+
- "\7]\2\2\u00e6\24\3\2\2\2\u00e7\u00e8\7_\2\2\u00e8\26\3\2\2\2\u00e9\u00ea"+
- "\7-\2\2\u00ea\30\3\2\2\2\u00eb\u00ec\7/\2\2\u00ec\32\3\2\2\2\u00ed\u00ee"+
- "\7\u0080\2\2\u00ee\34\3\2\2\2\u00ef\u00f0\7#\2\2\u00f0\36\3\2\2\2\u00f1"+
- "\u00f2\7,\2\2\u00f2 \3\2\2\2\u00f3\u00f4\7\61\2\2\u00f4\"\3\2\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\u00fd\7@\2\2\u00fd"+
- "(\3\2\2\2\u00fe\u00ff\7@\2\2\u00ff\u0100\7@\2\2\u0100*\3\2\2\2\u0101\u0102"+
- "\7>\2\2\u0102\u0103\7?\2\2\u0103,\3\2\2\2\u0104\u0105\7@\2\2\u0105\u0106"+
- "\7?\2\2\u0106.\3\2\2\2\u0107\u0108\7@\2\2\u0108\60\3\2\2\2\u0109\u010a"+
- "\7>\2\2\u010a\62\3\2\2\2\u010b\u010c\7k\2\2\u010c\u010d\7p\2\2\u010d\u010e"+
- "\7u\2\2\u010e\u010f\7v\2\2\u010f\u0110\7c\2\2\u0110\u0111\7p\2\2\u0111"+
- "\u0112\7e\2\2\u0112\u0113\7g\2\2\u0113\u0114\7q\2\2\u0114\u0115\7h\2\2"+
- "\u0115\64\3\2\2\2\u0116\u0117\7?\2\2\u0117\u0118\7?\2\2\u0118\66\3\2\2"+
- "\2\u0119\u011a\7#\2\2\u011a\u011b\7?\2\2\u011b8\3\2\2\2\u011c\u011d\7"+
- "(\2\2\u011d:\3\2\2\2\u011e\u011f\7`\2\2\u011f<\3\2\2\2\u0120\u0121\7~"+
- "\2\2\u0121>\3\2\2\2\u0122\u0123\7(\2\2\u0123\u0124\7(\2\2\u0124@\3\2\2"+
- "\2\u0125\u0126\7~\2\2\u0126\u0127\7~\2\2\u0127B\3\2\2\2\u0128\u0129\7"+
- "A\2\2\u0129D\3\2\2\2\u012a\u012b\7<\2\2\u012bF\3\2\2\2\u012c\u012d\7A"+
- "\2\2\u012d\u012e\7A\2\2\u012eH\3\2\2\2\u012f\u0130\7e\2\2\u0130\u0131"+
- "\7n\2\2\u0131\u0132\7c\2\2\u0132\u0133\7u\2\2\u0133\u0134\7u\2\2\u0134"+
- "J\3\2\2\2\u0135\u0136\7d\2\2\u0136\u0137\7q\2\2\u0137\u0138\7q\2\2\u0138"+
- "\u0139\7n\2\2\u0139\u013a\7g\2\2\u013a\u013b\7c\2\2\u013b\u013c\7p\2\2"+
- "\u013cL\3\2\2\2\u013d\u013e\7e\2\2\u013e\u013f\7j\2\2\u013f\u0140\7c\2"+
- "\2\u0140\u0141\7t\2\2\u0141N\3\2\2\2\u0142\u0143\7d\2\2\u0143\u0144\7"+
- "{\2\2\u0144\u0145\7v\2\2\u0145\u0146\7g\2\2\u0146P\3\2\2\2\u0147\u0148"+
- "\7u\2\2\u0148\u0149\7j\2\2\u0149\u014a\7q\2\2\u014a\u014b\7t\2\2\u014b"+
- "\u014c\7v\2\2\u014cR\3\2\2\2\u014d\u014e\7k\2\2\u014e\u014f\7p\2\2\u014f"+
- "\u0150\7v\2\2\u0150T\3\2\2\2\u0151\u0152\7n\2\2\u0152\u0153\7q\2\2\u0153"+
- "\u0154\7p\2\2\u0154\u0155\7i\2\2\u0155V\3\2\2\2\u0156\u0157\7h\2\2\u0157"+
- "\u0158\7n\2\2\u0158\u0159\7q\2\2\u0159\u015a\7c\2\2\u015a\u015b\7v\2\2"+
- "\u015bX\3\2\2\2\u015c\u015d\7f\2\2\u015d\u015e\7q\2\2\u015e\u015f\7w\2"+
- "\2\u015f\u0160\7d\2\2\u0160\u0161\7n\2\2\u0161\u0162\7g\2\2\u0162Z\3\2"+
- "\2\2\u0163\u0164\7v\2\2\u0164\u0165\7j\2\2\u0165\u0166\7k\2\2\u0166\u0167"+
- "\7u\2\2\u0167\\\3\2\2\2\u0168\u0169\7X\2\2\u0169\u016a\7q\2\2\u016a\u016b"+
- "\7k\2\2\u016b\u017a\7f\2\2\u016c\u016d\7x\2\2\u016d\u016e\7q\2\2\u016e"+
- "\u016f\7k\2\2\u016f\u017a\7f\2\2\u0170\u0171\7\u00b1\2\2\u0171\u0172\7"+
- "^\2\2\u0172\u0173\7a\2\2\u0173\u0174\7*\2\2\u0174\u0175\7\u30c6\2\2\u0175"+
- "\u0176\7+\2\2\u0176\u0177\7a\2\2\u0177\u0178\7\61\2\2\u0178\u017a\7\u00b1"+
- "\2\2\u0179\u0168\3\2\2\2\u0179\u016c\3\2\2\2\u0179\u0170\3\2\2\2\u017a"+
- "^\3\2\2\2\u017b\u0180\5a\61\2\u017c\u0180\5c\62\2\u017d\u0180\5e\63\2"+
- "\u017e\u0180\5g\64\2\u017f\u017b\3\2\2\2\u017f\u017c\3\2\2\2\u017f\u017d"+
- "\3\2\2\2\u017f\u017e\3\2\2\2\u0180`\3\2\2\2\u0181\u0183\5k\66\2\u0182"+
- "\u0184\5i\65\2\u0183\u0182\3\2\2\2\u0183\u0184\3\2\2\2\u0184b\3\2\2\2"+
- "\u0185\u0187\5w<\2\u0186\u0188\5i\65\2\u0187\u0186\3\2\2\2\u0187\u0188"+
- "\3\2\2\2\u0188d\3\2\2\2\u0189\u018b\5\177@\2\u018a\u018c\5i\65\2\u018b"+
- "\u018a\3\2\2\2\u018b\u018c\3\2\2\2\u018cf\3\2\2\2\u018d\u018f\5\u0087"+
- "D\2\u018e\u0190\5i\65\2\u018f\u018e\3\2\2\2\u018f\u0190\3\2\2\2\u0190"+
- "h\3\2\2\2\u0191\u0192\t\2\2\2\u0192j\3\2\2\2\u0193\u019e\7\62\2\2\u0194"+
- "\u019b\5q9\2\u0195\u0197\5m\67\2\u0196\u0195\3\2\2\2\u0196\u0197\3\2\2"+
- "\2\u0197\u019c\3\2\2\2\u0198\u0199\5u;\2\u0199\u019a\5m\67\2\u019a\u019c"+
- "\3\2\2\2\u019b\u0196\3\2\2\2\u019b\u0198\3\2\2\2\u019c\u019e\3\2\2\2\u019d"+
- "\u0193\3\2\2\2\u019d\u0194\3\2\2\2\u019el\3\2\2\2\u019f\u01a7\5o8\2\u01a0"+
- "\u01a2\5s:\2\u01a1\u01a0\3\2\2\2\u01a2\u01a5\3\2\2\2\u01a3\u01a1\3\2\2"+
- "\2\u01a3\u01a4\3\2\2\2\u01a4\u01a6\3\2\2\2\u01a5\u01a3\3\2\2\2\u01a6\u01a8"+
- "\5o8\2\u01a7\u01a3\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8n\3\2\2\2\u01a9\u01ac"+
- "\7\62\2\2\u01aa\u01ac\5q9\2\u01ab\u01a9\3\2\2\2\u01ab\u01aa\3\2\2\2\u01ac"+
- "p\3\2\2\2\u01ad\u01ae\t\3\2\2\u01aer\3\2\2\2\u01af\u01b2\5o8\2\u01b0\u01b2"+
- "\7a\2\2\u01b1\u01af\3\2\2\2\u01b1\u01b0\3\2\2\2\u01b2t\3\2\2\2\u01b3\u01b5"+
- "\7a\2\2\u01b4\u01b3\3\2\2\2\u01b5\u01b6\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b6"+
- "\u01b7\3\2\2\2\u01b7v\3\2\2\2\u01b8\u01b9\7\62\2\2\u01b9\u01ba\t\4\2\2"+
- "\u01ba\u01bb\5y=\2\u01bbx\3\2\2\2\u01bc\u01c4\5{>\2\u01bd\u01bf\5}?\2"+
- "\u01be\u01bd\3\2\2\2\u01bf\u01c2\3\2\2\2\u01c0\u01be\3\2\2\2\u01c0\u01c1"+
- "\3\2\2\2\u01c1\u01c3\3\2\2\2\u01c2\u01c0\3\2\2\2\u01c3\u01c5\5{>\2\u01c4"+
- "\u01c0\3\2\2\2\u01c4\u01c5\3\2\2\2\u01c5z\3\2\2\2\u01c6\u01c7\t\5\2\2"+
- "\u01c7|\3\2\2\2\u01c8\u01cb\5{>\2\u01c9\u01cb\7a\2\2\u01ca\u01c8\3\2\2"+
- "\2\u01ca\u01c9\3\2\2\2\u01cb~\3\2\2\2\u01cc\u01ce\7\62\2\2\u01cd\u01cf"+
- "\5u;\2\u01ce\u01cd\3\2\2\2\u01ce\u01cf\3\2\2\2\u01cf\u01d0\3\2\2\2\u01d0"+
- "\u01d1\5\u0081A\2\u01d1\u0080\3\2\2\2\u01d2\u01da\5\u0083B\2\u01d3\u01d5"+
- "\5\u0085C\2\u01d4\u01d3\3\2\2\2\u01d5\u01d8\3\2\2\2\u01d6\u01d4\3\2\2"+
- "\2\u01d6\u01d7\3\2\2\2\u01d7\u01d9\3\2\2\2\u01d8\u01d6\3\2\2\2\u01d9\u01db"+
- "\5\u0083B\2\u01da\u01d6\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u0082\3\2\2"+
- "\2\u01dc\u01dd\t\6\2\2\u01dd\u0084\3\2\2\2\u01de\u01e1\5\u0083B\2\u01df"+
- "\u01e1\7a\2\2\u01e0\u01de\3\2\2\2\u01e0\u01df\3\2\2\2\u01e1\u0086\3\2"+
- "\2\2\u01e2\u01e3\7\62\2\2\u01e3\u01e4\t\7\2\2\u01e4\u01e5\5\u0089E\2\u01e5"+
- "\u0088\3\2\2\2\u01e6\u01ee\5\u008bF\2\u01e7\u01e9\5\u008dG\2\u01e8\u01e7"+
- "\3\2\2\2\u01e9\u01ec\3\2\2\2\u01ea\u01e8\3\2\2\2\u01ea\u01eb\3\2\2\2\u01eb"+
- "\u01ed\3\2\2\2\u01ec\u01ea\3\2\2\2\u01ed\u01ef\5\u008bF\2\u01ee\u01ea"+
- "\3\2\2\2\u01ee\u01ef\3\2\2\2\u01ef\u008a\3\2\2\2\u01f0\u01f1\t\b\2\2\u01f1"+
- "\u008c\3\2\2\2\u01f2\u01f5\5\u008bF\2\u01f3\u01f5\7a\2\2\u01f4\u01f2\3"+
- "\2\2\2\u01f4\u01f3\3\2\2\2\u01f5\u008e\3\2\2\2\u01f6\u01f9\5\u0091I\2"+
- "\u01f7\u01f9\5\u009dO\2\u01f8\u01f6\3\2\2\2\u01f8\u01f7\3\2\2\2\u01f9"+
- "\u0090\3\2\2\2\u01fa\u01fb\5m\67\2\u01fb\u01fd\7\60\2\2\u01fc\u01fe\5"+
- "m\67\2\u01fd\u01fc\3\2\2\2\u01fd\u01fe\3\2\2\2\u01fe\u0200\3\2\2\2\u01ff"+
- "\u0201\5\u0093J\2\u0200\u01ff\3\2\2\2\u0200\u0201\3\2\2\2\u0201\u0203"+
- "\3\2\2\2\u0202\u0204\5\u009bN\2\u0203\u0202\3\2\2\2\u0203\u0204\3\2\2"+
- "\2\u0204\u0216\3\2\2\2\u0205\u0206\7\60\2\2\u0206\u0208\5m\67\2\u0207"+
- "\u0209\5\u0093J\2\u0208\u0207\3\2\2\2\u0208\u0209\3\2\2\2\u0209\u020b"+
- "\3\2\2\2\u020a\u020c\5\u009bN\2\u020b\u020a\3\2\2\2\u020b\u020c\3\2\2"+
- "\2\u020c\u0216\3\2\2\2\u020d\u020e\5m\67\2\u020e\u0210\5\u0093J\2\u020f"+
- "\u0211\5\u009bN\2\u0210\u020f\3\2\2\2\u0210\u0211\3\2\2\2\u0211\u0216"+
- "\3\2\2\2\u0212\u0213\5m\67\2\u0213\u0214\5\u009bN\2\u0214\u0216\3\2\2"+
- "\2\u0215\u01fa\3\2\2\2\u0215\u0205\3\2\2\2\u0215\u020d\3\2\2\2\u0215\u0212"+
- "\3\2\2\2\u0216\u0092\3\2\2\2\u0217\u0218\5\u0095K\2\u0218\u0219\5\u0097"+
- "L\2\u0219\u0094\3\2\2\2\u021a\u021b\t\t\2\2\u021b\u0096\3\2\2\2\u021c"+
- "\u021e\5\u0099M\2\u021d\u021c\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u021f"+
- "\3\2\2\2\u021f\u0220\5m\67\2\u0220\u0098\3\2\2\2\u0221\u0222\t\n\2\2\u0222"+
- "\u009a\3\2\2\2\u0223\u0224\t\13\2\2\u0224\u009c\3\2\2\2\u0225\u0226\5"+
- "\u009fP\2\u0226\u0228\5\u00a1Q\2\u0227\u0229\5\u009bN\2\u0228\u0227\3"+
- "\2\2\2\u0228\u0229\3\2\2\2\u0229\u009e\3\2\2\2\u022a\u022c\5w<\2\u022b"+
- "\u022d\7\60\2\2\u022c\u022b\3\2\2\2\u022c\u022d\3\2\2\2\u022d\u0236\3"+
- "\2\2\2\u022e\u022f\7\62\2\2\u022f\u0231\t\4\2\2\u0230\u0232\5y=\2\u0231"+
- "\u0230\3\2\2\2\u0231\u0232\3\2\2\2\u0232\u0233\3\2\2\2\u0233\u0234\7\60"+
- "\2\2\u0234\u0236\5y=\2\u0235\u022a\3\2\2\2\u0235\u022e\3\2\2\2\u0236\u00a0"+
- "\3\2\2\2\u0237\u0238\5\u00a3R\2\u0238\u0239\5\u0097L\2\u0239\u00a2\3\2"+
- "\2\2\u023a\u023b\t\f\2\2\u023b\u00a4\3\2\2\2\u023c\u023d\7v\2\2\u023d"+
- "\u023e\7t\2\2\u023e\u023f\7w\2\2\u023f\u0246\7g\2\2\u0240\u0241\7h\2\2"+
- "\u0241\u0242\7c\2\2\u0242\u0243\7n\2\2\u0243\u0244\7u\2\2\u0244\u0246"+
- "\7g\2\2\u0245\u023c\3\2\2\2\u0245\u0240\3\2\2\2\u0246\u00a6\3\2\2\2\u0247"+
- "\u0248\7)\2\2\u0248\u0249\5\u00a9U\2\u0249\u024a\7)\2\2\u024a\u0250\3"+
- "\2\2\2\u024b\u024c\7)\2\2\u024c\u024d\5\u00b5[\2\u024d\u024e\7)\2\2\u024e"+
- "\u0250\3\2\2\2\u024f\u0247\3\2\2\2\u024f\u024b\3\2\2\2\u0250\u00a8\3\2"+
- "\2\2\u0251\u0252\n\r\2\2\u0252\u00aa\3\2\2\2\u0253\u0257\7b\2\2\u0254"+
- "\u0256\5\u00b3Z\2\u0255\u0254\3\2\2\2\u0256\u0259\3\2\2\2\u0257\u0255"+
- "\3\2\2\2\u0257\u0258\3\2\2\2\u0258\u025a\3\2\2\2\u0259\u0257\3\2\2\2\u025a"+
- "\u025b\7b\2\2\u025b\u00ac\3\2\2\2\u025c\u025e\7$\2\2\u025d\u025f\5\u00af"+
- "X\2\u025e\u025d\3\2\2\2\u025e\u025f\3\2\2\2\u025f\u0260\3\2\2\2\u0260"+
- "\u0261\7$\2\2\u0261\u00ae\3\2\2\2\u0262\u0264\5\u00b1Y\2\u0263\u0262\3"+
- "\2\2\2\u0264\u0265\3\2\2\2\u0265\u0263\3\2\2\2\u0265\u0266\3\2\2\2\u0266"+
- "\u00b0\3\2\2\2\u0267\u026a\n\16\2\2\u0268\u026a\5\u00b5[\2\u0269\u0267"+
- "\3\2\2\2\u0269\u0268\3\2\2\2\u026a\u00b2\3\2\2\2\u026b\u026e\n\17\2\2"+
- "\u026c\u026e\5\u00b5[\2\u026d\u026b\3\2\2\2\u026d\u026c\3\2\2\2\u026e"+
- "\u00b4\3\2\2\2\u026f\u0270\7^\2\2\u0270\u0274\t\20\2\2\u0271\u0274\5\u00b7"+
- "\\\2\u0272\u0274\5\u00b9]\2\u0273\u026f\3\2\2\2\u0273\u0271\3\2\2\2\u0273"+
- "\u0272\3\2\2\2\u0274\u00b6\3\2\2\2\u0275\u0276\7^\2\2\u0276\u0281\5\u0083"+
- "B\2\u0277\u0278\7^\2\2\u0278\u0279\5\u0083B\2\u0279\u027a\5\u0083B\2\u027a"+
- "\u0281\3\2\2\2\u027b\u027c\7^\2\2\u027c\u027d\5\u00bb^\2\u027d\u027e\5"+
- "\u0083B\2\u027e\u027f\5\u0083B\2\u027f\u0281\3\2\2\2\u0280\u0275\3\2\2"+
- "\2\u0280\u0277\3\2\2\2\u0280\u027b\3\2\2\2\u0281\u00b8\3\2\2\2\u0282\u0283"+
- "\7^\2\2\u0283\u0284\7w\2\2\u0284\u0285\5{>\2\u0285\u0286\5{>\2\u0286\u0287"+
- "\5{>\2\u0287\u0288\5{>\2\u0288\u00ba\3\2\2\2\u0289\u028a\t\21\2\2\u028a"+
- "\u00bc\3\2\2\2\u028b\u028c\7p\2\2\u028c\u028d\7w\2\2\u028d\u028e\7n\2"+
- "\2\u028e\u028f\7n\2\2\u028f\u00be\3\2\2\2\u0290\u0294\5\u00c1a\2\u0291"+
- "\u0293\5\u00c3b\2\u0292\u0291\3\2\2\2\u0293\u0296\3\2\2\2\u0294\u0292"+
- "\3\2\2\2\u0294\u0295\3\2\2\2\u0295\u00c0\3\2\2\2\u0296\u0294\3\2\2\2\u0297"+
- "\u029e\t\22\2\2\u0298\u0299\n\23\2\2\u0299\u029e\6a\2\2\u029a\u029b\t"+
- "\24\2\2\u029b\u029c\t\25\2\2\u029c\u029e\6a\3\2\u029d\u0297\3\2\2\2\u029d"+
- "\u0298\3\2\2\2\u029d\u029a\3\2\2\2\u029e\u00c2\3\2\2\2\u029f\u02a6\t\26"+
- "\2\2\u02a0\u02a1\n\23\2\2\u02a1\u02a6\6b\4\2\u02a2\u02a3\t\24\2\2\u02a3"+
- "\u02a4\t\25\2\2\u02a4\u02a6\6b\5\2\u02a5\u029f\3\2\2\2\u02a5\u02a0\3\2"+
- "\2\2\u02a5\u02a2\3\2\2\2\u02a6\u00c4\3\2\2\2\u02a7\u02a9\t\27\2\2\u02a8"+
- "\u02a7\3\2\2\2\u02a9\u02aa\3\2\2\2\u02aa\u02a8\3\2\2\2\u02aa\u02ab\3\2"+
- "\2\2\u02ab\u02ac\3\2\2\2\u02ac\u02ad\bc\2\2\u02ad\u00c6\3\2\2\2\u02ae"+
- "\u02b2\7B\2\2\u02af\u02b0\5\u00c9e\2\u02b0\u02b1\7<\2\2\u02b1\u02b3\3"+
- "\2\2\2\u02b2\u02af\3\2\2\2\u02b2\u02b3\3\2\2\2\u02b3\u02b4\3\2\2\2\u02b4"+
- "\u02b5\5\u00cbf\2\u02b5\u02b6\7\61\2\2\u02b6\u02b7\5\u00bf`\2\u02b7\u00c8"+
- "\3\2\2\2\u02b8\u02b9\7c\2\2\u02b9\u02ba\7p\2\2\u02ba\u02bb\7f\2\2\u02bb"+
- "\u02bc\7t\2\2\u02bc\u02bd\7q\2\2\u02bd\u02be\7k\2\2\u02be\u02c1\7f\2\2"+
- "\u02bf\u02c1\5\u00bf`\2\u02c0\u02b8\3\2\2\2\u02c0\u02bf\3\2\2\2\u02c1"+
- "\u00ca\3\2\2\2\u02c2\u02c3\7c\2\2\u02c3\u02c4\7p\2\2\u02c4\u02c5\7k\2"+
- "\2\u02c5\u036f\7o\2\2\u02c6\u02c7\7c\2\2\u02c7\u02c8\7p\2\2\u02c8\u02c9"+
- "\7k\2\2\u02c9\u02ca\7o\2\2\u02ca\u02cb\7c\2\2\u02cb\u02cc\7v\2\2\u02cc"+
- "\u02cd\7q\2\2\u02cd\u036f\7t\2\2\u02ce\u02cf\7d\2\2\u02cf\u02d0\7q\2\2"+
- "\u02d0\u02d1\7q\2\2\u02d1\u036f\7n\2\2\u02d2\u02d3\7e\2\2\u02d3\u02d4"+
- "\7q\2\2\u02d4\u02d5\7n\2\2\u02d5\u02d6\7q\2\2\u02d6\u036f\7t\2\2\u02d7"+
- "\u02d8\7e\2\2\u02d8\u02d9\7q\2\2\u02d9\u02da\7n\2\2\u02da\u02db\7q\2\2"+
- "\u02db\u02dc\7t\2\2\u02dc\u02dd\7U\2\2\u02dd\u02de\7v\2\2\u02de\u02df"+
- "\7c\2\2\u02df\u02e0\7v\2\2\u02e0\u02e1\7g\2\2\u02e1\u02e2\7N\2\2\u02e2"+
- "\u02e3\7k\2\2\u02e3\u02e4\7u\2\2\u02e4\u036f\7v\2\2\u02e5\u02e6\7f\2\2"+
- "\u02e6\u02e7\7k\2\2\u02e7\u02e8\7o\2\2\u02e8\u02e9\7g\2\2\u02e9\u036f"+
- "\7p\2\2\u02ea\u02eb\7f\2\2\u02eb\u02ec\7k\2\2\u02ec\u02ed\7o\2\2\u02ed"+
- "\u02ee\7g\2\2\u02ee\u02ef\7p\2\2\u02ef\u02f0\7Q\2\2\u02f0\u02f1\7h\2\2"+
- "\u02f1\u02f2\7h\2\2\u02f2\u02f3\7u\2\2\u02f3\u02f4\7g\2\2\u02f4\u036f"+
- "\7v\2\2\u02f5\u02f6\7f\2\2\u02f6\u02f7\7k\2\2\u02f7\u02f8\7o\2\2\u02f8"+
- "\u02f9\7g\2\2\u02f9\u02fa\7p\2\2\u02fa\u02fb\7U\2\2\u02fb\u02fc\7k\2\2"+
- "\u02fc\u02fd\7|\2\2\u02fd\u036f\7g\2\2\u02fe\u02ff\7f\2\2\u02ff\u0300"+
- "\7t\2\2\u0300\u0301\7c\2\2\u0301\u0302\7y\2\2\u0302\u0303\7c\2\2\u0303"+
- "\u0304\7d\2\2\u0304\u0305\7n\2\2\u0305\u036f\7g\2\2\u0306\u0307\7h\2\2"+
- "\u0307\u0308\7t\2\2\u0308\u0309\7c\2\2\u0309\u030a\7e\2\2\u030a\u030b"+
- "\7v\2\2\u030b\u030c\7k\2\2\u030c\u030d\7q\2\2\u030d\u036f\7p\2\2\u030e"+
- "\u030f\7k\2\2\u030f\u036f\7f\2\2\u0310\u0311\7k\2\2\u0311\u0312\7p\2\2"+
- "\u0312\u0313\7v\2\2\u0313\u0314\7g\2\2\u0314\u0315\7i\2\2\u0315\u0316"+
- "\7g\2\2\u0316\u036f\7t\2\2\u0317\u0318\7k\2\2\u0318\u0319\7p\2\2\u0319"+
- "\u031a\7v\2\2\u031a\u031b\7C\2\2\u031b\u031c\7t\2\2\u031c\u031d\7t\2\2"+
- "\u031d\u031e\7c\2\2\u031e\u036f\7{\2\2\u031f\u0320\7k\2\2\u0320\u0321"+
- "\7p\2\2\u0321\u0322\7v\2\2\u0322\u0323\7g\2\2\u0323\u0324\7t\2\2\u0324"+
- "\u0325\7r\2\2\u0325\u0326\7q\2\2\u0326\u0327\7n\2\2\u0327\u0328\7c\2\2"+
- "\u0328\u0329\7v\2\2\u0329\u032a\7q\2\2\u032a\u036f\7t\2\2\u032b\u032c"+
- "\7n\2\2\u032c\u032d\7c\2\2\u032d\u032e\7{\2\2\u032e\u032f\7q\2\2\u032f"+
- "\u0330\7w\2\2\u0330\u036f\7v\2\2\u0331\u0332\7r\2\2\u0332\u0333\7n\2\2"+
- "\u0333\u0334\7w\2\2\u0334\u0335\7t\2\2\u0335\u0336\7c\2\2\u0336\u0337"+
- "\7n\2\2\u0337\u036f\7u\2\2\u0338\u0339\7u\2\2\u0339\u033a\7v\2\2\u033a"+
- "\u033b\7c\2\2\u033b\u033c\7v\2\2\u033c\u033d\7g\2\2\u033d\u033e\7N\2\2"+
- "\u033e\u033f\7k\2\2\u033f\u0340\7u\2\2\u0340\u0341\7v\2\2\u0341\u0342"+
- "\7C\2\2\u0342\u0343\7p\2\2\u0343\u0344\7k\2\2\u0344\u0345\7o\2\2\u0345"+
- "\u0346\7c\2\2\u0346\u0347\7v\2\2\u0347\u0348\7q\2\2\u0348\u036f\7t\2\2"+
- "\u0349\u034a\7u\2\2\u034a\u034b\7v\2\2\u034b\u034c\7t\2\2\u034c\u034d"+
- "\7k\2\2\u034d\u034e\7p\2\2\u034e\u036f\7i\2\2\u034f\u0350\7u\2\2\u0350"+
- "\u0351\7v\2\2\u0351\u0352\7t\2\2\u0352\u0353\7k\2\2\u0353\u0354\7p\2\2"+
- "\u0354\u0355\7i\2\2\u0355\u0356\7C\2\2\u0356\u0357\7t\2\2\u0357\u0358"+
- "\7t\2\2\u0358\u0359\7c\2\2\u0359\u036f\7{\2\2\u035a\u035b\7v\2\2\u035b"+
- "\u035c\7t\2\2\u035c\u035d\7c\2\2\u035d\u035e\7p\2\2\u035e\u035f\7u\2\2"+
- "\u035f\u0360\7k\2\2\u0360\u0361\7v\2\2\u0361\u0362\7k\2\2\u0362\u0363"+
- "\7q\2\2\u0363\u036f\7p\2\2\u0364\u0365\7v\2\2\u0365\u0366\7{\2\2\u0366"+
- "\u0367\7r\2\2\u0367\u0368\7g\2\2\u0368\u0369\7f\2\2\u0369\u036a\7C\2\2"+
- "\u036a\u036b\7t\2\2\u036b\u036c\7t\2\2\u036c\u036d\7c\2\2\u036d\u036f"+
- "\7{\2\2\u036e\u02c2\3\2\2\2\u036e\u02c6\3\2\2\2\u036e\u02ce\3\2\2\2\u036e"+
- "\u02d2\3\2\2\2\u036e\u02d7\3\2\2\2\u036e\u02e5\3\2\2\2\u036e\u02ea\3\2"+
- "\2\2\u036e\u02f5\3\2\2\2\u036e\u02fe\3\2\2\2\u036e\u0306\3\2\2\2\u036e"+
- "\u030e\3\2\2\2\u036e\u0310\3\2\2\2\u036e\u0317\3\2\2\2\u036e\u031f\3\2"+
- "\2\2\u036e\u032b\3\2\2\2\u036e\u0331\3\2\2\2\u036e\u0338\3\2\2\2\u036e"+
- "\u0349\3\2\2\2\u036e\u034f\3\2\2\2\u036e\u035a\3\2\2\2\u036e\u0364\3\2"+
- "\2\2\u036f\u00cc\3\2\2\28\2\u0179\u017f\u0183\u0187\u018b\u018f\u0196"+
- "\u019b\u019d\u01a3\u01a7\u01ab\u01b1\u01b6\u01c0\u01c4\u01ca\u01ce\u01d6"+
- "\u01da\u01e0\u01ea\u01ee\u01f4\u01f8\u01fd\u0200\u0203\u0208\u020b\u0210"+
- "\u0215\u021d\u0228\u022c\u0231\u0235\u0245\u024f\u0257\u025e\u0265\u0269"+
- "\u026d\u0273\u0280\u0294\u029d\u02a5\u02aa\u02b2\u02c0\u036e\3\b\2\2";
+ "\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\5f\u036f\nf\2\2g\3\3\5\4\7"+
+ "\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22"+
+ "#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C"+
+ "#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\2c\2e\2g\2i\2k\2m\2o\2q\2s\2u\2w\2"+
+ "y\2{\2}\2\177\2\u0081\2\u0083\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d"+
+ "\2\u008f\62\u0091\2\u0093\2\u0095\2\u0097\2\u0099\2\u009b\2\u009d\2\u009f"+
+ "\2\u00a1\2\u00a3\2\u00a5\63\u00a7\64\u00a9\2\u00ab\65\u00ad\66\u00af\2"+
+ "\u00b1\2\u00b3\2\u00b5\2\u00b7\2\u00b9\2\u00bb\2\u00bd\67\u00bf8\u00c1"+
+ "\2\u00c3\2\u00c59\u00c7:\u00c9;\u00cb<\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz"+
+ "\5\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2"+
+ "RRrr\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\"\"\u0395\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\2"+
+ "O\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]\3\2\2\2\2_\3\2\2\2\2\u008f\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3"+
+ "\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2"+
+ "\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\3\u00cd"+
+ "\3\2\2\2\5\u00cf\3\2\2\2\7\u00d7\3\2\2\2\t\u00d9\3\2\2\2\13\u00dc\3\2"+
+ "\2\2\r\u00de\3\2\2\2\17\u00e0\3\2\2\2\21\u00e2\3\2\2\2\23\u00e5\3\2\2"+
+ "\2\25\u00e7\3\2\2\2\27\u00e9\3\2\2\2\31\u00eb\3\2\2\2\33\u00ed\3\2\2\2"+
+ "\35\u00ef\3\2\2\2\37\u00f1\3\2\2\2!\u00f3\3\2\2\2#\u00f5\3\2\2\2%\u00f7"+
+ "\3\2\2\2\'\u00fa\3\2\2\2)\u00fe\3\2\2\2+\u0101\3\2\2\2-\u0104\3\2\2\2"+
+ "/\u0107\3\2\2\2\61\u0109\3\2\2\2\63\u010b\3\2\2\2\65\u0116\3\2\2\2\67"+
+ "\u0119\3\2\2\29\u011c\3\2\2\2;\u011e\3\2\2\2=\u0120\3\2\2\2?\u0122\3\2"+
+ "\2\2A\u0125\3\2\2\2C\u0128\3\2\2\2E\u012a\3\2\2\2G\u012c\3\2\2\2I\u012f"+
+ "\3\2\2\2K\u0135\3\2\2\2M\u013d\3\2\2\2O\u0142\3\2\2\2Q\u0147\3\2\2\2S"+
+ "\u014d\3\2\2\2U\u0151\3\2\2\2W\u0156\3\2\2\2Y\u015c\3\2\2\2[\u0163\3\2"+
+ "\2\2]\u0179\3\2\2\2_\u017f\3\2\2\2a\u0181\3\2\2\2c\u0185\3\2\2\2e\u0189"+
+ "\3\2\2\2g\u018d\3\2\2\2i\u0191\3\2\2\2k\u019d\3\2\2\2m\u019f\3\2\2\2o"+
+ "\u01ab\3\2\2\2q\u01ad\3\2\2\2s\u01b1\3\2\2\2u\u01b4\3\2\2\2w\u01b8\3\2"+
+ "\2\2y\u01bc\3\2\2\2{\u01c6\3\2\2\2}\u01ca\3\2\2\2\177\u01cc\3\2\2\2\u0081"+
+ "\u01d2\3\2\2\2\u0083\u01dc\3\2\2\2\u0085\u01e0\3\2\2\2\u0087\u01e2\3\2"+
+ "\2\2\u0089\u01e6\3\2\2\2\u008b\u01f0\3\2\2\2\u008d\u01f4\3\2\2\2\u008f"+
+ "\u01f8\3\2\2\2\u0091\u0215\3\2\2\2\u0093\u0217\3\2\2\2\u0095\u021a\3\2"+
+ "\2\2\u0097\u021d\3\2\2\2\u0099\u0221\3\2\2\2\u009b\u0223\3\2\2\2\u009d"+
+ "\u0225\3\2\2\2\u009f\u0235\3\2\2\2\u00a1\u0237\3\2\2\2\u00a3\u023a\3\2"+
+ "\2\2\u00a5\u0245\3\2\2\2\u00a7\u024f\3\2\2\2\u00a9\u0251\3\2\2\2\u00ab"+
+ "\u0253\3\2\2\2\u00ad\u025c\3\2\2\2\u00af\u0263\3\2\2\2\u00b1\u0269\3\2"+
+ "\2\2\u00b3\u026d\3\2\2\2\u00b5\u0273\3\2\2\2\u00b7\u0280\3\2\2\2\u00b9"+
+ "\u0282\3\2\2\2\u00bb\u0289\3\2\2\2\u00bd\u028b\3\2\2\2\u00bf\u0290\3\2"+
+ "\2\2\u00c1\u029d\3\2\2\2\u00c3\u02a5\3\2\2\2\u00c5\u02a8\3\2\2\2\u00c7"+
+ "\u02ae\3\2\2\2\u00c9\u02c0\3\2\2\2\u00cb\u036e\3\2\2\2\u00cd\u00ce\7."+
+ "\2\2\u00ce\4\3\2\2\2\u00cf\u00d0\7f\2\2\u00d0\u00d1\7g\2\2\u00d1\u00d2"+
+ "\7h\2\2\u00d2\u00d3\7c\2\2\u00d3\u00d4\7w\2\2\u00d4\u00d5\7n\2\2\u00d5"+
+ "\u00d6\7v\2\2\u00d6\6\3\2\2\2\u00d7\u00d8\7?\2\2\u00d8\b\3\2\2\2\u00d9"+
+ "\u00da\7/\2\2\u00da\u00db\7@\2\2\u00db\n\3\2\2\2\u00dc\u00dd\7*\2\2\u00dd"+
+ "\f\3\2\2\2\u00de\u00df\7+\2\2\u00df\16\3\2\2\2\u00e0\u00e1\7\60\2\2\u00e1"+
+ "\20\3\2\2\2\u00e2\u00e3\7<\2\2\u00e3\u00e4\7<\2\2\u00e4\22\3\2\2\2\u00e5"+
+ "\u00e6\7]\2\2\u00e6\24\3\2\2\2\u00e7\u00e8\7_\2\2\u00e8\26\3\2\2\2\u00e9"+
+ "\u00ea\7-\2\2\u00ea\30\3\2\2\2\u00eb\u00ec\7/\2\2\u00ec\32\3\2\2\2\u00ed"+
+ "\u00ee\7\u0080\2\2\u00ee\34\3\2\2\2\u00ef\u00f0\7#\2\2\u00f0\36\3\2\2"+
+ "\2\u00f1\u00f2\7,\2\2\u00f2 \3\2\2\2\u00f3\u00f4\7\61\2\2\u00f4\"\3\2"+
+ "\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\u00fd"+
+ "\7@\2\2\u00fd(\3\2\2\2\u00fe\u00ff\7@\2\2\u00ff\u0100\7@\2\2\u0100*\3"+
+ "\2\2\2\u0101\u0102\7>\2\2\u0102\u0103\7?\2\2\u0103,\3\2\2\2\u0104\u0105"+
+ "\7@\2\2\u0105\u0106\7?\2\2\u0106.\3\2\2\2\u0107\u0108\7@\2\2\u0108\60"+
+ "\3\2\2\2\u0109\u010a\7>\2\2\u010a\62\3\2\2\2\u010b\u010c\7k\2\2\u010c"+
+ "\u010d\7p\2\2\u010d\u010e\7u\2\2\u010e\u010f\7v\2\2\u010f\u0110\7c\2\2"+
+ "\u0110\u0111\7p\2\2\u0111\u0112\7e\2\2\u0112\u0113\7g\2\2\u0113\u0114"+
+ "\7q\2\2\u0114\u0115\7h\2\2\u0115\64\3\2\2\2\u0116\u0117\7?\2\2\u0117\u0118"+
+ "\7?\2\2\u0118\66\3\2\2\2\u0119\u011a\7#\2\2\u011a\u011b\7?\2\2\u011b8"+
+ "\3\2\2\2\u011c\u011d\7(\2\2\u011d:\3\2\2\2\u011e\u011f\7`\2\2\u011f<\3"+
+ "\2\2\2\u0120\u0121\7~\2\2\u0121>\3\2\2\2\u0122\u0123\7(\2\2\u0123\u0124"+
+ "\7(\2\2\u0124@\3\2\2\2\u0125\u0126\7~\2\2\u0126\u0127\7~\2\2\u0127B\3"+
+ "\2\2\2\u0128\u0129\7A\2\2\u0129D\3\2\2\2\u012a\u012b\7<\2\2\u012bF\3\2"+
+ "\2\2\u012c\u012d\7A\2\2\u012d\u012e\7A\2\2\u012eH\3\2\2\2\u012f\u0130"+
+ "\7e\2\2\u0130\u0131\7n\2\2\u0131\u0132\7c\2\2\u0132\u0133\7u\2\2\u0133"+
+ "\u0134\7u\2\2\u0134J\3\2\2\2\u0135\u0136\7d\2\2\u0136\u0137\7q\2\2\u0137"+
+ "\u0138\7q\2\2\u0138\u0139\7n\2\2\u0139\u013a\7g\2\2\u013a\u013b\7c\2\2"+
+ "\u013b\u013c\7p\2\2\u013cL\3\2\2\2\u013d\u013e\7e\2\2\u013e\u013f\7j\2"+
+ "\2\u013f\u0140\7c\2\2\u0140\u0141\7t\2\2\u0141N\3\2\2\2\u0142\u0143\7"+
+ "d\2\2\u0143\u0144\7{\2\2\u0144\u0145\7v\2\2\u0145\u0146\7g\2\2\u0146P"+
+ "\3\2\2\2\u0147\u0148\7u\2\2\u0148\u0149\7j\2\2\u0149\u014a\7q\2\2\u014a"+
+ "\u014b\7t\2\2\u014b\u014c\7v\2\2\u014cR\3\2\2\2\u014d\u014e\7k\2\2\u014e"+
+ "\u014f\7p\2\2\u014f\u0150\7v\2\2\u0150T\3\2\2\2\u0151\u0152\7n\2\2\u0152"+
+ "\u0153\7q\2\2\u0153\u0154\7p\2\2\u0154\u0155\7i\2\2\u0155V\3\2\2\2\u0156"+
+ "\u0157\7h\2\2\u0157\u0158\7n\2\2\u0158\u0159\7q\2\2\u0159\u015a\7c\2\2"+
+ "\u015a\u015b\7v\2\2\u015bX\3\2\2\2\u015c\u015d\7f\2\2\u015d\u015e\7q\2"+
+ "\2\u015e\u015f\7w\2\2\u015f\u0160\7d\2\2\u0160\u0161\7n\2\2\u0161\u0162"+
+ "\7g\2\2\u0162Z\3\2\2\2\u0163\u0164\7v\2\2\u0164\u0165\7j\2\2\u0165\u0166"+
+ "\7k\2\2\u0166\u0167\7u\2\2\u0167\\\3\2\2\2\u0168\u0169\7X\2\2\u0169\u016a"+
+ "\7q\2\2\u016a\u016b\7k\2\2\u016b\u017a\7f\2\2\u016c\u016d\7x\2\2\u016d"+
+ "\u016e\7q\2\2\u016e\u016f\7k\2\2\u016f\u017a\7f\2\2\u0170\u0171\7\u00b1"+
+ "\2\2\u0171\u0172\7^\2\2\u0172\u0173\7a\2\2\u0173\u0174\7*\2\2\u0174\u0175"+
+ "\7\u30c6\2\2\u0175\u0176\7+\2\2\u0176\u0177\7a\2\2\u0177\u0178\7\61\2"+
+ "\2\u0178\u017a\7\u00b1\2\2\u0179\u0168\3\2\2\2\u0179\u016c\3\2\2\2\u0179"+
+ "\u0170\3\2\2\2\u017a^\3\2\2\2\u017b\u0180\5a\61\2\u017c\u0180\5c\62\2"+
+ "\u017d\u0180\5e\63\2\u017e\u0180\5g\64\2\u017f\u017b\3\2\2\2\u017f\u017c"+
+ "\3\2\2\2\u017f\u017d\3\2\2\2\u017f\u017e\3\2\2\2\u0180`\3\2\2\2\u0181"+
+ "\u0183\5k\66\2\u0182\u0184\5i\65\2\u0183\u0182\3\2\2\2\u0183\u0184\3\2"+
+ "\2\2\u0184b\3\2\2\2\u0185\u0187\5w<\2\u0186\u0188\5i\65\2\u0187\u0186"+
+ "\3\2\2\2\u0187\u0188\3\2\2\2\u0188d\3\2\2\2\u0189\u018b\5\177@\2\u018a"+
+ "\u018c\5i\65\2\u018b\u018a\3\2\2\2\u018b\u018c\3\2\2\2\u018cf\3\2\2\2"+
+ "\u018d\u018f\5\u0087D\2\u018e\u0190\5i\65\2\u018f\u018e\3\2\2\2\u018f"+
+ "\u0190\3\2\2\2\u0190h\3\2\2\2\u0191\u0192\t\2\2\2\u0192j\3\2\2\2\u0193"+
+ "\u019e\7\62\2\2\u0194\u019b\5q9\2\u0195\u0197\5m\67\2\u0196\u0195\3\2"+
+ "\2\2\u0196\u0197\3\2\2\2\u0197\u019c\3\2\2\2\u0198\u0199\5u;\2\u0199\u019a"+
+ "\5m\67\2\u019a\u019c\3\2\2\2\u019b\u0196\3\2\2\2\u019b\u0198\3\2\2\2\u019c"+
+ "\u019e\3\2\2\2\u019d\u0193\3\2\2\2\u019d\u0194\3\2\2\2\u019el\3\2\2\2"+
+ "\u019f\u01a7\5o8\2\u01a0\u01a2\5s:\2\u01a1\u01a0\3\2\2\2\u01a2\u01a5\3"+
+ "\2\2\2\u01a3\u01a1\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01a6\3\2\2\2\u01a5"+
+ "\u01a3\3\2\2\2\u01a6\u01a8\5o8\2\u01a7\u01a3\3\2\2\2\u01a7\u01a8\3\2\2"+
+ "\2\u01a8n\3\2\2\2\u01a9\u01ac\7\62\2\2\u01aa\u01ac\5q9\2\u01ab\u01a9\3"+
+ "\2\2\2\u01ab\u01aa\3\2\2\2\u01acp\3\2\2\2\u01ad\u01ae\t\3\2\2\u01aer\3"+
+ "\2\2\2\u01af\u01b2\5o8\2\u01b0\u01b2\7a\2\2\u01b1\u01af\3\2\2\2\u01b1"+
+ "\u01b0\3\2\2\2\u01b2t\3\2\2\2\u01b3\u01b5\7a\2\2\u01b4\u01b3\3\2\2\2\u01b5"+
+ "\u01b6\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b6\u01b7\3\2\2\2\u01b7v\3\2\2\2"+
+ "\u01b8\u01b9\7\62\2\2\u01b9\u01ba\t\4\2\2\u01ba\u01bb\5y=\2\u01bbx\3\2"+
+ "\2\2\u01bc\u01c4\5{>\2\u01bd\u01bf\5}?\2\u01be\u01bd\3\2\2\2\u01bf\u01c2"+
+ "\3\2\2\2\u01c0\u01be\3\2\2\2\u01c0\u01c1\3\2\2\2\u01c1\u01c3\3\2\2\2\u01c2"+
+ "\u01c0\3\2\2\2\u01c3\u01c5\5{>\2\u01c4\u01c0\3\2\2\2\u01c4\u01c5\3\2\2"+
+ "\2\u01c5z\3\2\2\2\u01c6\u01c7\t\5\2\2\u01c7|\3\2\2\2\u01c8\u01cb\5{>\2"+
+ "\u01c9\u01cb\7a\2\2\u01ca\u01c8\3\2\2\2\u01ca\u01c9\3\2\2\2\u01cb~\3\2"+
+ "\2\2\u01cc\u01ce\7\62\2\2\u01cd\u01cf\5u;\2\u01ce\u01cd\3\2\2\2\u01ce"+
+ "\u01cf\3\2\2\2\u01cf\u01d0\3\2\2\2\u01d0\u01d1\5\u0081A\2\u01d1\u0080"+
+ "\3\2\2\2\u01d2\u01da\5\u0083B\2\u01d3\u01d5\5\u0085C\2\u01d4\u01d3\3\2"+
+ "\2\2\u01d5\u01d8\3\2\2\2\u01d6\u01d4\3\2\2\2\u01d6\u01d7\3\2\2\2\u01d7"+
+ "\u01d9\3\2\2\2\u01d8\u01d6\3\2\2\2\u01d9\u01db\5\u0083B\2\u01da\u01d6"+
+ "\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u0082\3\2\2\2\u01dc\u01dd\t\6\2\2\u01dd"+
+ "\u0084\3\2\2\2\u01de\u01e1\5\u0083B\2\u01df\u01e1\7a\2\2\u01e0\u01de\3"+
+ "\2\2\2\u01e0\u01df\3\2\2\2\u01e1\u0086\3\2\2\2\u01e2\u01e3\7\62\2\2\u01e3"+
+ "\u01e4\t\7\2\2\u01e4\u01e5\5\u0089E\2\u01e5\u0088\3\2\2\2\u01e6\u01ee"+
+ "\5\u008bF\2\u01e7\u01e9\5\u008dG\2\u01e8\u01e7\3\2\2\2\u01e9\u01ec\3\2"+
+ "\2\2\u01ea\u01e8\3\2\2\2\u01ea\u01eb\3\2\2\2\u01eb\u01ed\3\2\2\2\u01ec"+
+ "\u01ea\3\2\2\2\u01ed\u01ef\5\u008bF\2\u01ee\u01ea\3\2\2\2\u01ee\u01ef"+
+ "\3\2\2\2\u01ef\u008a\3\2\2\2\u01f0\u01f1\t\b\2\2\u01f1\u008c\3\2\2\2\u01f2"+
+ "\u01f5\5\u008bF\2\u01f3\u01f5\7a\2\2\u01f4\u01f2\3\2\2\2\u01f4\u01f3\3"+
+ "\2\2\2\u01f5\u008e\3\2\2\2\u01f6\u01f9\5\u0091I\2\u01f7\u01f9\5\u009d"+
+ "O\2\u01f8\u01f6\3\2\2\2\u01f8\u01f7\3\2\2\2\u01f9\u0090\3\2\2\2\u01fa"+
+ "\u01fb\5m\67\2\u01fb\u01fd\7\60\2\2\u01fc\u01fe\5m\67\2\u01fd\u01fc\3"+
+ "\2\2\2\u01fd\u01fe\3\2\2\2\u01fe\u0200\3\2\2\2\u01ff\u0201\5\u0093J\2"+
+ "\u0200\u01ff\3\2\2\2\u0200\u0201\3\2\2\2\u0201\u0203\3\2\2\2\u0202\u0204"+
+ "\5\u009bN\2\u0203\u0202\3\2\2\2\u0203\u0204\3\2\2\2\u0204\u0216\3\2\2"+
+ "\2\u0205\u0206\7\60\2\2\u0206\u0208\5m\67\2\u0207\u0209\5\u0093J\2\u0208"+
+ "\u0207\3\2\2\2\u0208\u0209\3\2\2\2\u0209\u020b\3\2\2\2\u020a\u020c\5\u009b"+
+ "N\2\u020b\u020a\3\2\2\2\u020b\u020c\3\2\2\2\u020c\u0216\3\2\2\2\u020d"+
+ "\u020e\5m\67\2\u020e\u0210\5\u0093J\2\u020f\u0211\5\u009bN\2\u0210\u020f"+
+ "\3\2\2\2\u0210\u0211\3\2\2\2\u0211\u0216\3\2\2\2\u0212\u0213\5m\67\2\u0213"+
+ "\u0214\5\u009bN\2\u0214\u0216\3\2\2\2\u0215\u01fa\3\2\2\2\u0215\u0205"+
+ "\3\2\2\2\u0215\u020d\3\2\2\2\u0215\u0212\3\2\2\2\u0216\u0092\3\2\2\2\u0217"+
+ "\u0218\5\u0095K\2\u0218\u0219\5\u0097L\2\u0219\u0094\3\2\2\2\u021a\u021b"+
+ "\t\t\2\2\u021b\u0096\3\2\2\2\u021c\u021e\5\u0099M\2\u021d\u021c\3\2\2"+
+ "\2\u021d\u021e\3\2\2\2\u021e\u021f\3\2\2\2\u021f\u0220\5m\67\2\u0220\u0098"+
+ "\3\2\2\2\u0221\u0222\t\n\2\2\u0222\u009a\3\2\2\2\u0223\u0224\t\13\2\2"+
+ "\u0224\u009c\3\2\2\2\u0225\u0226\5\u009fP\2\u0226\u0228\5\u00a1Q\2\u0227"+
+ "\u0229\5\u009bN\2\u0228\u0227\3\2\2\2\u0228\u0229\3\2\2\2\u0229\u009e"+
+ "\3\2\2\2\u022a\u022c\5w<\2\u022b\u022d\7\60\2\2\u022c\u022b\3\2\2\2\u022c"+
+ "\u022d\3\2\2\2\u022d\u0236\3\2\2\2\u022e\u022f\7\62\2\2\u022f\u0231\t"+
+ "\4\2\2\u0230\u0232\5y=\2\u0231\u0230\3\2\2\2\u0231\u0232\3\2\2\2\u0232"+
+ "\u0233\3\2\2\2\u0233\u0234\7\60\2\2\u0234\u0236\5y=\2\u0235\u022a\3\2"+
+ "\2\2\u0235\u022e\3\2\2\2\u0236\u00a0\3\2\2\2\u0237\u0238\5\u00a3R\2\u0238"+
+ "\u0239\5\u0097L\2\u0239\u00a2\3\2\2\2\u023a\u023b\t\f\2\2\u023b\u00a4"+
+ "\3\2\2\2\u023c\u023d\7v\2\2\u023d\u023e\7t\2\2\u023e\u023f\7w\2\2\u023f"+
+ "\u0246\7g\2\2\u0240\u0241\7h\2\2\u0241\u0242\7c\2\2\u0242\u0243\7n\2\2"+
+ "\u0243\u0244\7u\2\2\u0244\u0246\7g\2\2\u0245\u023c\3\2\2\2\u0245\u0240"+
+ "\3\2\2\2\u0246\u00a6\3\2\2\2\u0247\u0248\7)\2\2\u0248\u0249\5\u00a9U\2"+
+ "\u0249\u024a\7)\2\2\u024a\u0250\3\2\2\2\u024b\u024c\7)\2\2\u024c\u024d"+
+ "\5\u00b5[\2\u024d\u024e\7)\2\2\u024e\u0250\3\2\2\2\u024f\u0247\3\2\2\2"+
+ "\u024f\u024b\3\2\2\2\u0250\u00a8\3\2\2\2\u0251\u0252\n\r\2\2\u0252\u00aa"+
+ "\3\2\2\2\u0253\u0257\7b\2\2\u0254\u0256\5\u00b3Z\2\u0255\u0254\3\2\2\2"+
+ "\u0256\u0259\3\2\2\2\u0257\u0255\3\2\2\2\u0257\u0258\3\2\2\2\u0258\u025a"+
+ "\3\2\2\2\u0259\u0257\3\2\2\2\u025a\u025b\7b\2\2\u025b\u00ac\3\2\2\2\u025c"+
+ "\u025e\7$\2\2\u025d\u025f\5\u00afX\2\u025e\u025d\3\2\2\2\u025e\u025f\3"+
+ "\2\2\2\u025f\u0260\3\2\2\2\u0260\u0261\7$\2\2\u0261\u00ae\3\2\2\2\u0262"+
+ "\u0264\5\u00b1Y\2\u0263\u0262\3\2\2\2\u0264\u0265\3\2\2\2\u0265\u0263"+
+ "\3\2\2\2\u0265\u0266\3\2\2\2\u0266\u00b0\3\2\2\2\u0267\u026a\n\16\2\2"+
+ "\u0268\u026a\5\u00b5[\2\u0269\u0267\3\2\2\2\u0269\u0268\3\2\2\2\u026a"+
+ "\u00b2\3\2\2\2\u026b\u026e\n\17\2\2\u026c\u026e\5\u00b5[\2\u026d\u026b"+
+ "\3\2\2\2\u026d\u026c\3\2\2\2\u026e\u00b4\3\2\2\2\u026f\u0270\7^\2\2\u0270"+
+ "\u0274\t\20\2\2\u0271\u0274\5\u00b7\\\2\u0272\u0274\5\u00b9]\2\u0273\u026f"+
+ "\3\2\2\2\u0273\u0271\3\2\2\2\u0273\u0272\3\2\2\2\u0274\u00b6\3\2\2\2\u0275"+
+ "\u0276\7^\2\2\u0276\u0281\5\u0083B\2\u0277\u0278\7^\2\2\u0278\u0279\5"+
+ "\u0083B\2\u0279\u027a\5\u0083B\2\u027a\u0281\3\2\2\2\u027b\u027c\7^\2"+
+ "\2\u027c\u027d\5\u00bb^\2\u027d\u027e\5\u0083B\2\u027e\u027f\5\u0083B"+
+ "\2\u027f\u0281\3\2\2\2\u0280\u0275\3\2\2\2\u0280\u0277\3\2\2\2\u0280\u027b"+
+ "\3\2\2\2\u0281\u00b8\3\2\2\2\u0282\u0283\7^\2\2\u0283\u0284\7w\2\2\u0284"+
+ "\u0285\5{>\2\u0285\u0286\5{>\2\u0286\u0287\5{>\2\u0287\u0288\5{>\2\u0288"+
+ "\u00ba\3\2\2\2\u0289\u028a\t\21\2\2\u028a\u00bc\3\2\2\2\u028b\u028c\7"+
+ "p\2\2\u028c\u028d\7w\2\2\u028d\u028e\7n\2\2\u028e\u028f\7n\2\2\u028f\u00be"+
+ "\3\2\2\2\u0290\u0294\5\u00c1a\2\u0291\u0293\5\u00c3b\2\u0292\u0291\3\2"+
+ "\2\2\u0293\u0296\3\2\2\2\u0294\u0292\3\2\2\2\u0294\u0295\3\2\2\2\u0295"+
+ "\u00c0\3\2\2\2\u0296\u0294\3\2\2\2\u0297\u029e\t\22\2\2\u0298\u0299\n"+
+ "\23\2\2\u0299\u029e\6a\2\2\u029a\u029b\t\24\2\2\u029b\u029c\t\25\2\2\u029c"+
+ "\u029e\6a\3\2\u029d\u0297\3\2\2\2\u029d\u0298\3\2\2\2\u029d\u029a\3\2"+
+ "\2\2\u029e\u00c2\3\2\2\2\u029f\u02a6\t\26\2\2\u02a0\u02a1\n\23\2\2\u02a1"+
+ "\u02a6\6b\4\2\u02a2\u02a3\t\24\2\2\u02a3\u02a4\t\25\2\2\u02a4\u02a6\6"+
+ "b\5\2\u02a5\u029f\3\2\2\2\u02a5\u02a0\3\2\2\2\u02a5\u02a2\3\2\2\2\u02a6"+
+ "\u00c4\3\2\2\2\u02a7\u02a9\t\27\2\2\u02a8\u02a7\3\2\2\2\u02a9\u02aa\3"+
+ "\2\2\2\u02aa\u02a8\3\2\2\2\u02aa\u02ab\3\2\2\2\u02ab\u02ac\3\2\2\2\u02ac"+
+ "\u02ad\bc\2\2\u02ad\u00c6\3\2\2\2\u02ae\u02b2\7B\2\2\u02af\u02b0\5\u00c9"+
+ "e\2\u02b0\u02b1\7<\2\2\u02b1\u02b3\3\2\2\2\u02b2\u02af\3\2\2\2\u02b2\u02b3"+
+ "\3\2\2\2\u02b3\u02b4\3\2\2\2\u02b4\u02b5\5\u00cbf\2\u02b5\u02b6\7\61\2"+
+ "\2\u02b6\u02b7\5\u00bf`\2\u02b7\u00c8\3\2\2\2\u02b8\u02b9\7c\2\2\u02b9"+
+ "\u02ba\7p\2\2\u02ba\u02bb\7f\2\2\u02bb\u02bc\7t\2\2\u02bc\u02bd\7q\2\2"+
+ "\u02bd\u02be\7k\2\2\u02be\u02c1\7f\2\2\u02bf\u02c1\5\u00bf`\2\u02c0\u02b8"+
+ "\3\2\2\2\u02c0\u02bf\3\2\2\2\u02c1\u00ca\3\2\2\2\u02c2\u02c3\7c\2\2\u02c3"+
+ "\u02c4\7p\2\2\u02c4\u02c5\7k\2\2\u02c5\u036f\7o\2\2\u02c6\u02c7\7c\2\2"+
+ "\u02c7\u02c8\7p\2\2\u02c8\u02c9\7k\2\2\u02c9\u02ca\7o\2\2\u02ca\u02cb"+
+ "\7c\2\2\u02cb\u02cc\7v\2\2\u02cc\u02cd\7q\2\2\u02cd\u036f\7t\2\2\u02ce"+
+ "\u02cf\7d\2\2\u02cf\u02d0\7q\2\2\u02d0\u02d1\7q\2\2\u02d1\u036f\7n\2\2"+
+ "\u02d2\u02d3\7e\2\2\u02d3\u02d4\7q\2\2\u02d4\u02d5\7n\2\2\u02d5\u02d6"+
+ "\7q\2\2\u02d6\u036f\7t\2\2\u02d7\u02d8\7e\2\2\u02d8\u02d9\7q\2\2\u02d9"+
+ "\u02da\7n\2\2\u02da\u02db\7q\2\2\u02db\u02dc\7t\2\2\u02dc\u02dd\7U\2\2"+
+ "\u02dd\u02de\7v\2\2\u02de\u02df\7c\2\2\u02df\u02e0\7v\2\2\u02e0\u02e1"+
+ "\7g\2\2\u02e1\u02e2\7N\2\2\u02e2\u02e3\7k\2\2\u02e3\u02e4\7u\2\2\u02e4"+
+ "\u036f\7v\2\2\u02e5\u02e6\7f\2\2\u02e6\u02e7\7k\2\2\u02e7\u02e8\7o\2\2"+
+ "\u02e8\u02e9\7g\2\2\u02e9\u036f\7p\2\2\u02ea\u02eb\7f\2\2\u02eb\u02ec"+
+ "\7k\2\2\u02ec\u02ed\7o\2\2\u02ed\u02ee\7g\2\2\u02ee\u02ef\7p\2\2\u02ef"+
+ "\u02f0\7Q\2\2\u02f0\u02f1\7h\2\2\u02f1\u02f2\7h\2\2\u02f2\u02f3\7u\2\2"+
+ "\u02f3\u02f4\7g\2\2\u02f4\u036f\7v\2\2\u02f5\u02f6\7f\2\2\u02f6\u02f7"+
+ "\7k\2\2\u02f7\u02f8\7o\2\2\u02f8\u02f9\7g\2\2\u02f9\u02fa\7p\2\2\u02fa"+
+ "\u02fb\7U\2\2\u02fb\u02fc\7k\2\2\u02fc\u02fd\7|\2\2\u02fd\u036f\7g\2\2"+
+ "\u02fe\u02ff\7f\2\2\u02ff\u0300\7t\2\2\u0300\u0301\7c\2\2\u0301\u0302"+
+ "\7y\2\2\u0302\u0303\7c\2\2\u0303\u0304\7d\2\2\u0304\u0305\7n\2\2\u0305"+
+ "\u036f\7g\2\2\u0306\u0307\7h\2\2\u0307\u0308\7t\2\2\u0308\u0309\7c\2\2"+
+ "\u0309\u030a\7e\2\2\u030a\u030b\7v\2\2\u030b\u030c\7k\2\2\u030c\u030d"+
+ "\7q\2\2\u030d\u036f\7p\2\2\u030e\u030f\7k\2\2\u030f\u036f\7f\2\2\u0310"+
+ "\u0311\7k\2\2\u0311\u0312\7p\2\2\u0312\u0313\7v\2\2\u0313\u0314\7g\2\2"+
+ "\u0314\u0315\7i\2\2\u0315\u0316\7g\2\2\u0316\u036f\7t\2\2\u0317\u0318"+
+ "\7k\2\2\u0318\u0319\7p\2\2\u0319\u031a\7v\2\2\u031a\u031b\7C\2\2\u031b"+
+ "\u031c\7t\2\2\u031c\u031d\7t\2\2\u031d\u031e\7c\2\2\u031e\u036f\7{\2\2"+
+ "\u031f\u0320\7k\2\2\u0320\u0321\7p\2\2\u0321\u0322\7v\2\2\u0322\u0323"+
+ "\7g\2\2\u0323\u0324\7t\2\2\u0324\u0325\7r\2\2\u0325\u0326\7q\2\2\u0326"+
+ "\u0327\7n\2\2\u0327\u0328\7c\2\2\u0328\u0329\7v\2\2\u0329\u032a\7q\2\2"+
+ "\u032a\u036f\7t\2\2\u032b\u032c\7n\2\2\u032c\u032d\7c\2\2\u032d\u032e"+
+ "\7{\2\2\u032e\u032f\7q\2\2\u032f\u0330\7w\2\2\u0330\u036f\7v\2\2\u0331"+
+ "\u0332\7r\2\2\u0332\u0333\7n\2\2\u0333\u0334\7w\2\2\u0334\u0335\7t\2\2"+
+ "\u0335\u0336\7c\2\2\u0336\u0337\7n\2\2\u0337\u036f\7u\2\2\u0338\u0339"+
+ "\7u\2\2\u0339\u033a\7v\2\2\u033a\u033b\7c\2\2\u033b\u033c\7v\2\2\u033c"+
+ "\u033d\7g\2\2\u033d\u033e\7N\2\2\u033e\u033f\7k\2\2\u033f\u0340\7u\2\2"+
+ "\u0340\u0341\7v\2\2\u0341\u0342\7C\2\2\u0342\u0343\7p\2\2\u0343\u0344"+
+ "\7k\2\2\u0344\u0345\7o\2\2\u0345\u0346\7c\2\2\u0346\u0347\7v\2\2\u0347"+
+ "\u0348\7q\2\2\u0348\u036f\7t\2\2\u0349\u034a\7u\2\2\u034a\u034b\7v\2\2"+
+ "\u034b\u034c\7t\2\2\u034c\u034d\7k\2\2\u034d\u034e\7p\2\2\u034e\u036f"+
+ "\7i\2\2\u034f\u0350\7u\2\2\u0350\u0351\7v\2\2\u0351\u0352\7t\2\2\u0352"+
+ "\u0353\7k\2\2\u0353\u0354\7p\2\2\u0354\u0355\7i\2\2\u0355\u0356\7C\2\2"+
+ "\u0356\u0357\7t\2\2\u0357\u0358\7t\2\2\u0358\u0359\7c\2\2\u0359\u036f"+
+ "\7{\2\2\u035a\u035b\7v\2\2\u035b\u035c\7t\2\2\u035c\u035d\7c\2\2\u035d"+
+ "\u035e\7p\2\2\u035e\u035f\7u\2\2\u035f\u0360\7k\2\2\u0360\u0361\7v\2\2"+
+ "\u0361\u0362\7k\2\2\u0362\u0363\7q\2\2\u0363\u036f\7p\2\2\u0364\u0365"+
+ "\7v\2\2\u0365\u0366\7{\2\2\u0366\u0367\7r\2\2\u0367\u0368\7g\2\2\u0368"+
+ "\u0369\7f\2\2\u0369\u036a\7C\2\2\u036a\u036b\7t\2\2\u036b\u036c\7t\2\2"+
+ "\u036c\u036d\7c\2\2\u036d\u036f\7{\2\2\u036e\u02c2\3\2\2\2\u036e\u02c6"+
+ "\3\2\2\2\u036e\u02ce\3\2\2\2\u036e\u02d2\3\2\2\2\u036e\u02d7\3\2\2\2\u036e"+
+ "\u02e5\3\2\2\2\u036e\u02ea\3\2\2\2\u036e\u02f5\3\2\2\2\u036e\u02fe\3\2"+
+ "\2\2\u036e\u0306\3\2\2\2\u036e\u030e\3\2\2\2\u036e\u0310\3\2\2\2\u036e"+
+ "\u0317\3\2\2\2\u036e\u031f\3\2\2\2\u036e\u032b\3\2\2\2\u036e\u0331\3\2"+
+ "\2\2\u036e\u0338\3\2\2\2\u036e\u0349\3\2\2\2\u036e\u034f\3\2\2\2\u036e"+
+ "\u035a\3\2\2\2\u036e\u0364\3\2\2\2\u036f\u00cc\3\2\2\28\2\u0179\u017f"+
+ "\u0183\u0187\u018b\u018f\u0196\u019b\u019d\u01a3\u01a7\u01ab\u01b1\u01b6"+
+ "\u01c0\u01c4\u01ca\u01ce\u01d6\u01da\u01e0\u01ea\u01ee\u01f4\u01f8\u01fd"+
+ "\u0200\u0203\u0208\u020b\u0210\u0215\u021d\u0228\u022c\u0231\u0235\u0245"+
+ "\u024f\u0257\u025e\u0265\u0269\u026d\u0273\u0280\u0294\u029d\u02a5\u02aa"+
+ "\u02b2\u02c0\u036e\3\b\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
}
} \ No newline at end of file
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 29edb7cb..23d2d84b 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionListener.java
@@ -1,7 +1,5 @@
-// Generated from BindingExpression.g4 by ANTLR 4.5
+// Generated from BindingExpression.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;
/**
@@ -10,517 +8,445 @@ import org.antlr.v4.runtime.tree.ParseTreeListener;
*/
public interface BindingExpressionListener extends ParseTreeListener {
/**
- * Enter a parse tree produced by the {@code CastOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by the {@code RootExpr}
+ * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
*/
- void enterCastOp(@NotNull BindingExpressionParser.CastOpContext ctx);
+ void enterRootExpr(BindingExpressionParser.RootExprContext ctx);
/**
- * Exit a parse tree produced by the {@code CastOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by the {@code RootExpr}
+ * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
*/
- void exitCastOp(@NotNull BindingExpressionParser.CastOpContext ctx);
-
+ void exitRootExpr(BindingExpressionParser.RootExprContext ctx);
/**
- * Enter a parse tree produced by the {@code ComparisonOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by the {@code RootLambda}
+ * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
*/
- void enterComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
+ void enterRootLambda(BindingExpressionParser.RootLambdaContext ctx);
/**
- * Exit a parse tree produced by the {@code ComparisonOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by the {@code RootLambda}
+ * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
*/
- void exitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
-
+ void exitRootLambda(BindingExpressionParser.RootLambdaContext ctx);
/**
- * Enter a parse tree produced by the {@code BracketOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#defaults}.
* @param ctx the parse tree
*/
- void enterBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx);
+ void enterDefaults(BindingExpressionParser.DefaultsContext ctx);
/**
- * Exit a parse tree produced by the {@code BracketOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#defaults}.
* @param ctx the parse tree
*/
- void exitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx);
-
+ void exitDefaults(BindingExpressionParser.DefaultsContext ctx);
/**
- * Enter a parse tree produced by the {@code UnaryOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#constantValue}.
* @param ctx the parse tree
*/
- void enterUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
+ void enterConstantValue(BindingExpressionParser.ConstantValueContext ctx);
/**
- * Exit a parse tree produced by the {@code UnaryOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#constantValue}.
* @param ctx the parse tree
*/
- void exitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
-
+ void exitConstantValue(BindingExpressionParser.ConstantValueContext ctx);
/**
- * Enter a parse tree produced by the {@code Resource}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#lambdaExpression}.
* @param ctx the parse tree
*/
- void enterResource(@NotNull BindingExpressionParser.ResourceContext ctx);
+ void enterLambdaExpression(BindingExpressionParser.LambdaExpressionContext ctx);
/**
- * Exit a parse tree produced by the {@code Resource}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#lambdaExpression}.
* @param ctx the parse tree
*/
- void exitResource(@NotNull BindingExpressionParser.ResourceContext ctx);
-
+ void exitLambdaExpression(BindingExpressionParser.LambdaExpressionContext ctx);
/**
- * Enter a parse tree produced by the {@code QuestionQuestionOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by the {@code SingleLambdaParameter}
+ * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
* @param ctx the parse tree
*/
- void enterQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
+ void enterSingleLambdaParameter(BindingExpressionParser.SingleLambdaParameterContext ctx);
/**
- * Exit a parse tree produced by the {@code QuestionQuestionOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by the {@code SingleLambdaParameter}
+ * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
* @param ctx the parse tree
*/
- void exitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
-
+ void exitSingleLambdaParameter(BindingExpressionParser.SingleLambdaParameterContext ctx);
/**
- * Enter a parse tree produced by the {@code Grouping}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by the {@code LambdaParameterList}
+ * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
* @param ctx the parse tree
*/
- void enterGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
+ void enterLambdaParameterList(BindingExpressionParser.LambdaParameterListContext ctx);
/**
- * Exit a parse tree produced by the {@code Grouping}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by the {@code LambdaParameterList}
+ * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
* @param ctx the parse tree
*/
- void exitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
-
+ void exitLambdaParameterList(BindingExpressionParser.LambdaParameterListContext ctx);
/**
- * Enter a parse tree produced by the {@code MethodInvocation}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by {@link BindingExpressionParser#inferredFormalParameterList}.
* @param ctx the parse tree
*/
- void enterMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx);
+ void enterInferredFormalParameterList(BindingExpressionParser.InferredFormalParameterListContext ctx);
/**
- * Exit a parse tree produced by the {@code MethodInvocation}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by {@link BindingExpressionParser#inferredFormalParameterList}.
* @param ctx the parse tree
*/
- void exitMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx);
-
+ void exitInferredFormalParameterList(BindingExpressionParser.InferredFormalParameterListContext ctx);
/**
- * Enter a parse tree produced by the {@code BitShiftOp}
+ * Enter a parse tree produced by the {@code CastOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterBitShiftOp(@NotNull BindingExpressionParser.BitShiftOpContext ctx);
+ void enterCastOp(BindingExpressionParser.CastOpContext ctx);
/**
- * Exit a parse tree produced by the {@code BitShiftOp}
+ * Exit a parse tree produced by the {@code CastOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitBitShiftOp(@NotNull BindingExpressionParser.BitShiftOpContext ctx);
-
+ void exitCastOp(BindingExpressionParser.CastOpContext ctx);
/**
- * Enter a parse tree produced by the {@code AndOrOp}
+ * Enter a parse tree produced by the {@code ComparisonOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterAndOrOp(@NotNull BindingExpressionParser.AndOrOpContext ctx);
+ void enterComparisonOp(BindingExpressionParser.ComparisonOpContext ctx);
/**
- * Exit a parse tree produced by the {@code AndOrOp}
+ * Exit a parse tree produced by the {@code ComparisonOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitAndOrOp(@NotNull BindingExpressionParser.AndOrOpContext ctx);
-
+ void exitComparisonOp(BindingExpressionParser.ComparisonOpContext ctx);
/**
- * Enter a parse tree produced by the {@code TernaryOp}
+ * Enter a parse tree produced by the {@code UnaryOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx);
+ void enterUnaryOp(BindingExpressionParser.UnaryOpContext ctx);
/**
- * Exit a parse tree produced by the {@code TernaryOp}
+ * Exit a parse tree produced by the {@code UnaryOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx);
-
+ void exitUnaryOp(BindingExpressionParser.UnaryOpContext ctx);
/**
- * Enter a parse tree produced by the {@code Primary}
+ * Enter a parse tree produced by the {@code BracketOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx);
+ void enterBracketOp(BindingExpressionParser.BracketOpContext ctx);
/**
- * Exit a parse tree produced by the {@code Primary}
+ * Exit a parse tree produced by the {@code BracketOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx);
-
+ void exitBracketOp(BindingExpressionParser.BracketOpContext ctx);
/**
- * Enter a parse tree produced by the {@code DotOp}
+ * Enter a parse tree produced by the {@code Resource}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterDotOp(@NotNull BindingExpressionParser.DotOpContext ctx);
+ void enterResource(BindingExpressionParser.ResourceContext ctx);
/**
- * Exit a parse tree produced by the {@code DotOp}
+ * Exit a parse tree produced by the {@code Resource}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx);
-
+ void exitResource(BindingExpressionParser.ResourceContext ctx);
/**
- * Enter a parse tree produced by the {@code MathOp}
+ * Enter a parse tree produced by the {@code QuestionQuestionOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
+ void enterQuestionQuestionOp(BindingExpressionParser.QuestionQuestionOpContext ctx);
/**
- * Exit a parse tree produced by the {@code MathOp}
+ * Exit a parse tree produced by the {@code QuestionQuestionOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
-
+ void exitQuestionQuestionOp(BindingExpressionParser.QuestionQuestionOpContext ctx);
/**
- * Enter a parse tree produced by the {@code InstanceOfOp}
+ * Enter a parse tree produced by the {@code Grouping}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterInstanceOfOp(@NotNull BindingExpressionParser.InstanceOfOpContext ctx);
+ void enterGrouping(BindingExpressionParser.GroupingContext ctx);
/**
- * Exit a parse tree produced by the {@code InstanceOfOp}
+ * Exit a parse tree produced by the {@code Grouping}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitInstanceOfOp(@NotNull BindingExpressionParser.InstanceOfOpContext ctx);
-
+ void exitGrouping(BindingExpressionParser.GroupingContext ctx);
/**
- * Enter a parse tree produced by the {@code FunctionRef}
+ * Enter a parse tree produced by the {@code MethodInvocation}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx);
+ void enterMethodInvocation(BindingExpressionParser.MethodInvocationContext ctx);
/**
- * Exit a parse tree produced by the {@code FunctionRef}
+ * Exit a parse tree produced by the {@code MethodInvocation}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx);
-
+ void exitMethodInvocation(BindingExpressionParser.MethodInvocationContext ctx);
/**
- * Enter a parse tree produced by the {@code BinaryOp}
+ * Enter a parse tree produced by the {@code BitShiftOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx);
+ void enterBitShiftOp(BindingExpressionParser.BitShiftOpContext ctx);
/**
- * Exit a parse tree produced by the {@code BinaryOp}
+ * Exit a parse tree produced by the {@code BitShiftOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx);
-
- /**
- * Enter a parse tree produced by the {@code RootExpr}
- * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- */
- void enterRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx);
- /**
- * Exit a parse tree produced by the {@code RootExpr}
- * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- */
- void exitRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx);
-
- /**
- * Enter a parse tree produced by the {@code RootLambda}
- * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- */
- void enterRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx);
- /**
- * Exit a parse tree produced by the {@code RootLambda}
- * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- */
- void exitRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx);
-
+ void exitBitShiftOp(BindingExpressionParser.BitShiftOpContext ctx);
/**
- * Enter a parse tree produced by the {@code SingleLambdaParameter}
- * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
- * @param ctx the parse tree
- */
- void enterSingleLambdaParameter(@NotNull BindingExpressionParser.SingleLambdaParameterContext ctx);
- /**
- * Exit a parse tree produced by the {@code SingleLambdaParameter}
- * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
- * @param ctx the parse tree
- */
- void exitSingleLambdaParameter(@NotNull BindingExpressionParser.SingleLambdaParameterContext ctx);
-
- /**
- * Enter a parse tree produced by the {@code LambdaParameterList}
- * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
+ * Enter a parse tree produced by the {@code AndOrOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterLambdaParameterList(@NotNull BindingExpressionParser.LambdaParameterListContext ctx);
+ void enterAndOrOp(BindingExpressionParser.AndOrOpContext ctx);
/**
- * Exit a parse tree produced by the {@code LambdaParameterList}
- * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
+ * Exit a parse tree produced by the {@code AndOrOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitLambdaParameterList(@NotNull BindingExpressionParser.LambdaParameterListContext ctx);
-
+ void exitAndOrOp(BindingExpressionParser.AndOrOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
+ * Enter a parse tree produced by the {@code TernaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
+ void enterTernaryOp(BindingExpressionParser.TernaryOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
+ * Exit a parse tree produced by the {@code TernaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
-
+ void exitTernaryOp(BindingExpressionParser.TernaryOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#defaults}.
+ * Enter a parse tree produced by the {@code Primary}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
+ void enterPrimary(BindingExpressionParser.PrimaryContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#defaults}.
+ * Exit a parse tree produced by the {@code Primary}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
-
+ void exitPrimary(BindingExpressionParser.PrimaryContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#constantValue}.
+ * Enter a parse tree produced by the {@code DotOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
+ void enterDotOp(BindingExpressionParser.DotOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#constantValue}.
+ * Exit a parse tree produced by the {@code DotOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
-
+ void exitDotOp(BindingExpressionParser.DotOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#lambdaExpression}.
+ * Enter a parse tree produced by the {@code MathOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterLambdaExpression(@NotNull BindingExpressionParser.LambdaExpressionContext ctx);
+ void enterMathOp(BindingExpressionParser.MathOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#lambdaExpression}.
+ * Exit a parse tree produced by the {@code MathOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitLambdaExpression(@NotNull BindingExpressionParser.LambdaExpressionContext ctx);
-
+ void exitMathOp(BindingExpressionParser.MathOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#lambdaParameters}.
+ * Enter a parse tree produced by the {@code InstanceOfOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterLambdaParameters(@NotNull BindingExpressionParser.LambdaParametersContext ctx);
+ void enterInstanceOfOp(BindingExpressionParser.InstanceOfOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#lambdaParameters}.
+ * Exit a parse tree produced by the {@code InstanceOfOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitLambdaParameters(@NotNull BindingExpressionParser.LambdaParametersContext ctx);
-
+ void exitInstanceOfOp(BindingExpressionParser.InstanceOfOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#inferredFormalParameterList}.
+ * Enter a parse tree produced by the {@code BinaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterInferredFormalParameterList(@NotNull BindingExpressionParser.InferredFormalParameterListContext ctx);
+ void enterBinaryOp(BindingExpressionParser.BinaryOpContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#inferredFormalParameterList}.
+ * Exit a parse tree produced by the {@code BinaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitInferredFormalParameterList(@NotNull BindingExpressionParser.InferredFormalParameterListContext ctx);
-
+ void exitBinaryOp(BindingExpressionParser.BinaryOpContext ctx);
/**
- * Enter a parse tree produced by {@link BindingExpressionParser#expression}.
+ * Enter a parse tree produced by the {@code FunctionRef}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void enterExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
+ void enterFunctionRef(BindingExpressionParser.FunctionRefContext ctx);
/**
- * Exit a parse tree produced by {@link BindingExpressionParser#expression}.
+ * Exit a parse tree produced by the {@code FunctionRef}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
*/
- void exitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
-
+ void exitFunctionRef(BindingExpressionParser.FunctionRefContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#classExtraction}.
* @param ctx the parse tree
*/
- void enterClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx);
+ void enterClassExtraction(BindingExpressionParser.ClassExtractionContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#classExtraction}.
* @param ctx the parse tree
*/
- void exitClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx);
-
+ void exitClassExtraction(BindingExpressionParser.ClassExtractionContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#expressionList}.
* @param ctx the parse tree
*/
- void enterExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
+ void enterExpressionList(BindingExpressionParser.ExpressionListContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#expressionList}.
* @param ctx the parse tree
*/
- void exitExpressionList(@NotNull BindingExpressionParser.ExpressionListContext ctx);
-
+ void exitExpressionList(BindingExpressionParser.ExpressionListContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#literal}.
* @param ctx the parse tree
*/
- void enterLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
+ void enterLiteral(BindingExpressionParser.LiteralContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#literal}.
* @param ctx the parse tree
*/
- void exitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
-
+ void exitLiteral(BindingExpressionParser.LiteralContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#identifier}.
* @param ctx the parse tree
*/
- void enterIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx);
+ void enterIdentifier(BindingExpressionParser.IdentifierContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#identifier}.
* @param ctx the parse tree
*/
- void exitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx);
-
+ void exitIdentifier(BindingExpressionParser.IdentifierContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
* @param ctx the parse tree
*/
- void enterJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
+ void enterJavaLiteral(BindingExpressionParser.JavaLiteralContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#javaLiteral}.
* @param ctx the parse tree
*/
- void exitJavaLiteral(@NotNull BindingExpressionParser.JavaLiteralContext ctx);
-
+ void exitJavaLiteral(BindingExpressionParser.JavaLiteralContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
* @param ctx the parse tree
*/
- void enterStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
+ void enterStringLiteral(BindingExpressionParser.StringLiteralContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#stringLiteral}.
* @param ctx the parse tree
*/
- void exitStringLiteral(@NotNull BindingExpressionParser.StringLiteralContext ctx);
-
+ void exitStringLiteral(BindingExpressionParser.StringLiteralContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
* @param ctx the parse tree
*/
- void enterExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
+ void enterExplicitGenericInvocation(BindingExpressionParser.ExplicitGenericInvocationContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocation}.
* @param ctx the parse tree
*/
- void exitExplicitGenericInvocation(@NotNull BindingExpressionParser.ExplicitGenericInvocationContext ctx);
-
+ void exitExplicitGenericInvocation(BindingExpressionParser.ExplicitGenericInvocationContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#typeArguments}.
* @param ctx the parse tree
*/
- void enterTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
+ void enterTypeArguments(BindingExpressionParser.TypeArgumentsContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#typeArguments}.
* @param ctx the parse tree
*/
- void exitTypeArguments(@NotNull BindingExpressionParser.TypeArgumentsContext ctx);
-
+ void exitTypeArguments(BindingExpressionParser.TypeArgumentsContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#type}.
* @param ctx the parse tree
*/
- void enterType(@NotNull BindingExpressionParser.TypeContext ctx);
+ void enterType(BindingExpressionParser.TypeContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#type}.
* @param ctx the parse tree
*/
- void exitType(@NotNull BindingExpressionParser.TypeContext ctx);
-
+ void exitType(BindingExpressionParser.TypeContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
* @param ctx the parse tree
*/
- void enterExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
+ void enterExplicitGenericInvocationSuffix(BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#explicitGenericInvocationSuffix}.
* @param ctx the parse tree
*/
- void exitExplicitGenericInvocationSuffix(@NotNull BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
-
+ void exitExplicitGenericInvocationSuffix(BindingExpressionParser.ExplicitGenericInvocationSuffixContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#arguments}.
* @param ctx the parse tree
*/
- void enterArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
+ void enterArguments(BindingExpressionParser.ArgumentsContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#arguments}.
* @param ctx the parse tree
*/
- void exitArguments(@NotNull BindingExpressionParser.ArgumentsContext ctx);
-
+ void exitArguments(BindingExpressionParser.ArgumentsContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
* @param ctx the parse tree
*/
- void enterClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
+ void enterClassOrInterfaceType(BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#classOrInterfaceType}.
* @param ctx the parse tree
*/
- void exitClassOrInterfaceType(@NotNull BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
-
+ void exitClassOrInterfaceType(BindingExpressionParser.ClassOrInterfaceTypeContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#primitiveType}.
* @param ctx the parse tree
*/
- void enterPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
+ void enterPrimitiveType(BindingExpressionParser.PrimitiveTypeContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#primitiveType}.
* @param ctx the parse tree
*/
- void exitPrimitiveType(@NotNull BindingExpressionParser.PrimitiveTypeContext ctx);
-
+ void exitPrimitiveType(BindingExpressionParser.PrimitiveTypeContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#resources}.
* @param ctx the parse tree
*/
- void enterResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
+ void enterResources(BindingExpressionParser.ResourcesContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#resources}.
* @param ctx the parse tree
*/
- void exitResources(@NotNull BindingExpressionParser.ResourcesContext ctx);
-
+ void exitResources(BindingExpressionParser.ResourcesContext ctx);
/**
* Enter a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
* @param ctx the parse tree
*/
- void enterResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
+ void enterResourceParameters(BindingExpressionParser.ResourceParametersContext ctx);
/**
* Exit a parse tree produced by {@link BindingExpressionParser#resourceParameters}.
* @param ctx the parse tree
*/
- void exitResourceParameters(@NotNull BindingExpressionParser.ResourceParametersContext ctx);
+ void exitResourceParameters(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 ece7caad..9633908f 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionParser.java
@@ -1,27 +1,21 @@
-// Generated from BindingExpression.g4 by ANTLR 4.5
+// Generated from BindingExpression.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.FailedPredicateException;
-import org.antlr.v4.runtime.NoViableAltException;
-import org.antlr.v4.runtime.Parser;
-import org.antlr.v4.runtime.ParserRuleContext;
-import org.antlr.v4.runtime.RecognitionException;
-import org.antlr.v4.runtime.RuleContext;
-import org.antlr.v4.runtime.RuleVersion;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.TokenStream;
-import org.antlr.v4.runtime.Vocabulary;
-import org.antlr.v4.runtime.VocabularyImpl;
-import org.antlr.v4.runtime.atn.ATN;
-import org.antlr.v4.runtime.atn.ATNDeserializer;
-import org.antlr.v4.runtime.atn.ParserATNSimulator;
-import org.antlr.v4.runtime.misc.NotNull;
-import org.antlr.v4.runtime.tree.ParseTreeListener;
-import org.antlr.v4.runtime.tree.ParseTreeVisitor;
-import org.antlr.v4.runtime.tree.TerminalNode;
-
+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;
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class BindingExpressionParser extends Parser {
+ static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
public static final int
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,
@@ -93,7 +87,7 @@ public class BindingExpressionParser extends Parser {
}
@Override
- @NotNull
+
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@@ -107,9 +101,12 @@ public class BindingExpressionParser extends Parser {
@Override
public String getSerializedATN() { return _serializedATN; }
+ @Override
+ public ATN getATN() { return _ATN; }
+
public BindingExpressionParser(TokenStream input) {
super(input);
- _interp = new ParserATNSimulator(this,_ATN);
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class BindingSyntaxContext extends ParserRuleContext {
public BindingSyntaxContext(ParserRuleContext parent, int invokingState) {
@@ -139,8 +136,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitRootExpr(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitRootExpr(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitRootExpr(this);
else return visitor.visitChildren(this);
}
}
@@ -158,19 +155,19 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitRootLambda(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitRootLambda(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitRootLambda(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final BindingSyntaxContext bindingSyntax() throws RecognitionException {
BindingSyntaxContext _localctx = new BindingSyntaxContext(_ctx, getState());
enterRule(_localctx, 0, RULE_bindingSyntax);
int _la;
try {
setState(49);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
case 1:
_localctx = new RootExprContext(_localctx);
@@ -189,7 +186,6 @@ public class BindingExpressionParser extends Parser {
}
break;
-
case 2:
_localctx = new RootLambdaContext(_localctx);
enterOuterAlt(_localctx, 2);
@@ -228,13 +224,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitDefaults(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitDefaults(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitDefaults(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final DefaultsContext defaults() throws RecognitionException {
DefaultsContext _localctx = new DefaultsContext(_ctx, getState());
enterRule(_localctx, 2, RULE_defaults);
@@ -283,13 +278,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitConstantValue(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitConstantValue(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitConstantValue(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ConstantValueContext constantValue() throws RecognitionException {
ConstantValueContext _localctx = new ConstantValueContext(_ctx, getState());
enterRule(_localctx, 4, RULE_constantValue);
@@ -360,13 +354,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitLambdaExpression(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitLambdaExpression(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitLambdaExpression(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final LambdaExpressionContext lambdaExpression() throws RecognitionException {
LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState());
enterRule(_localctx, 6, RULE_lambdaExpression);
@@ -374,11 +367,11 @@ public class BindingExpressionParser extends Parser {
enterOuterAlt(_localctx, 1);
{
setState(61);
- _localctx.args = lambdaParameters();
+ ((LambdaExpressionContext)_localctx).args = lambdaParameters();
setState(62);
match(T__3);
setState(63);
- _localctx.expr = expression(0);
+ ((LambdaExpressionContext)_localctx).expr = expression(0);
}
}
catch (RecognitionException re) {
@@ -415,8 +408,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitSingleLambdaParameter(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitSingleLambdaParameter(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitSingleLambdaParameter(this);
else return visitor.visitChildren(this);
}
}
@@ -435,13 +428,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitLambdaParameterList(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitLambdaParameterList(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitLambdaParameterList(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final LambdaParametersContext lambdaParameters() throws RecognitionException {
LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState());
enterRule(_localctx, 8, RULE_lambdaParameters);
@@ -492,7 +484,7 @@ public class BindingExpressionParser extends Parser {
}
public static class InferredFormalParameterListContext extends ParserRuleContext {
- public List<? extends TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
+ public List<TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
public TerminalNode Identifier(int i) {
return getToken(BindingExpressionParser.Identifier, i);
}
@@ -509,13 +501,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitInferredFormalParameterList(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitInferredFormalParameterList(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitInferredFormalParameterList(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException {
InferredFormalParameterListContext _localctx = new InferredFormalParameterListContext(_ctx, getState());
enterRule(_localctx, 10, RULE_inferredFormalParameterList);
@@ -582,8 +573,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitCastOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitCastOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitCastOp(this);
else return visitor.visitChildren(this);
}
}
@@ -591,7 +582,7 @@ public class BindingExpressionParser extends Parser {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -607,50 +598,50 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitComparisonOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitComparisonOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitComparisonOp(this);
else return visitor.visitChildren(this);
}
}
- public static class BracketOpContext extends ExpressionContext {
- public List<? extends ExpressionContext> expression() {
- return getRuleContexts(ExpressionContext.class);
- }
- public ExpressionContext expression(int i) {
- return getRuleContext(ExpressionContext.class,i);
+ public static class UnaryOpContext extends ExpressionContext {
+ public Token op;
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
}
- public BracketOpContext(ExpressionContext ctx) { copyFrom(ctx); }
+ public UnaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBracketOp(this);
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterUnaryOp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBracketOp(this);
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitUnaryOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBracketOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitUnaryOp(this);
else return visitor.visitChildren(this);
}
}
- public static class UnaryOpContext extends ExpressionContext {
- public Token op;
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
+ public static class BracketOpContext extends ExpressionContext {
+ public List<ExpressionContext> expression() {
+ return getRuleContexts(ExpressionContext.class);
}
- public UnaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public BracketOpContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterUnaryOp(this);
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBracketOp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitUnaryOp(this);
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBracketOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitUnaryOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitBracketOp(this);
else return visitor.visitChildren(this);
}
}
@@ -668,8 +659,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResource(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResource(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitResource(this);
else return visitor.visitChildren(this);
}
}
@@ -677,7 +668,7 @@ public class BindingExpressionParser extends Parser {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -693,8 +684,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitQuestionQuestionOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitQuestionQuestionOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitQuestionQuestionOp(this);
else return visitor.visitChildren(this);
}
}
@@ -712,8 +703,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitGrouping(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitGrouping(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitGrouping(this);
else return visitor.visitChildren(this);
}
}
@@ -738,8 +729,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitMethodInvocation(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitMethodInvocation(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitMethodInvocation(this);
else return visitor.visitChildren(this);
}
}
@@ -747,7 +738,7 @@ public class BindingExpressionParser extends Parser {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -763,8 +754,8 @@ public class BindingExpressionParser extends Parser {
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);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitBitShiftOp(this);
else return visitor.visitChildren(this);
}
}
@@ -772,7 +763,7 @@ public class BindingExpressionParser extends Parser {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -788,8 +779,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitAndOrOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitAndOrOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitAndOrOp(this);
else return visitor.visitChildren(this);
}
}
@@ -798,7 +789,7 @@ public class BindingExpressionParser extends Parser {
public Token op;
public ExpressionContext iftrue;
public ExpressionContext iffalse;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -814,8 +805,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitTernaryOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitTernaryOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitTernaryOp(this);
else return visitor.visitChildren(this);
}
}
@@ -840,8 +831,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitPrimary(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitPrimary(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitPrimary(this);
else return visitor.visitChildren(this);
}
}
@@ -860,8 +851,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitDotOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitDotOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitDotOp(this);
else return visitor.visitChildren(this);
}
}
@@ -869,7 +860,7 @@ public class BindingExpressionParser extends Parser {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -885,8 +876,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitMathOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitMathOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitMathOp(this);
else return visitor.visitChildren(this);
}
}
@@ -907,28 +898,8 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitInstanceOfOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitInstanceOfOp(this);
- else return visitor.visitChildren(this);
- }
- }
- public static class FunctionRefContext extends ExpressionContext {
- public ExpressionContext expression() {
- return getRuleContext(ExpressionContext.class,0);
- }
- public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
- public FunctionRefContext(ExpressionContext ctx) { copyFrom(ctx); }
- @Override
- public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterFunctionRef(this);
- }
- @Override
- public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitFunctionRef(this);
- }
- @Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitFunctionRef(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitInstanceOfOp(this);
else return visitor.visitChildren(this);
}
}
@@ -936,7 +907,7 @@ public class BindingExpressionParser extends Parser {
public ExpressionContext left;
public Token op;
public ExpressionContext right;
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -952,13 +923,32 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBinaryOp(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBinaryOp(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitBinaryOp(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class FunctionRefContext extends ExpressionContext {
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
+ public FunctionRefContext(ExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterFunctionRef(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitFunctionRef(this);
+ }
+ @Override
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitFunctionRef(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ExpressionContext expression() throws RecognitionException {
return expression(0);
}
@@ -976,121 +966,114 @@ public class BindingExpressionParser extends Parser {
enterOuterAlt(_localctx, 1);
{
setState(100);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
case 1:
{
- _localctx = new CastOpContext(_localctx);
+ _localctx = new GroupingContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(82);
match(T__4);
setState(83);
- type();
+ expression(0);
setState(84);
match(T__5);
- setState(85);
- expression(16);
}
break;
-
case 2:
{
- _localctx = new UnaryOpContext(_localctx);
+ _localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(87);
- ((UnaryOpContext)_localctx).op = _input.LT(1);
- _la = _input.LA(1);
- if ( !(_la==T__10 || _la==T__11) ) {
- ((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this);
- } else {
- consume();
- }
- setState(88);
- expression(15);
+ setState(86);
+ literal();
}
break;
-
case 3:
{
- _localctx = new UnaryOpContext(_localctx);
+ _localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(89);
- ((UnaryOpContext)_localctx).op = _input.LT(1);
- _la = _input.LA(1);
- if ( !(_la==T__12 || _la==T__13) ) {
- ((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this);
- } else {
- consume();
- }
- setState(90);
- expression(14);
+ setState(87);
+ match(VoidLiteral);
}
break;
-
case 4:
{
- _localctx = new GroupingContext(_localctx);
+ _localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(91);
- match(T__4);
- setState(92);
- expression(0);
- setState(93);
- match(T__5);
+ setState(88);
+ identifier();
}
break;
-
case 5:
{
_localctx = new PrimaryContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(95);
- literal();
+ setState(89);
+ classExtraction();
}
break;
-
case 6:
{
- _localctx = new PrimaryContext(_localctx);
+ _localctx = new ResourceContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(96);
- match(VoidLiteral);
+ setState(90);
+ resources();
}
break;
-
case 7:
{
- _localctx = new PrimaryContext(_localctx);
+ _localctx = new CastOpContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(97);
- identifier();
+ setState(91);
+ match(T__4);
+ setState(92);
+ type();
+ setState(93);
+ match(T__5);
+ setState(94);
+ expression(16);
}
break;
-
case 8:
{
- _localctx = new PrimaryContext(_localctx);
+ _localctx = new UnaryOpContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
- setState(98);
- classExtraction();
+ setState(96);
+ ((UnaryOpContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==T__10 || _la==T__11) ) {
+ ((UnaryOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ } else {
+ consume();
+ }
+ setState(97);
+ expression(15);
}
break;
-
case 9:
{
- _localctx = new ResourceContext(_localctx);
+ _localctx = new UnaryOpContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
+ setState(98);
+ ((UnaryOpContext)_localctx).op = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==T__12 || _la==T__13) ) {
+ ((UnaryOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
+ } else {
+ consume();
+ }
setState(99);
- resources();
+ expression(14);
}
break;
}
@@ -1104,6 +1087,7 @@ public class BindingExpressionParser extends Parser {
_prevctx = _localctx;
{
setState(163);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) {
case 1:
{
@@ -1116,7 +1100,7 @@ public class BindingExpressionParser extends Parser {
((MathOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__14) | (1L << T__15) | (1L << T__16))) != 0)) ) {
- ((MathOpContext)_localctx).op = _errHandler.recoverInline(this);
+ ((MathOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
@@ -1124,7 +1108,6 @@ public class BindingExpressionParser extends Parser {
((MathOpContext)_localctx).right = expression(14);
}
break;
-
case 2:
{
_localctx = new MathOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1136,7 +1119,7 @@ public class BindingExpressionParser extends Parser {
((MathOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__10 || _la==T__11) ) {
- ((MathOpContext)_localctx).op = _errHandler.recoverInline(this);
+ ((MathOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
@@ -1144,7 +1127,6 @@ public class BindingExpressionParser extends Parser {
((MathOpContext)_localctx).right = expression(13);
}
break;
-
case 3:
{
_localctx = new BitShiftOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1156,7 +1138,7 @@ public class BindingExpressionParser extends Parser {
((BitShiftOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) ) {
- ((BitShiftOpContext)_localctx).op = _errHandler.recoverInline(this);
+ ((BitShiftOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
@@ -1164,7 +1146,6 @@ public class BindingExpressionParser extends Parser {
((BitShiftOpContext)_localctx).right = expression(12);
}
break;
-
case 4:
{
_localctx = new ComparisonOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1176,7 +1157,7 @@ public class BindingExpressionParser extends Parser {
((ComparisonOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__20) | (1L << T__21) | (1L << T__22) | (1L << T__23))) != 0)) ) {
- ((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this);
+ ((ComparisonOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
@@ -1184,7 +1165,6 @@ public class BindingExpressionParser extends Parser {
((ComparisonOpContext)_localctx).right = expression(11);
}
break;
-
case 5:
{
_localctx = new ComparisonOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1196,7 +1176,7 @@ public class BindingExpressionParser extends Parser {
((ComparisonOpContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__25 || _la==T__26) ) {
- ((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this);
+ ((ComparisonOpContext)_localctx).op = (Token)_errHandler.recoverInline(this);
} else {
consume();
}
@@ -1204,7 +1184,6 @@ public class BindingExpressionParser extends Parser {
((ComparisonOpContext)_localctx).right = expression(9);
}
break;
-
case 6:
{
_localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1218,7 +1197,6 @@ public class BindingExpressionParser extends Parser {
((BinaryOpContext)_localctx).right = expression(8);
}
break;
-
case 7:
{
_localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1232,7 +1210,6 @@ public class BindingExpressionParser extends Parser {
((BinaryOpContext)_localctx).right = expression(7);
}
break;
-
case 8:
{
_localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1246,7 +1223,6 @@ public class BindingExpressionParser extends Parser {
((BinaryOpContext)_localctx).right = expression(6);
}
break;
-
case 9:
{
_localctx = new AndOrOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1260,7 +1236,6 @@ public class BindingExpressionParser extends Parser {
((AndOrOpContext)_localctx).right = expression(5);
}
break;
-
case 10:
{
_localctx = new AndOrOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1274,7 +1249,6 @@ public class BindingExpressionParser extends Parser {
((AndOrOpContext)_localctx).right = expression(4);
}
break;
-
case 11:
{
_localctx = new TernaryOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1292,7 +1266,6 @@ public class BindingExpressionParser extends Parser {
((TernaryOpContext)_localctx).iffalse = expression(2);
}
break;
-
case 12:
{
_localctx = new QuestionQuestionOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1306,7 +1279,6 @@ public class BindingExpressionParser extends Parser {
((QuestionQuestionOpContext)_localctx).right = expression(2);
}
break;
-
case 13:
{
_localctx = new DotOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1319,7 +1291,6 @@ public class BindingExpressionParser extends Parser {
match(Identifier);
}
break;
-
case 14:
{
_localctx = new FunctionRefContext(new ExpressionContext(_parentctx, _parentState));
@@ -1332,7 +1303,6 @@ public class BindingExpressionParser extends Parser {
match(Identifier);
}
break;
-
case 15:
{
_localctx = new BracketOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1347,7 +1317,6 @@ public class BindingExpressionParser extends Parser {
match(T__9);
}
break;
-
case 16:
{
_localctx = new MethodInvocationContext(new ExpressionContext(_parentctx, _parentState));
@@ -1374,7 +1343,6 @@ public class BindingExpressionParser extends Parser {
match(T__5);
}
break;
-
case 17:
{
_localctx = new InstanceOfOpContext(new ExpressionContext(_parentctx, _parentState));
@@ -1424,13 +1392,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitClassExtraction(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitClassExtraction(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitClassExtraction(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ClassExtractionContext classExtraction() throws RecognitionException {
ClassExtractionContext _localctx = new ClassExtractionContext(_ctx, getState());
enterRule(_localctx, 14, RULE_classExtraction);
@@ -1457,7 +1424,7 @@ public class BindingExpressionParser extends Parser {
}
public static class ExpressionListContext extends ParserRuleContext {
- public List<? extends ExpressionContext> expression() {
+ public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
@@ -1476,13 +1443,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExpressionList(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExpressionList(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitExpressionList(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ExpressionListContext expressionList() throws RecognitionException {
ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState());
enterRule(_localctx, 16, RULE_expressionList);
@@ -1541,13 +1507,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitLiteral(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitLiteral(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitLiteral(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final LiteralContext literal() throws RecognitionException {
LiteralContext _localctx = new LiteralContext(_ctx, getState());
enterRule(_localctx, 18, RULE_literal);
@@ -1603,13 +1568,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitIdentifier(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitIdentifier(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitIdentifier(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final IdentifierContext identifier() throws RecognitionException {
IdentifierContext _localctx = new IdentifierContext(_ctx, getState());
enterRule(_localctx, 20, RULE_identifier);
@@ -1650,13 +1614,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitJavaLiteral(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitJavaLiteral(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitJavaLiteral(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final JavaLiteralContext javaLiteral() throws RecognitionException {
JavaLiteralContext _localctx = new JavaLiteralContext(_ctx, getState());
enterRule(_localctx, 22, RULE_javaLiteral);
@@ -1700,13 +1663,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitStringLiteral(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitStringLiteral(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitStringLiteral(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final StringLiteralContext stringLiteral() throws RecognitionException {
StringLiteralContext _localctx = new StringLiteralContext(_ctx, getState());
enterRule(_localctx, 24, RULE_stringLiteral);
@@ -1754,13 +1716,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExplicitGenericInvocation(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExplicitGenericInvocation(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitExplicitGenericInvocation(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException {
ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState());
enterRule(_localctx, 26, RULE_explicitGenericInvocation);
@@ -1785,7 +1746,7 @@ public class BindingExpressionParser extends Parser {
}
public static class TypeArgumentsContext extends ParserRuleContext {
- public List<? extends TypeContext> type() {
+ public List<TypeContext> type() {
return getRuleContexts(TypeContext.class);
}
public TypeContext type(int i) {
@@ -1804,13 +1765,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitTypeArguments(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitTypeArguments(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitTypeArguments(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final TypeArgumentsContext typeArguments() throws RecognitionException {
TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState());
enterRule(_localctx, 28, RULE_typeArguments);
@@ -1873,13 +1833,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitType(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitType(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitType(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final TypeContext type() throws RecognitionException {
TypeContext _localctx = new TypeContext(_ctx, getState());
enterRule(_localctx, 30, RULE_type);
@@ -1977,13 +1936,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExplicitGenericInvocationSuffix(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExplicitGenericInvocationSuffix(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitExplicitGenericInvocationSuffix(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException {
ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState());
enterRule(_localctx, 32, RULE_explicitGenericInvocationSuffix);
@@ -2024,13 +1982,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitArguments(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitArguments(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitArguments(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ArgumentsContext arguments() throws RecognitionException {
ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState());
enterRule(_localctx, 34, RULE_arguments);
@@ -2068,13 +2025,13 @@ public class BindingExpressionParser extends Parser {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
- public List<? extends TypeArgumentsContext> typeArguments() {
+ public List<TypeArgumentsContext> typeArguments() {
return getRuleContexts(TypeArgumentsContext.class);
}
public TypeArgumentsContext typeArguments(int i) {
return getRuleContext(TypeArgumentsContext.class,i);
}
- public List<? extends TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
+ public List<TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
public TerminalNode Identifier(int i) {
return getToken(BindingExpressionParser.Identifier, i);
}
@@ -2091,13 +2048,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitClassOrInterfaceType(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitClassOrInterfaceType(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitClassOrInterfaceType(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException {
ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState());
enterRule(_localctx, 36, RULE_classOrInterfaceType);
@@ -2108,6 +2064,7 @@ public class BindingExpressionParser extends Parser {
setState(231);
identifier();
setState(233);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
case 1:
{
@@ -2128,6 +2085,7 @@ public class BindingExpressionParser extends Parser {
setState(236);
match(Identifier);
setState(238);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) {
case 1:
{
@@ -2170,13 +2128,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitPrimitiveType(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitPrimitiveType(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitPrimitiveType(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final PrimitiveTypeContext primitiveType() throws RecognitionException {
PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
enterRule(_localctx, 38, RULE_primitiveType);
@@ -2222,13 +2179,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResources(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResources(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitResources(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ResourcesContext resources() throws RecognitionException {
ResourcesContext _localctx = new ResourcesContext(_ctx, getState());
enterRule(_localctx, 40, RULE_resources);
@@ -2238,6 +2194,7 @@ public class BindingExpressionParser extends Parser {
setState(247);
match(ResourceReference);
setState(249);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
case 1:
{
@@ -2276,13 +2233,12 @@ public class BindingExpressionParser extends Parser {
if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResourceParameters(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResourceParameters(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof BindingExpressionVisitor ) return ((BindingExpressionVisitor<? extends T>)visitor).visitResourceParameters(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ResourceParametersContext resourceParameters() throws RecognitionException {
ResourceParametersContext _localctx = new ResourceParametersContext(_ctx, getState());
enterRule(_localctx, 42, RULE_resourceParameters);
@@ -2319,52 +2275,36 @@ public class BindingExpressionParser extends Parser {
switch (predIndex) {
case 0:
return precpred(_ctx, 13);
-
case 1:
return precpred(_ctx, 12);
-
case 2:
return precpred(_ctx, 11);
-
case 3:
return precpred(_ctx, 10);
-
case 4:
return precpred(_ctx, 8);
-
case 5:
return precpred(_ctx, 7);
-
case 6:
return precpred(_ctx, 6);
-
case 7:
return precpred(_ctx, 5);
-
case 8:
return precpred(_ctx, 4);
-
case 9:
return precpred(_ctx, 3);
-
case 10:
return precpred(_ctx, 2);
-
case 11:
return precpred(_ctx, 1);
-
case 12:
return precpred(_ctx, 20);
-
case 13:
return precpred(_ctx, 19);
-
case 14:
return precpred(_ctx, 18);
-
case 15:
return precpred(_ctx, 17);
-
case 16:
return precpred(_ctx, 9);
}
@@ -2372,7 +2312,7 @@ public class BindingExpressionParser extends Parser {
}
public static final String _serializedATN =
- "\3\uaf6f\u8320\u479d\ub75c\u4880\u1605\u191c\uab37\3<\u0102\4\2\t\2\4"+
+ "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3<\u0102\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\3\2\3\2\5\2\61\n\2"+
@@ -2390,29 +2330,28 @@ public class BindingExpressionParser extends Parser {
"\3\21\3\21\7\21\u00da\n\21\f\21\16\21\u00dd\13\21\5\21\u00df\n\21\3\22"+
"\3\22\3\22\3\23\3\23\5\23\u00e6\n\23\3\23\3\23\3\24\3\24\5\24\u00ec\n"+
"\24\3\24\3\24\3\24\5\24\u00f1\n\24\7\24\u00f3\n\24\f\24\16\24\u00f6\13"+
- "\24\3\25\3\25\3\26\3\26\5\26\u00fc\n\26\3\27\3\27\3\27\3\27\3\27\2\2\3"+
- "\16\30\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*\2,\2\2\13\3\2\r\16\3\2\17\20\3\2\21\23\3\2\24\26"+
- "\3\2\27\32\3\2\34\35\4\2\61\64\67\67\3\2\65\66\3\2\'.\u0117\2\63\3\2\2"+
- "\2\4\65\3\2\2\2\6=\3\2\2\2\b?\3\2\2\2\nI\3\2\2\2\fK\3\2\2\2\16f\3\2\2"+
- "\2\20\u00aa\3\2\2\2\22\u00ae\3\2\2\2\24\u00b8\3\2\2\2\26\u00ba\3\2\2\2"+
- "\30\u00bc\3\2\2\2\32\u00be\3\2\2\2\34\u00c0\3\2\2\2\36\u00c3\3\2\2\2 "+
- "\u00de\3\2\2\2\"\u00e0\3\2\2\2$\u00e3\3\2\2\2&\u00e9\3\2\2\2(\u00f7\3"+
- "\2\2\2*\u00f9\3\2\2\2,\u00fd\3\2\2\2.\60\5\16\b\2/\61\5\4\3\2\60/\3\2"+
- "\2\2\60\61\3\2\2\2\61\64\3\2\2\2\62\64\5\b\5\2\63.\3\2\2\2\63\62\3\2\2"+
- "\2\64\3\3\2\2\2\65\66\7\3\2\2\66\67\7\4\2\2\678\7\5\2\289\5\6\4\29\5\3"+
- "\2\2\2:>\5\24\13\2;>\7:\2\2<>\5\26\f\2=:\3\2\2\2=;\3\2\2\2=<\3\2\2\2>"+
- "\7\3\2\2\2?@\5\n\6\2@A\7\6\2\2AB\5\16\b\2B\t\3\2\2\2CJ\78\2\2DF\7\7\2"+
- "\2EG\5\f\7\2FE\3\2\2\2FG\3\2\2\2GH\3\2\2\2HJ\7\b\2\2IC\3\2\2\2ID\3\2\2"+
- "\2J\13\3\2\2\2KP\78\2\2LM\7\3\2\2MO\78\2\2NL\3\2\2\2OR\3\2\2\2PN\3\2\2"+
- "\2PQ\3\2\2\2Q\r\3\2\2\2RP\3\2\2\2ST\b\b\1\2TU\7\7\2\2UV\5 \21\2VW\7\b"+
- "\2\2WX\5\16\b\22Xg\3\2\2\2YZ\t\2\2\2Zg\5\16\b\21[\\\t\3\2\2\\g\5\16\b"+
- "\20]^\7\7\2\2^_\5\16\b\2_`\7\b\2\2`g\3\2\2\2ag\5\24\13\2bg\7\60\2\2cg"+
- "\5\26\f\2dg\5\20\t\2eg\5*\26\2fS\3\2\2\2fY\3\2\2\2f[\3\2\2\2f]\3\2\2\2"+
- "fa\3\2\2\2fb\3\2\2\2fc\3\2\2\2fd\3\2\2\2fe\3\2\2\2g\u00a7\3\2\2\2hi\f"+
- "\17\2\2ij\t\4\2\2j\u00a6\5\16\b\20kl\f\16\2\2lm\t\2\2\2m\u00a6\5\16\b"+
- "\17no\f\r\2\2op\t\5\2\2p\u00a6\5\16\b\16qr\f\f\2\2rs\t\6\2\2s\u00a6\5"+
- "\16\b\rtu\f\n\2\2uv\t\7\2\2v\u00a6\5\16\b\13wx\f\t\2\2xy\7\36\2\2y\u00a6"+
+ "\24\3\25\3\25\3\26\3\26\5\26\u00fc\n\26\3\27\3\27\3\27\3\27\3\27\2\3\16"+
+ "\30\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,\2\13\3\2\r\16\3\2\17"+
+ "\20\3\2\21\23\3\2\24\26\3\2\27\32\3\2\34\35\4\2\61\64\67\67\3\2\65\66"+
+ "\3\2\'.\u0117\2\63\3\2\2\2\4\65\3\2\2\2\6=\3\2\2\2\b?\3\2\2\2\nI\3\2\2"+
+ "\2\fK\3\2\2\2\16f\3\2\2\2\20\u00aa\3\2\2\2\22\u00ae\3\2\2\2\24\u00b8\3"+
+ "\2\2\2\26\u00ba\3\2\2\2\30\u00bc\3\2\2\2\32\u00be\3\2\2\2\34\u00c0\3\2"+
+ "\2\2\36\u00c3\3\2\2\2 \u00de\3\2\2\2\"\u00e0\3\2\2\2$\u00e3\3\2\2\2&\u00e9"+
+ "\3\2\2\2(\u00f7\3\2\2\2*\u00f9\3\2\2\2,\u00fd\3\2\2\2.\60\5\16\b\2/\61"+
+ "\5\4\3\2\60/\3\2\2\2\60\61\3\2\2\2\61\64\3\2\2\2\62\64\5\b\5\2\63.\3\2"+
+ "\2\2\63\62\3\2\2\2\64\3\3\2\2\2\65\66\7\3\2\2\66\67\7\4\2\2\678\7\5\2"+
+ "\289\5\6\4\29\5\3\2\2\2:>\5\24\13\2;>\7:\2\2<>\5\26\f\2=:\3\2\2\2=;\3"+
+ "\2\2\2=<\3\2\2\2>\7\3\2\2\2?@\5\n\6\2@A\7\6\2\2AB\5\16\b\2B\t\3\2\2\2"+
+ "CJ\78\2\2DF\7\7\2\2EG\5\f\7\2FE\3\2\2\2FG\3\2\2\2GH\3\2\2\2HJ\7\b\2\2"+
+ "IC\3\2\2\2ID\3\2\2\2J\13\3\2\2\2KP\78\2\2LM\7\3\2\2MO\78\2\2NL\3\2\2\2"+
+ "OR\3\2\2\2PN\3\2\2\2PQ\3\2\2\2Q\r\3\2\2\2RP\3\2\2\2ST\b\b\1\2TU\7\7\2"+
+ "\2UV\5\16\b\2VW\7\b\2\2Wg\3\2\2\2Xg\5\24\13\2Yg\7\60\2\2Zg\5\26\f\2[g"+
+ "\5\20\t\2\\g\5*\26\2]^\7\7\2\2^_\5 \21\2_`\7\b\2\2`a\5\16\b\22ag\3\2\2"+
+ "\2bc\t\2\2\2cg\5\16\b\21de\t\3\2\2eg\5\16\b\20fS\3\2\2\2fX\3\2\2\2fY\3"+
+ "\2\2\2fZ\3\2\2\2f[\3\2\2\2f\\\3\2\2\2f]\3\2\2\2fb\3\2\2\2fd\3\2\2\2g\u00a7"+
+ "\3\2\2\2hi\f\17\2\2ij\t\4\2\2j\u00a6\5\16\b\20kl\f\16\2\2lm\t\2\2\2m\u00a6"+
+ "\5\16\b\17no\f\r\2\2op\t\5\2\2p\u00a6\5\16\b\16qr\f\f\2\2rs\t\6\2\2s\u00a6"+
+ "\5\16\b\rtu\f\n\2\2uv\t\7\2\2v\u00a6\5\16\b\13wx\f\t\2\2xy\7\36\2\2y\u00a6"+
"\5\16\b\nz{\f\b\2\2{|\7\37\2\2|\u00a6\5\16\b\t}~\f\7\2\2~\177\7 \2\2\177"+
"\u00a6\5\16\b\b\u0080\u0081\f\6\2\2\u0081\u0082\7!\2\2\u0082\u00a6\5\16"+
"\b\7\u0083\u0084\f\5\2\2\u0084\u0085\7\"\2\2\u0085\u00a6\5\16\b\6\u0086"+
@@ -2463,5 +2402,9 @@ public class BindingExpressionParser extends Parser {
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
}
} \ No newline at end of file
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 871a64b6..c7443648 100644
--- a/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java
+++ b/compilerCommon/src/main/grammar-gen/android/databinding/parser/BindingExpressionVisitor.java
@@ -1,336 +1,274 @@
-// Generated from BindingExpression.g4 by ANTLR 4.5
+// Generated from BindingExpression.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced
* by {@link BindingExpressionParser}.
*
- * @param <Result> The return type of the visit operation. Use {@link Void} for
+ * @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
-public interface BindingExpressionVisitor<Result> extends ParseTreeVisitor<Result> {
+public interface BindingExpressionVisitor<T> extends ParseTreeVisitor<T> {
/**
- * Visit a parse tree produced by the {@code CastOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by the {@code RootExpr}
+ * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitCastOp(@NotNull BindingExpressionParser.CastOpContext ctx);
-
+ T visitRootExpr(BindingExpressionParser.RootExprContext ctx);
/**
- * Visit a parse tree produced by the {@code ComparisonOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by the {@code RootLambda}
+ * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitComparisonOp(@NotNull BindingExpressionParser.ComparisonOpContext ctx);
-
+ T visitRootLambda(BindingExpressionParser.RootLambdaContext ctx);
/**
- * Visit a parse tree produced by the {@code BracketOp}
- * 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 visitBracketOp(@NotNull BindingExpressionParser.BracketOpContext ctx);
-
+ T visitDefaults(BindingExpressionParser.DefaultsContext ctx);
/**
- * Visit a parse tree produced by the {@code UnaryOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#constantValue}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitUnaryOp(@NotNull BindingExpressionParser.UnaryOpContext ctx);
-
+ T visitConstantValue(BindingExpressionParser.ConstantValueContext ctx);
/**
- * Visit a parse tree produced by the {@code Resource}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#lambdaExpression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitResource(@NotNull BindingExpressionParser.ResourceContext ctx);
-
+ T visitLambdaExpression(BindingExpressionParser.LambdaExpressionContext ctx);
/**
- * Visit a parse tree produced by the {@code QuestionQuestionOp}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by the {@code SingleLambdaParameter}
+ * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitQuestionQuestionOp(@NotNull BindingExpressionParser.QuestionQuestionOpContext ctx);
-
+ T visitSingleLambdaParameter(BindingExpressionParser.SingleLambdaParameterContext ctx);
/**
- * Visit a parse tree produced by the {@code Grouping}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by the {@code LambdaParameterList}
+ * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitGrouping(@NotNull BindingExpressionParser.GroupingContext ctx);
-
+ T visitLambdaParameterList(BindingExpressionParser.LambdaParameterListContext ctx);
/**
- * Visit a parse tree produced by the {@code MethodInvocation}
- * labeled alternative in {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by {@link BindingExpressionParser#inferredFormalParameterList}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitMethodInvocation(@NotNull BindingExpressionParser.MethodInvocationContext ctx);
-
+ T visitInferredFormalParameterList(BindingExpressionParser.InferredFormalParameterListContext ctx);
/**
- * Visit a parse tree produced by the {@code BitShiftOp}
+ * Visit a parse tree produced by the {@code CastOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitBitShiftOp(@NotNull BindingExpressionParser.BitShiftOpContext ctx);
-
+ T visitCastOp(BindingExpressionParser.CastOpContext ctx);
/**
- * Visit a parse tree produced by the {@code AndOrOp}
+ * 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 visitAndOrOp(@NotNull BindingExpressionParser.AndOrOpContext ctx);
-
+ T visitComparisonOp(BindingExpressionParser.ComparisonOpContext ctx);
/**
- * Visit a parse tree produced by the {@code TernaryOp}
+ * 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 visitTernaryOp(@NotNull BindingExpressionParser.TernaryOpContext ctx);
-
+ T visitUnaryOp(BindingExpressionParser.UnaryOpContext ctx);
/**
- * Visit a parse tree produced by the {@code Primary}
+ * Visit a parse tree produced by the {@code BracketOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitPrimary(@NotNull BindingExpressionParser.PrimaryContext ctx);
-
+ T visitBracketOp(BindingExpressionParser.BracketOpContext ctx);
/**
- * Visit a parse tree produced by the {@code DotOp}
+ * 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 visitDotOp(@NotNull BindingExpressionParser.DotOpContext ctx);
-
+ T visitResource(BindingExpressionParser.ResourceContext ctx);
/**
- * Visit a parse tree produced by the {@code MathOp}
+ * 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 visitMathOp(@NotNull BindingExpressionParser.MathOpContext ctx);
-
+ T visitQuestionQuestionOp(BindingExpressionParser.QuestionQuestionOpContext ctx);
/**
- * Visit a parse tree produced by the {@code InstanceOfOp}
+ * 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 visitInstanceOfOp(@NotNull BindingExpressionParser.InstanceOfOpContext ctx);
-
+ T visitGrouping(BindingExpressionParser.GroupingContext ctx);
/**
- * Visit a parse tree produced by the {@code FunctionRef}
+ * Visit a parse tree produced by the {@code MethodInvocation}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitFunctionRef(@NotNull BindingExpressionParser.FunctionRefContext ctx);
-
+ T visitMethodInvocation(BindingExpressionParser.MethodInvocationContext ctx);
/**
- * Visit a parse tree produced by the {@code BinaryOp}
+ * Visit a parse tree produced by the {@code BitShiftOp}
* labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitBinaryOp(@NotNull BindingExpressionParser.BinaryOpContext ctx);
-
- /**
- * Visit a parse tree produced by the {@code RootExpr}
- * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitRootExpr(@NotNull BindingExpressionParser.RootExprContext ctx);
-
- /**
- * Visit a parse tree produced by the {@code RootLambda}
- * labeled alternative in {@link BindingExpressionParser#bindingSyntax}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitRootLambda(@NotNull BindingExpressionParser.RootLambdaContext ctx);
-
- /**
- * Visit a parse tree produced by the {@code SingleLambdaParameter}
- * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
- * @param ctx the parse tree
- * @return the visitor result
- */
- Result visitSingleLambdaParameter(@NotNull BindingExpressionParser.SingleLambdaParameterContext ctx);
-
+ T visitBitShiftOp(BindingExpressionParser.BitShiftOpContext ctx);
/**
- * Visit a parse tree produced by the {@code LambdaParameterList}
- * labeled alternative in {@link BindingExpressionParser#lambdaParameters}.
+ * Visit a parse tree produced by the {@code AndOrOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitLambdaParameterList(@NotNull BindingExpressionParser.LambdaParameterListContext ctx);
-
+ T visitAndOrOp(BindingExpressionParser.AndOrOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#bindingSyntax}.
+ * Visit a parse tree produced by the {@code TernaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitBindingSyntax(@NotNull BindingExpressionParser.BindingSyntaxContext ctx);
-
+ T visitTernaryOp(BindingExpressionParser.TernaryOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#defaults}.
+ * Visit a parse tree produced by the {@code Primary}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitDefaults(@NotNull BindingExpressionParser.DefaultsContext ctx);
-
+ T visitPrimary(BindingExpressionParser.PrimaryContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#constantValue}.
+ * Visit a parse tree produced by the {@code DotOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitConstantValue(@NotNull BindingExpressionParser.ConstantValueContext ctx);
-
+ T visitDotOp(BindingExpressionParser.DotOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#lambdaExpression}.
+ * 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 visitLambdaExpression(@NotNull BindingExpressionParser.LambdaExpressionContext ctx);
-
+ T visitMathOp(BindingExpressionParser.MathOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#lambdaParameters}.
+ * Visit a parse tree produced by the {@code InstanceOfOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitLambdaParameters(@NotNull BindingExpressionParser.LambdaParametersContext ctx);
-
+ T visitInstanceOfOp(BindingExpressionParser.InstanceOfOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#inferredFormalParameterList}.
+ * Visit a parse tree produced by the {@code BinaryOp}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitInferredFormalParameterList(@NotNull BindingExpressionParser.InferredFormalParameterListContext ctx);
-
+ T visitBinaryOp(BindingExpressionParser.BinaryOpContext ctx);
/**
- * Visit a parse tree produced by {@link BindingExpressionParser#expression}.
+ * Visit a parse tree produced by the {@code FunctionRef}
+ * labeled alternative in {@link BindingExpressionParser#expression}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitExpression(@NotNull BindingExpressionParser.ExpressionContext ctx);
-
+ T visitFunctionRef(BindingExpressionParser.FunctionRefContext ctx);
/**
* Visit a parse tree produced by {@link BindingExpressionParser#classExtraction}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitClassExtraction(@NotNull BindingExpressionParser.ClassExtractionContext ctx);
-
+ T visitClassExtraction(BindingExpressionParser.ClassExtractionContext 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);
-
+ T visitExpressionList(BindingExpressionParser.ExpressionListContext ctx);
/**
* Visit a parse tree produced by {@link BindingExpressionParser#literal}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitLiteral(@NotNull BindingExpressionParser.LiteralContext ctx);
-
+ T visitLiteral(BindingExpressionParser.LiteralContext ctx);
/**
* Visit a parse tree produced by {@link BindingExpressionParser#identifier}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitIdentifier(@NotNull BindingExpressionParser.IdentifierContext ctx);
-
+ T visitIdentifier(BindingExpressionParser.IdentifierContext 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);
-
+ T visitJavaLiteral(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);
-
+ T visitStringLiteral(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);
-
+ T visitExplicitGenericInvocation(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);
-
+ T visitTypeArguments(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);
-
+ T visitType(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);
-
+ T visitExplicitGenericInvocationSuffix(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);
-
+ T visitArguments(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);
-
+ T visitClassOrInterfaceType(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);
-
+ T visitPrimitiveType(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);
-
+ T visitResources(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);
+ T visitResourceParameters(BindingExpressionParser.ResourceParametersContext ctx);
} \ No newline at end of file
diff --git a/compilerCommon/src/main/java/android/databinding/tool/util/StringUtils.java b/compilerCommon/src/main/java/android/databinding/tool/util/StringUtils.java
index 5f535baf..5774183a 100644
--- a/compilerCommon/src/main/java/android/databinding/tool/util/StringUtils.java
+++ b/compilerCommon/src/main/java/android/databinding/tool/util/StringUtils.java
@@ -19,8 +19,6 @@ package android.databinding.tool.util;
import com.google.common.base.StandardSystemProperty;
import com.google.common.base.Strings;
-import org.antlr.v4.runtime.misc.Nullable;
-
public class StringUtils {
public static final String LINE_SEPARATOR = StandardSystemProperty.LINE_SEPARATOR.value();
@@ -41,7 +39,7 @@ public class StringUtils {
/** The entity for the line feed character */
private static final String LFEED_ENTITY = "&#xA;";
- public static boolean isNotBlank(@Nullable CharSequence string) {
+ public static boolean isNotBlank(CharSequence string) {
if (string == null) {
return false;
}
@@ -53,7 +51,7 @@ public class StringUtils {
return false;
}
- public static String capitalize(@Nullable String string) {
+ public static String capitalize(String string) {
if (Strings.isNullOrEmpty(string)) {
return string;
}
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.java b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.java
index b8c79bb7..352a2f10 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.java
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.java
@@ -1,13 +1,21 @@
-// Generated from XMLLexer.g4 by ANTLR 4.4
+// Generated from XMLLexer.g4 by ANTLR 4.5.3
package android.databinding.parser;
-
-import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
-import org.antlr.v4.runtime.atn.ATN;
-import org.antlr.v4.runtime.atn.ATNDeserializer;
-import org.antlr.v4.runtime.atn.LexerATNSimulator;
+import org.antlr.v4.runtime.CharStream;
+import org.antlr.v4.runtime.Token;
+import org.antlr.v4.runtime.TokenStream;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.misc.*;
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class XMLLexer extends Lexer {
+ static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
public static final int
COMMENT=1, CDATA=2, DTD=3, EntityRef=4, CharRef=5, SEA_WS=6, OPEN=7, XMLDeclOpen=8,
TEXT=9, CLOSE=10, SPECIAL_CLOSE=11, SLASH_CLOSE=12, SLASH=13, EQUALS=14,
@@ -18,11 +26,6 @@ public class XMLLexer extends Lexer {
"DEFAULT_MODE", "INSIDE", "PROC_INSTR"
};
- public static final String[] tokenNames = {
- "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'",
- "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'",
- "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'"
- };
public static final String[] ruleNames = {
"COMMENT", "CDATA", "DTD", "EntityRef", "CharRef", "SEA_WS", "OPEN", "XMLDeclOpen",
"SPECIAL_OPEN", "TEXT", "CLOSE", "SPECIAL_CLOSE", "SLASH_CLOSE", "SLASH",
@@ -30,19 +33,58 @@ public class XMLLexer extends Lexer {
"PI", "IGNORE"
};
+ private static final String[] _LITERAL_NAMES = {
+ null, null, null, null, null, null, null, "'<'", null, null, "'>'", null,
+ "'/>'", "'/'", "'='"
+ };
+ private static final String[] _SYMBOLIC_NAMES = {
+ null, "COMMENT", "CDATA", "DTD", "EntityRef", "CharRef", "SEA_WS", "OPEN",
+ "XMLDeclOpen", "TEXT", "CLOSE", "SPECIAL_CLOSE", "SLASH_CLOSE", "SLASH",
+ "EQUALS", "STRING", "Name", "S", "PI"
+ };
+ 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
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
public XMLLexer(CharStream input) {
super(input);
- _interp = new LexerATNSimulator(this,_ATN);
+ _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() { return "XMLLexer.g4"; }
@Override
- public String[] getTokenNames() { return tokenNames; }
-
- @Override
public String[] getRuleNames() { return ruleNames; }
@Override
@@ -51,8 +93,11 @@ public class XMLLexer extends Lexer {
@Override
public String[] getModeNames() { return modeNames; }
+ @Override
+ public ATN getATN() { return _ATN; }
+
public static final String _serializedATN =
- "\3\uaf6f\u8320\u479d\ub75c\u4880\u1605\u191c\uab37\2\24\u00e9\b\1\b\1"+
+ "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\24\u00e9\b\1\b\1"+
"\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4"+
"\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t"+
"\21\4\22\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t"+
@@ -69,68 +114,71 @@ public class XMLLexer extends Lexer {
"\13\21\3\21\5\21\u00c7\n\21\3\22\3\22\7\22\u00cb\n\22\f\22\16\22\u00ce"+
"\13\22\3\23\3\23\3\23\3\23\3\24\3\24\3\25\3\25\3\26\3\26\3\26\3\26\5\26"+
"\u00dc\n\26\3\27\5\27\u00df\n\27\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3"+
- "\31\3\31\5=Q^\2\2\32\5\2\3\7\2\4\t\2\5\13\2\6\r\2\7\17\2\b\21\2\t\23\2"+
- "\n\25\2\2\27\2\13\31\2\f\33\2\r\35\2\16\37\2\17!\2\20#\2\21%\2\22\'\2"+
- "\23)\2\2+\2\2-\2\2/\2\2\61\2\24\63\2\2\5\2\3\4\f\4\2\13\13\"\"\4\2((>"+
- ">\4\2$$>>\4\2))>>\5\2\13\f\17\17\"\"\5\2\62;CHch\3\2\62;\4\2/\60aa\5\2"+
- "\u00b9\u00b9\u0302\u0371\u2041\u2042\n\2<<C\\c|\u2072\u2191\u2c02\u2ff1"+
- "\u3003\ud801\uf902\ufdd1\ufdf2\uffff\u00f3\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\3\31\3\2\2\2\3\33\3\2\2\2\3\35\3\2\2\2\3"+
- "\37\3\2\2\2\3!\3\2\2\2\3#\3\2\2\2\3%\3\2\2\2\3\'\3\2\2\2\4\61\3\2\2\2"+
- "\4\63\3\2\2\2\5\65\3\2\2\2\7D\3\2\2\2\tX\3\2\2\2\13e\3\2\2\2\r~\3\2\2"+
- "\2\17\u0085\3\2\2\2\21\u0089\3\2\2\2\23\u008d\3\2\2\2\25\u0097\3\2\2\2"+
- "\27\u00a0\3\2\2\2\31\u00a4\3\2\2\2\33\u00a8\3\2\2\2\35\u00ad\3\2\2\2\37"+
- "\u00b2\3\2\2\2!\u00b4\3\2\2\2#\u00c6\3\2\2\2%\u00c8\3\2\2\2\'\u00cf\3"+
- "\2\2\2)\u00d3\3\2\2\2+\u00d5\3\2\2\2-\u00db\3\2\2\2/\u00de\3\2\2\2\61"+
- "\u00e0\3\2\2\2\63\u00e5\3\2\2\2\65\66\7>\2\2\66\67\7#\2\2\678\7/\2\28"+
- "9\7/\2\29=\3\2\2\2:<\13\2\2\2;:\3\2\2\2<?\3\2\2\2=>\3\2\2\2=;\3\2\2\2"+
- ">@\3\2\2\2?=\3\2\2\2@A\7/\2\2AB\7/\2\2BC\7@\2\2C\6\3\2\2\2DE\7>\2\2EF"+
- "\7#\2\2FG\7]\2\2GH\7E\2\2HI\7F\2\2IJ\7C\2\2JK\7V\2\2KL\7C\2\2LM\7]\2\2"+
- "MQ\3\2\2\2NP\13\2\2\2ON\3\2\2\2PS\3\2\2\2QR\3\2\2\2QO\3\2\2\2RT\3\2\2"+
- "\2SQ\3\2\2\2TU\7_\2\2UV\7_\2\2VW\7@\2\2W\b\3\2\2\2XY\7>\2\2YZ\7#\2\2Z"+
- "^\3\2\2\2[]\13\2\2\2\\[\3\2\2\2]`\3\2\2\2^_\3\2\2\2^\\\3\2\2\2_a\3\2\2"+
- "\2`^\3\2\2\2ab\7@\2\2bc\3\2\2\2cd\b\4\2\2d\n\3\2\2\2ef\7(\2\2fg\5%\22"+
- "\2gh\7=\2\2h\f\3\2\2\2ij\7(\2\2jk\7%\2\2km\3\2\2\2ln\5+\25\2ml\3\2\2\2"+
- "no\3\2\2\2om\3\2\2\2op\3\2\2\2pq\3\2\2\2qr\7=\2\2r\177\3\2\2\2st\7(\2"+
- "\2tu\7%\2\2uv\7z\2\2vx\3\2\2\2wy\5)\24\2xw\3\2\2\2yz\3\2\2\2zx\3\2\2\2"+
- "z{\3\2\2\2{|\3\2\2\2|}\7=\2\2}\177\3\2\2\2~i\3\2\2\2~s\3\2\2\2\177\16"+
- "\3\2\2\2\u0080\u0086\t\2\2\2\u0081\u0083\7\17\2\2\u0082\u0081\3\2\2\2"+
- "\u0082\u0083\3\2\2\2\u0083\u0084\3\2\2\2\u0084\u0086\7\f\2\2\u0085\u0080"+
- "\3\2\2\2\u0085\u0082\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u0085\3\2\2\2\u0087"+
- "\u0088\3\2\2\2\u0088\20\3\2\2\2\u0089\u008a\7>\2\2\u008a\u008b\3\2\2\2"+
- "\u008b\u008c\b\b\3\2\u008c\22\3\2\2\2\u008d\u008e\7>\2\2\u008e\u008f\7"+
- "A\2\2\u008f\u0090\7z\2\2\u0090\u0091\7o\2\2\u0091\u0092\7n\2\2\u0092\u0093"+
- "\3\2\2\2\u0093\u0094\5\'\23\2\u0094\u0095\3\2\2\2\u0095\u0096\b\t\3\2"+
- "\u0096\24\3\2\2\2\u0097\u0098\7>\2\2\u0098\u0099\7A\2\2\u0099\u009a\3"+
- "\2\2\2\u009a\u009b\5%\22\2\u009b\u009c\3\2\2\2\u009c\u009d\b\n\4\2\u009d"+
- "\u009e\b\n\5\2\u009e\26\3\2\2\2\u009f\u00a1\n\3\2\2\u00a0\u009f\3\2\2"+
- "\2\u00a1\u00a2\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\30"+
- "\3\2\2\2\u00a4\u00a5\7@\2\2\u00a5\u00a6\3\2\2\2\u00a6\u00a7\b\f\6\2\u00a7"+
- "\32\3\2\2\2\u00a8\u00a9\7A\2\2\u00a9\u00aa\7@\2\2\u00aa\u00ab\3\2\2\2"+
- "\u00ab\u00ac\b\r\6\2\u00ac\34\3\2\2\2\u00ad\u00ae\7\61\2\2\u00ae\u00af"+
- "\7@\2\2\u00af\u00b0\3\2\2\2\u00b0\u00b1\b\16\6\2\u00b1\36\3\2\2\2\u00b2"+
- "\u00b3\7\61\2\2\u00b3 \3\2\2\2\u00b4\u00b5\7?\2\2\u00b5\"\3\2\2\2\u00b6"+
- "\u00ba\7$\2\2\u00b7\u00b9\n\4\2\2\u00b8\u00b7\3\2\2\2\u00b9\u00bc\3\2"+
- "\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2\2\u00bb\u00bd\3\2\2\2\u00bc"+
- "\u00ba\3\2\2\2\u00bd\u00c7\7$\2\2\u00be\u00c2\7)\2\2\u00bf\u00c1\n\5\2"+
- "\2\u00c0\u00bf\3\2\2\2\u00c1\u00c4\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c2\u00c3"+
- "\3\2\2\2\u00c3\u00c5\3\2\2\2\u00c4\u00c2\3\2\2\2\u00c5\u00c7\7)\2\2\u00c6"+
- "\u00b6\3\2\2\2\u00c6\u00be\3\2\2\2\u00c7$\3\2\2\2\u00c8\u00cc\5/\27\2"+
- "\u00c9\u00cb\5-\26\2\u00ca\u00c9\3\2\2\2\u00cb\u00ce\3\2\2\2\u00cc\u00ca"+
- "\3\2\2\2\u00cc\u00cd\3\2\2\2\u00cd&\3\2\2\2\u00ce\u00cc\3\2\2\2\u00cf"+
- "\u00d0\t\6\2\2\u00d0\u00d1\3\2\2\2\u00d1\u00d2\b\23\2\2\u00d2(\3\2\2\2"+
- "\u00d3\u00d4\t\7\2\2\u00d4*\3\2\2\2\u00d5\u00d6\t\b\2\2\u00d6,\3\2\2\2"+
- "\u00d7\u00dc\5/\27\2\u00d8\u00dc\t\t\2\2\u00d9\u00dc\5+\25\2\u00da\u00dc"+
- "\t\n\2\2\u00db\u00d7\3\2\2\2\u00db\u00d8\3\2\2\2\u00db\u00d9\3\2\2\2\u00db"+
- "\u00da\3\2\2\2\u00dc.\3\2\2\2\u00dd\u00df\t\13\2\2\u00de\u00dd\3\2\2\2"+
- "\u00df\60\3\2\2\2\u00e0\u00e1\7A\2\2\u00e1\u00e2\7@\2\2\u00e2\u00e3\3"+
- "\2\2\2\u00e3\u00e4\b\30\6\2\u00e4\62\3\2\2\2\u00e5\u00e6\13\2\2\2\u00e6"+
- "\u00e7\3\2\2\2\u00e7\u00e8\b\31\4\2\u00e8\64\3\2\2\2\25\2\3\4=Q^oz~\u0082"+
- "\u0085\u0087\u00a2\u00ba\u00c2\u00c6\u00cc\u00db\u00de\7\b\2\2\7\3\2\5"+
- "\2\2\7\4\2\6\2\2";
+ "\31\3\31\5=Q^\2\32\5\3\7\4\t\5\13\6\r\7\17\b\21\t\23\n\25\2\27\13\31\f"+
+ "\33\r\35\16\37\17!\20#\21%\22\'\23)\2+\2-\2/\2\61\24\63\2\5\2\3\4\f\4"+
+ "\2\13\13\"\"\4\2((>>\4\2$$>>\4\2))>>\5\2\13\f\17\17\"\"\5\2\62;CHch\3"+
+ "\2\62;\4\2/\60aa\5\2\u00b9\u00b9\u0302\u0371\u2041\u2042\n\2<<C\\c|\u2072"+
+ "\u2191\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff\u00f3\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\3\31\3\2\2\2\3\33\3\2"+
+ "\2\2\3\35\3\2\2\2\3\37\3\2\2\2\3!\3\2\2\2\3#\3\2\2\2\3%\3\2\2\2\3\'\3"+
+ "\2\2\2\4\61\3\2\2\2\4\63\3\2\2\2\5\65\3\2\2\2\7D\3\2\2\2\tX\3\2\2\2\13"+
+ "e\3\2\2\2\r~\3\2\2\2\17\u0085\3\2\2\2\21\u0089\3\2\2\2\23\u008d\3\2\2"+
+ "\2\25\u0097\3\2\2\2\27\u00a0\3\2\2\2\31\u00a4\3\2\2\2\33\u00a8\3\2\2\2"+
+ "\35\u00ad\3\2\2\2\37\u00b2\3\2\2\2!\u00b4\3\2\2\2#\u00c6\3\2\2\2%\u00c8"+
+ "\3\2\2\2\'\u00cf\3\2\2\2)\u00d3\3\2\2\2+\u00d5\3\2\2\2-\u00db\3\2\2\2"+
+ "/\u00de\3\2\2\2\61\u00e0\3\2\2\2\63\u00e5\3\2\2\2\65\66\7>\2\2\66\67\7"+
+ "#\2\2\678\7/\2\289\7/\2\29=\3\2\2\2:<\13\2\2\2;:\3\2\2\2<?\3\2\2\2=>\3"+
+ "\2\2\2=;\3\2\2\2>@\3\2\2\2?=\3\2\2\2@A\7/\2\2AB\7/\2\2BC\7@\2\2C\6\3\2"+
+ "\2\2DE\7>\2\2EF\7#\2\2FG\7]\2\2GH\7E\2\2HI\7F\2\2IJ\7C\2\2JK\7V\2\2KL"+
+ "\7C\2\2LM\7]\2\2MQ\3\2\2\2NP\13\2\2\2ON\3\2\2\2PS\3\2\2\2QR\3\2\2\2QO"+
+ "\3\2\2\2RT\3\2\2\2SQ\3\2\2\2TU\7_\2\2UV\7_\2\2VW\7@\2\2W\b\3\2\2\2XY\7"+
+ ">\2\2YZ\7#\2\2Z^\3\2\2\2[]\13\2\2\2\\[\3\2\2\2]`\3\2\2\2^_\3\2\2\2^\\"+
+ "\3\2\2\2_a\3\2\2\2`^\3\2\2\2ab\7@\2\2bc\3\2\2\2cd\b\4\2\2d\n\3\2\2\2e"+
+ "f\7(\2\2fg\5%\22\2gh\7=\2\2h\f\3\2\2\2ij\7(\2\2jk\7%\2\2km\3\2\2\2ln\5"+
+ "+\25\2ml\3\2\2\2no\3\2\2\2om\3\2\2\2op\3\2\2\2pq\3\2\2\2qr\7=\2\2r\177"+
+ "\3\2\2\2st\7(\2\2tu\7%\2\2uv\7z\2\2vx\3\2\2\2wy\5)\24\2xw\3\2\2\2yz\3"+
+ "\2\2\2zx\3\2\2\2z{\3\2\2\2{|\3\2\2\2|}\7=\2\2}\177\3\2\2\2~i\3\2\2\2~"+
+ "s\3\2\2\2\177\16\3\2\2\2\u0080\u0086\t\2\2\2\u0081\u0083\7\17\2\2\u0082"+
+ "\u0081\3\2\2\2\u0082\u0083\3\2\2\2\u0083\u0084\3\2\2\2\u0084\u0086\7\f"+
+ "\2\2\u0085\u0080\3\2\2\2\u0085\u0082\3\2\2\2\u0086\u0087\3\2\2\2\u0087"+
+ "\u0085\3\2\2\2\u0087\u0088\3\2\2\2\u0088\20\3\2\2\2\u0089\u008a\7>\2\2"+
+ "\u008a\u008b\3\2\2\2\u008b\u008c\b\b\3\2\u008c\22\3\2\2\2\u008d\u008e"+
+ "\7>\2\2\u008e\u008f\7A\2\2\u008f\u0090\7z\2\2\u0090\u0091\7o\2\2\u0091"+
+ "\u0092\7n\2\2\u0092\u0093\3\2\2\2\u0093\u0094\5\'\23\2\u0094\u0095\3\2"+
+ "\2\2\u0095\u0096\b\t\3\2\u0096\24\3\2\2\2\u0097\u0098\7>\2\2\u0098\u0099"+
+ "\7A\2\2\u0099\u009a\3\2\2\2\u009a\u009b\5%\22\2\u009b\u009c\3\2\2\2\u009c"+
+ "\u009d\b\n\4\2\u009d\u009e\b\n\5\2\u009e\26\3\2\2\2\u009f\u00a1\n\3\2"+
+ "\2\u00a0\u009f\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2\u00a3"+
+ "\3\2\2\2\u00a3\30\3\2\2\2\u00a4\u00a5\7@\2\2\u00a5\u00a6\3\2\2\2\u00a6"+
+ "\u00a7\b\f\6\2\u00a7\32\3\2\2\2\u00a8\u00a9\7A\2\2\u00a9\u00aa\7@\2\2"+
+ "\u00aa\u00ab\3\2\2\2\u00ab\u00ac\b\r\6\2\u00ac\34\3\2\2\2\u00ad\u00ae"+
+ "\7\61\2\2\u00ae\u00af\7@\2\2\u00af\u00b0\3\2\2\2\u00b0\u00b1\b\16\6\2"+
+ "\u00b1\36\3\2\2\2\u00b2\u00b3\7\61\2\2\u00b3 \3\2\2\2\u00b4\u00b5\7?\2"+
+ "\2\u00b5\"\3\2\2\2\u00b6\u00ba\7$\2\2\u00b7\u00b9\n\4\2\2\u00b8\u00b7"+
+ "\3\2\2\2\u00b9\u00bc\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2\2\u00bb"+
+ "\u00bd\3\2\2\2\u00bc\u00ba\3\2\2\2\u00bd\u00c7\7$\2\2\u00be\u00c2\7)\2"+
+ "\2\u00bf\u00c1\n\5\2\2\u00c0\u00bf\3\2\2\2\u00c1\u00c4\3\2\2\2\u00c2\u00c0"+
+ "\3\2\2\2\u00c2\u00c3\3\2\2\2\u00c3\u00c5\3\2\2\2\u00c4\u00c2\3\2\2\2\u00c5"+
+ "\u00c7\7)\2\2\u00c6\u00b6\3\2\2\2\u00c6\u00be\3\2\2\2\u00c7$\3\2\2\2\u00c8"+
+ "\u00cc\5/\27\2\u00c9\u00cb\5-\26\2\u00ca\u00c9\3\2\2\2\u00cb\u00ce\3\2"+
+ "\2\2\u00cc\u00ca\3\2\2\2\u00cc\u00cd\3\2\2\2\u00cd&\3\2\2\2\u00ce\u00cc"+
+ "\3\2\2\2\u00cf\u00d0\t\6\2\2\u00d0\u00d1\3\2\2\2\u00d1\u00d2\b\23\2\2"+
+ "\u00d2(\3\2\2\2\u00d3\u00d4\t\7\2\2\u00d4*\3\2\2\2\u00d5\u00d6\t\b\2\2"+
+ "\u00d6,\3\2\2\2\u00d7\u00dc\5/\27\2\u00d8\u00dc\t\t\2\2\u00d9\u00dc\5"+
+ "+\25\2\u00da\u00dc\t\n\2\2\u00db\u00d7\3\2\2\2\u00db\u00d8\3\2\2\2\u00db"+
+ "\u00d9\3\2\2\2\u00db\u00da\3\2\2\2\u00dc.\3\2\2\2\u00dd\u00df\t\13\2\2"+
+ "\u00de\u00dd\3\2\2\2\u00df\60\3\2\2\2\u00e0\u00e1\7A\2\2\u00e1\u00e2\7"+
+ "@\2\2\u00e2\u00e3\3\2\2\2\u00e3\u00e4\b\30\6\2\u00e4\62\3\2\2\2\u00e5"+
+ "\u00e6\13\2\2\2\u00e6\u00e7\3\2\2\2\u00e7\u00e8\b\31\4\2\u00e8\64\3\2"+
+ "\2\2\25\2\3\4=Q^oz~\u0082\u0085\u0087\u00a2\u00ba\u00c2\u00c6\u00cc\u00db"+
+ "\u00de\7\b\2\2\7\3\2\5\2\2\7\4\2\6\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
}
} \ No newline at end of file
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.tokens b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.tokens
index cd122a48..d80683d7 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.tokens
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLLexer.tokens
@@ -1,23 +1,23 @@
-OPEN=7
+COMMENT=1
CDATA=2
-SLASH=13
+DTD=3
+EntityRef=4
CharRef=5
SEA_WS=6
-SPECIAL_CLOSE=11
+OPEN=7
+XMLDeclOpen=8
+TEXT=9
CLOSE=10
-DTD=3
-Name=16
-EQUALS=14
-PI=18
-S=17
+SPECIAL_CLOSE=11
SLASH_CLOSE=12
-TEXT=9
-COMMENT=1
-XMLDeclOpen=8
-EntityRef=4
+SLASH=13
+EQUALS=14
STRING=15
-'='=14
-'/'=13
+Name=16
+S=17
+PI=18
'<'=7
-'/>'=12
'>'=10
+'/>'=12
+'/'=13
+'='=14
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.java b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.java
index a3757804..5eaad942 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.java
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.java
@@ -1,4 +1,4 @@
-// Generated from XMLParser.g4 by ANTLR 4.4
+// Generated from XMLParser.g4 by ANTLR 4.5.3
package android.databinding.parser;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
@@ -6,17 +6,20 @@ 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;
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class XMLParser extends Parser {
+ static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
public static final int
- OPEN=7, CDATA=2, SLASH=13, CharRef=5, SEA_WS=6, SPECIAL_CLOSE=11, CLOSE=10,
- DTD=3, Name=16, EQUALS=14, PI=18, S=17, SLASH_CLOSE=12, TEXT=9, COMMENT=1,
- XMLDeclOpen=8, EntityRef=4, STRING=15;
- public static final String[] tokenNames = {
- "<INVALID>", "COMMENT", "CDATA", "DTD", "EntityRef", "CharRef", "SEA_WS",
- "'<'", "XMLDeclOpen", "TEXT", "'>'", "SPECIAL_CLOSE", "'/>'", "'/'", "'='",
- "STRING", "Name", "S", "PI"
- };
+ COMMENT=1, CDATA=2, DTD=3, EntityRef=4, CharRef=5, SEA_WS=6, OPEN=7, XMLDeclOpen=8,
+ TEXT=9, CLOSE=10, SPECIAL_CLOSE=11, SLASH_CLOSE=12, SLASH=13, EQUALS=14,
+ STRING=15, Name=16, S=17, PI=18;
public static final int
RULE_document = 0, RULE_prolog = 1, RULE_content = 2, RULE_element = 3,
RULE_reference = 4, RULE_attribute = 5, RULE_chardata = 6, RULE_misc = 7;
@@ -25,11 +28,50 @@ public class XMLParser extends Parser {
"chardata", "misc"
};
+ private static final String[] _LITERAL_NAMES = {
+ null, null, null, null, null, null, null, "'<'", null, null, "'>'", null,
+ "'/>'", "'/'", "'='"
+ };
+ private static final String[] _SYMBOLIC_NAMES = {
+ null, "COMMENT", "CDATA", "DTD", "EntityRef", "CharRef", "SEA_WS", "OPEN",
+ "XMLDeclOpen", "TEXT", "CLOSE", "SPECIAL_CLOSE", "SLASH_CLOSE", "SLASH",
+ "EQUALS", "STRING", "Name", "S", "PI"
+ };
+ 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 getGrammarFileName() { return "XMLParser.g4"; }
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
@Override
- public String[] getTokenNames() { return tokenNames; }
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+ @Override
+ public String getGrammarFileName() { return "XMLParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@@ -37,20 +79,23 @@ public class XMLParser extends Parser {
@Override
public String getSerializedATN() { return _serializedATN; }
+ @Override
+ public ATN getATN() { return _ATN; }
+
public XMLParser(TokenStream input) {
super(input);
- _interp = new ParserATNSimulator(this,_ATN);
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class DocumentContext extends ParserRuleContext {
public ElementContext element() {
return getRuleContext(ElementContext.class,0);
}
- public List<? extends MiscContext> misc() {
- return getRuleContexts(MiscContext.class);
- }
public PrologContext prolog() {
return getRuleContext(PrologContext.class,0);
}
+ public List<MiscContext> misc() {
+ return getRuleContexts(MiscContext.class);
+ }
public MiscContext misc(int i) {
return getRuleContext(MiscContext.class,i);
}
@@ -67,13 +112,12 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitDocument(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitDocument(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitDocument(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final DocumentContext document() throws RecognitionException {
DocumentContext _localctx = new DocumentContext(_ctx, getState());
enterRule(_localctx, 0, RULE_document);
@@ -85,7 +129,8 @@ public class XMLParser extends Parser {
_la = _input.LA(1);
if (_la==XMLDeclOpen) {
{
- setState(16); prolog();
+ setState(16);
+ prolog();
}
}
@@ -95,21 +140,24 @@ public class XMLParser extends Parser {
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << COMMENT) | (1L << SEA_WS) | (1L << PI))) != 0)) {
{
{
- setState(19); misc();
+ setState(19);
+ misc();
}
}
setState(24);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(25); element();
+ setState(25);
+ element();
setState(29);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << COMMENT) | (1L << SEA_WS) | (1L << PI))) != 0)) {
{
{
- setState(26); misc();
+ setState(26);
+ misc();
}
}
setState(31);
@@ -130,14 +178,14 @@ public class XMLParser extends Parser {
}
public static class PrologContext extends ParserRuleContext {
+ public TerminalNode XMLDeclOpen() { return getToken(XMLParser.XMLDeclOpen, 0); }
public TerminalNode SPECIAL_CLOSE() { return getToken(XMLParser.SPECIAL_CLOSE, 0); }
- public List<? extends AttributeContext> attribute() {
+ public List<AttributeContext> attribute() {
return getRuleContexts(AttributeContext.class);
}
public AttributeContext attribute(int i) {
return getRuleContext(AttributeContext.class,i);
}
- public TerminalNode XMLDeclOpen() { return getToken(XMLParser.XMLDeclOpen, 0); }
public PrologContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -151,13 +199,12 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitProlog(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitProlog(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitProlog(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final PrologContext prolog() throws RecognitionException {
PrologContext _localctx = new PrologContext(_ctx, getState());
enterRule(_localctx, 2, RULE_prolog);
@@ -165,21 +212,24 @@ public class XMLParser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
- setState(32); match(XMLDeclOpen);
+ setState(32);
+ match(XMLDeclOpen);
setState(36);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Name) {
{
{
- setState(33); attribute();
+ setState(33);
+ attribute();
}
}
setState(38);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(39); match(SPECIAL_CLOSE);
+ setState(39);
+ match(SPECIAL_CLOSE);
}
}
catch (RecognitionException re) {
@@ -194,35 +244,35 @@ public class XMLParser extends Parser {
}
public static class ContentContext extends ParserRuleContext {
- public List<? extends TerminalNode> PI() { return getTokens(XMLParser.PI); }
- public List<? extends TerminalNode> CDATA() { return getTokens(XMLParser.CDATA); }
- public List<? extends ElementContext> element() {
- return getRuleContexts(ElementContext.class);
+ public List<ChardataContext> chardata() {
+ return getRuleContexts(ChardataContext.class);
}
- public TerminalNode PI(int i) {
- return getToken(XMLParser.PI, i);
+ public ChardataContext chardata(int i) {
+ return getRuleContext(ChardataContext.class,i);
+ }
+ public List<ElementContext> element() {
+ return getRuleContexts(ElementContext.class);
}
public ElementContext element(int i) {
return getRuleContext(ElementContext.class,i);
}
- public TerminalNode COMMENT(int i) {
- return getToken(XMLParser.COMMENT, i);
- }
- public TerminalNode CDATA(int i) {
- return getToken(XMLParser.CDATA, i);
+ public List<ReferenceContext> reference() {
+ return getRuleContexts(ReferenceContext.class);
}
public ReferenceContext reference(int i) {
return getRuleContext(ReferenceContext.class,i);
}
- public List<? extends TerminalNode> COMMENT() { return getTokens(XMLParser.COMMENT); }
- public ChardataContext chardata(int i) {
- return getRuleContext(ChardataContext.class,i);
+ public List<TerminalNode> CDATA() { return getTokens(XMLParser.CDATA); }
+ public TerminalNode CDATA(int i) {
+ return getToken(XMLParser.CDATA, i);
}
- public List<? extends ChardataContext> chardata() {
- return getRuleContexts(ChardataContext.class);
+ public List<TerminalNode> PI() { return getTokens(XMLParser.PI); }
+ public TerminalNode PI(int i) {
+ return getToken(XMLParser.PI, i);
}
- public List<? extends ReferenceContext> reference() {
- return getRuleContexts(ReferenceContext.class);
+ public List<TerminalNode> COMMENT() { return getTokens(XMLParser.COMMENT); }
+ public TerminalNode COMMENT(int i) {
+ return getToken(XMLParser.COMMENT, i);
}
public ContentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
@@ -237,13 +287,12 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitContent(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitContent(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitContent(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ContentContext content() throws RecognitionException {
ContentContext _localctx = new ContentContext(_ctx, getState());
enterRule(_localctx, 4, RULE_content);
@@ -256,7 +305,8 @@ public class XMLParser extends Parser {
_la = _input.LA(1);
if (_la==SEA_WS || _la==TEXT) {
{
- setState(41); chardata();
+ setState(41);
+ chardata();
}
}
@@ -271,28 +321,33 @@ public class XMLParser extends Parser {
switch (_input.LA(1)) {
case OPEN:
{
- setState(44); element();
+ setState(44);
+ element();
}
break;
case EntityRef:
case CharRef:
{
- setState(45); reference();
+ setState(45);
+ reference();
}
break;
case CDATA:
{
- setState(46); match(CDATA);
+ setState(46);
+ match(CDATA);
}
break;
case PI:
{
- setState(47); match(PI);
+ setState(47);
+ match(PI);
}
break;
case COMMENT:
{
- setState(48); match(COMMENT);
+ setState(48);
+ match(COMMENT);
}
break;
default:
@@ -302,7 +357,8 @@ public class XMLParser extends Parser {
_la = _input.LA(1);
if (_la==SEA_WS || _la==TEXT) {
{
- setState(51); chardata();
+ setState(51);
+ chardata();
}
}
@@ -328,18 +384,18 @@ public class XMLParser extends Parser {
public static class ElementContext extends ParserRuleContext {
public Token elmName;
- public List<? extends AttributeContext> attribute() {
- return getRuleContexts(AttributeContext.class);
- }
- public AttributeContext attribute(int i) {
- return getRuleContext(AttributeContext.class,i);
+ public ContentContext content() {
+ return getRuleContext(ContentContext.class,0);
}
+ public List<TerminalNode> Name() { return getTokens(XMLParser.Name); }
public TerminalNode Name(int i) {
return getToken(XMLParser.Name, i);
}
- public List<? extends TerminalNode> Name() { return getTokens(XMLParser.Name); }
- public ContentContext content() {
- return getRuleContext(ContentContext.class,0);
+ public List<AttributeContext> attribute() {
+ return getRuleContexts(AttributeContext.class);
+ }
+ public AttributeContext attribute(int i) {
+ return getRuleContext(AttributeContext.class,i);
}
public ElementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
@@ -354,66 +410,78 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitElement(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitElement(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitElement(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ElementContext element() throws RecognitionException {
ElementContext _localctx = new ElementContext(_ctx, getState());
enterRule(_localctx, 6, RULE_element);
int _la;
try {
setState(83);
+ _errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
- setState(59); match(OPEN);
- setState(60); _localctx.elmName = match(Name);
+ setState(59);
+ match(OPEN);
+ setState(60);
+ ((ElementContext)_localctx).elmName = match(Name);
setState(64);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Name) {
{
{
- setState(61); attribute();
+ setState(61);
+ attribute();
}
}
setState(66);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(67); match(CLOSE);
- setState(68); content();
- setState(69); match(OPEN);
- setState(70); match(SLASH);
- setState(71); match(Name);
- setState(72); match(CLOSE);
+ setState(67);
+ match(CLOSE);
+ setState(68);
+ content();
+ setState(69);
+ match(OPEN);
+ setState(70);
+ match(SLASH);
+ setState(71);
+ match(Name);
+ setState(72);
+ match(CLOSE);
}
break;
-
case 2:
enterOuterAlt(_localctx, 2);
{
- setState(74); match(OPEN);
- setState(75); _localctx.elmName = match(Name);
+ setState(74);
+ match(OPEN);
+ setState(75);
+ ((ElementContext)_localctx).elmName = match(Name);
setState(79);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Name) {
{
{
- setState(76); attribute();
+ setState(76);
+ attribute();
}
}
setState(81);
_errHandler.sync(this);
_la = _input.LA(1);
}
- setState(82); match(SLASH_CLOSE);
+ setState(82);
+ match(SLASH_CLOSE);
}
break;
}
@@ -430,8 +498,8 @@ public class XMLParser extends Parser {
}
public static class ReferenceContext extends ParserRuleContext {
- public TerminalNode CharRef() { return getToken(XMLParser.CharRef, 0); }
public TerminalNode EntityRef() { return getToken(XMLParser.EntityRef, 0); }
+ public TerminalNode CharRef() { return getToken(XMLParser.CharRef, 0); }
public ReferenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -445,13 +513,12 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitReference(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitReference(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitReference(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ReferenceContext reference() throws RecognitionException {
ReferenceContext _localctx = new ReferenceContext(_ctx, getState());
enterRule(_localctx, 8, RULE_reference);
@@ -463,8 +530,9 @@ public class XMLParser extends Parser {
_la = _input.LA(1);
if ( !(_la==EntityRef || _la==CharRef) ) {
_errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
}
}
catch (RecognitionException re) {
@@ -496,22 +564,24 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitAttribute(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitAttribute(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitAttribute(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final AttributeContext attribute() throws RecognitionException {
AttributeContext _localctx = new AttributeContext(_ctx, getState());
enterRule(_localctx, 10, RULE_attribute);
try {
enterOuterAlt(_localctx, 1);
{
- setState(87); _localctx.attrName = match(Name);
- setState(88); match(EQUALS);
- setState(89); _localctx.attrValue = match(STRING);
+ setState(87);
+ ((AttributeContext)_localctx).attrName = match(Name);
+ setState(88);
+ match(EQUALS);
+ setState(89);
+ ((AttributeContext)_localctx).attrValue = match(STRING);
}
}
catch (RecognitionException re) {
@@ -526,8 +596,8 @@ public class XMLParser extends Parser {
}
public static class ChardataContext extends ParserRuleContext {
- public TerminalNode SEA_WS() { return getToken(XMLParser.SEA_WS, 0); }
public TerminalNode TEXT() { return getToken(XMLParser.TEXT, 0); }
+ public TerminalNode SEA_WS() { return getToken(XMLParser.SEA_WS, 0); }
public ChardataContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -541,13 +611,12 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitChardata(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitChardata(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitChardata(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final ChardataContext chardata() throws RecognitionException {
ChardataContext _localctx = new ChardataContext(_ctx, getState());
enterRule(_localctx, 12, RULE_chardata);
@@ -559,8 +628,9 @@ public class XMLParser extends Parser {
_la = _input.LA(1);
if ( !(_la==SEA_WS || _la==TEXT) ) {
_errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
}
}
catch (RecognitionException re) {
@@ -575,9 +645,9 @@ public class XMLParser extends Parser {
}
public static class MiscContext extends ParserRuleContext {
- public TerminalNode SEA_WS() { return getToken(XMLParser.SEA_WS, 0); }
- public TerminalNode PI() { return getToken(XMLParser.PI, 0); }
public TerminalNode COMMENT() { return getToken(XMLParser.COMMENT, 0); }
+ public TerminalNode PI() { return getToken(XMLParser.PI, 0); }
+ public TerminalNode SEA_WS() { return getToken(XMLParser.SEA_WS, 0); }
public MiscContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@@ -591,13 +661,12 @@ public class XMLParser extends Parser {
if ( listener instanceof XMLParserListener ) ((XMLParserListener)listener).exitMisc(this);
}
@Override
- public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
- if ( visitor instanceof XMLParserVisitor<?> ) return ((XMLParserVisitor<? extends Result>)visitor).visitMisc(this);
+ public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+ if ( visitor instanceof XMLParserVisitor ) return ((XMLParserVisitor<? extends T>)visitor).visitMisc(this);
else return visitor.visitChildren(this);
}
}
- @RuleVersion(0)
public final MiscContext misc() throws RecognitionException {
MiscContext _localctx = new MiscContext(_ctx, getState());
enterRule(_localctx, 14, RULE_misc);
@@ -609,8 +678,9 @@ public class XMLParser extends Parser {
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << COMMENT) | (1L << SEA_WS) | (1L << PI))) != 0)) ) {
_errHandler.recoverInline(this);
+ } else {
+ consume();
}
- consume();
}
}
catch (RecognitionException re) {
@@ -625,34 +695,38 @@ public class XMLParser extends Parser {
}
public static final String _serializedATN =
- "\3\uaf6f\u8320\u479d\ub75c\u4880\u1605\u191c\uab37\3\24b\4\2\t\2\4\3\t"+
+ "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\24b\4\2\t\2\4\3\t"+
"\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\3\2\5\2\24\n\2\3\2"+
"\7\2\27\n\2\f\2\16\2\32\13\2\3\2\3\2\7\2\36\n\2\f\2\16\2!\13\2\3\3\3\3"+
"\7\3%\n\3\f\3\16\3(\13\3\3\3\3\3\3\4\5\4-\n\4\3\4\3\4\3\4\3\4\3\4\5\4"+
"\64\n\4\3\4\5\4\67\n\4\7\49\n\4\f\4\16\4<\13\4\3\5\3\5\3\5\7\5A\n\5\f"+
"\5\16\5D\13\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\7\5P\n\5\f\5\16"+
"\5S\13\5\3\5\5\5V\n\5\3\6\3\6\3\7\3\7\3\7\3\7\3\b\3\b\3\t\3\t\3\t\2\2"+
- "\2\n\2\2\4\2\6\2\b\2\n\2\f\2\16\2\20\2\2\5\3\2\6\7\4\2\b\b\13\13\5\2\3"+
- "\3\b\b\24\24g\2\23\3\2\2\2\4\"\3\2\2\2\6,\3\2\2\2\bU\3\2\2\2\nW\3\2\2"+
- "\2\fY\3\2\2\2\16]\3\2\2\2\20_\3\2\2\2\22\24\5\4\3\2\23\22\3\2\2\2\23\24"+
- "\3\2\2\2\24\30\3\2\2\2\25\27\5\20\t\2\26\25\3\2\2\2\27\32\3\2\2\2\30\26"+
- "\3\2\2\2\30\31\3\2\2\2\31\33\3\2\2\2\32\30\3\2\2\2\33\37\5\b\5\2\34\36"+
- "\5\20\t\2\35\34\3\2\2\2\36!\3\2\2\2\37\35\3\2\2\2\37 \3\2\2\2 \3\3\2\2"+
- "\2!\37\3\2\2\2\"&\7\n\2\2#%\5\f\7\2$#\3\2\2\2%(\3\2\2\2&$\3\2\2\2&\'\3"+
- "\2\2\2\')\3\2\2\2(&\3\2\2\2)*\7\r\2\2*\5\3\2\2\2+-\5\16\b\2,+\3\2\2\2"+
- ",-\3\2\2\2-:\3\2\2\2.\64\5\b\5\2/\64\5\n\6\2\60\64\7\4\2\2\61\64\7\24"+
- "\2\2\62\64\7\3\2\2\63.\3\2\2\2\63/\3\2\2\2\63\60\3\2\2\2\63\61\3\2\2\2"+
- "\63\62\3\2\2\2\64\66\3\2\2\2\65\67\5\16\b\2\66\65\3\2\2\2\66\67\3\2\2"+
- "\2\679\3\2\2\28\63\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\7\3\2\2\2<:"+
- "\3\2\2\2=>\7\t\2\2>B\7\22\2\2?A\5\f\7\2@?\3\2\2\2AD\3\2\2\2B@\3\2\2\2"+
- "BC\3\2\2\2CE\3\2\2\2DB\3\2\2\2EF\7\f\2\2FG\5\6\4\2GH\7\t\2\2HI\7\17\2"+
- "\2IJ\7\22\2\2JK\7\f\2\2KV\3\2\2\2LM\7\t\2\2MQ\7\22\2\2NP\5\f\7\2ON\3\2"+
- "\2\2PS\3\2\2\2QO\3\2\2\2QR\3\2\2\2RT\3\2\2\2SQ\3\2\2\2TV\7\16\2\2U=\3"+
- "\2\2\2UL\3\2\2\2V\t\3\2\2\2WX\t\2\2\2X\13\3\2\2\2YZ\7\22\2\2Z[\7\20\2"+
- "\2[\\\7\21\2\2\\\r\3\2\2\2]^\t\3\2\2^\17\3\2\2\2_`\t\4\2\2`\21\3\2\2\2"+
- "\r\23\30\37&,\63\66:BQU";
+ "\n\2\4\6\b\n\f\16\20\2\5\3\2\6\7\4\2\b\b\13\13\5\2\3\3\b\b\24\24g\2\23"+
+ "\3\2\2\2\4\"\3\2\2\2\6,\3\2\2\2\bU\3\2\2\2\nW\3\2\2\2\fY\3\2\2\2\16]\3"+
+ "\2\2\2\20_\3\2\2\2\22\24\5\4\3\2\23\22\3\2\2\2\23\24\3\2\2\2\24\30\3\2"+
+ "\2\2\25\27\5\20\t\2\26\25\3\2\2\2\27\32\3\2\2\2\30\26\3\2\2\2\30\31\3"+
+ "\2\2\2\31\33\3\2\2\2\32\30\3\2\2\2\33\37\5\b\5\2\34\36\5\20\t\2\35\34"+
+ "\3\2\2\2\36!\3\2\2\2\37\35\3\2\2\2\37 \3\2\2\2 \3\3\2\2\2!\37\3\2\2\2"+
+ "\"&\7\n\2\2#%\5\f\7\2$#\3\2\2\2%(\3\2\2\2&$\3\2\2\2&\'\3\2\2\2\')\3\2"+
+ "\2\2(&\3\2\2\2)*\7\r\2\2*\5\3\2\2\2+-\5\16\b\2,+\3\2\2\2,-\3\2\2\2-:\3"+
+ "\2\2\2.\64\5\b\5\2/\64\5\n\6\2\60\64\7\4\2\2\61\64\7\24\2\2\62\64\7\3"+
+ "\2\2\63.\3\2\2\2\63/\3\2\2\2\63\60\3\2\2\2\63\61\3\2\2\2\63\62\3\2\2\2"+
+ "\64\66\3\2\2\2\65\67\5\16\b\2\66\65\3\2\2\2\66\67\3\2\2\2\679\3\2\2\2"+
+ "8\63\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\7\3\2\2\2<:\3\2\2\2=>\7\t"+
+ "\2\2>B\7\22\2\2?A\5\f\7\2@?\3\2\2\2AD\3\2\2\2B@\3\2\2\2BC\3\2\2\2CE\3"+
+ "\2\2\2DB\3\2\2\2EF\7\f\2\2FG\5\6\4\2GH\7\t\2\2HI\7\17\2\2IJ\7\22\2\2J"+
+ "K\7\f\2\2KV\3\2\2\2LM\7\t\2\2MQ\7\22\2\2NP\5\f\7\2ON\3\2\2\2PS\3\2\2\2"+
+ "QO\3\2\2\2QR\3\2\2\2RT\3\2\2\2SQ\3\2\2\2TV\7\16\2\2U=\3\2\2\2UL\3\2\2"+
+ "\2V\t\3\2\2\2WX\t\2\2\2X\13\3\2\2\2YZ\7\22\2\2Z[\7\20\2\2[\\\7\21\2\2"+
+ "\\\r\3\2\2\2]^\t\3\2\2^\17\3\2\2\2_`\t\4\2\2`\21\3\2\2\2\r\23\30\37&,"+
+ "\63\66:BQU";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
}
} \ No newline at end of file
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.tokens b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.tokens
index b1423a12..d80683d7 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.tokens
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParser.tokens
@@ -1,23 +1,23 @@
-OPEN=7
+COMMENT=1
CDATA=2
-SLASH=13
+DTD=3
+EntityRef=4
CharRef=5
SEA_WS=6
-SPECIAL_CLOSE=11
+OPEN=7
+XMLDeclOpen=8
+TEXT=9
CLOSE=10
-DTD=3
-Name=16
-EQUALS=14
-PI=18
+SPECIAL_CLOSE=11
SLASH_CLOSE=12
-S=17
-TEXT=9
-XMLDeclOpen=8
-COMMENT=1
-EntityRef=4
+SLASH=13
+EQUALS=14
STRING=15
-'='=14
+Name=16
+S=17
+PI=18
'<'=7
-'/'=13
-'/>'=12
'>'=10
+'/>'=12
+'/'=13
+'='=14
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseListener.java b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseListener.java
index 4c2bae2d..0d237e7e 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseListener.java
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseListener.java
@@ -1,9 +1,7 @@
-// Generated from XMLParser.g4 by ANTLR 4.4
+// Generated from XMLParser.g4 by ANTLR 4.5.3
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;
@@ -18,127 +16,120 @@ public class XMLParserBaseListener implements XMLParserListener {
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterContent(@NotNull XMLParser.ContentContext ctx) { }
+ @Override public void enterDocument(XMLParser.DocumentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitContent(@NotNull XMLParser.ContentContext ctx) { }
-
+ @Override public void exitDocument(XMLParser.DocumentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterElement(@NotNull XMLParser.ElementContext ctx) { }
+ @Override public void enterProlog(XMLParser.PrologContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitElement(@NotNull XMLParser.ElementContext ctx) { }
-
+ @Override public void exitProlog(XMLParser.PrologContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterProlog(@NotNull XMLParser.PrologContext ctx) { }
+ @Override public void enterContent(XMLParser.ContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitProlog(@NotNull XMLParser.PrologContext ctx) { }
-
+ @Override public void exitContent(XMLParser.ContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterDocument(@NotNull XMLParser.DocumentContext ctx) { }
+ @Override public void enterElement(XMLParser.ElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitDocument(@NotNull XMLParser.DocumentContext ctx) { }
-
+ @Override public void exitElement(XMLParser.ElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterAttribute(@NotNull XMLParser.AttributeContext ctx) { }
+ @Override public void enterReference(XMLParser.ReferenceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitAttribute(@NotNull XMLParser.AttributeContext ctx) { }
-
+ @Override public void exitReference(XMLParser.ReferenceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterChardata(@NotNull XMLParser.ChardataContext ctx) { }
+ @Override public void enterAttribute(XMLParser.AttributeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitChardata(@NotNull XMLParser.ChardataContext ctx) { }
-
+ @Override public void exitAttribute(XMLParser.AttributeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterReference(@NotNull XMLParser.ReferenceContext ctx) { }
+ @Override public void enterChardata(XMLParser.ChardataContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitReference(@NotNull XMLParser.ReferenceContext ctx) { }
-
+ @Override public void exitChardata(XMLParser.ChardataContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterMisc(@NotNull XMLParser.MiscContext ctx) { }
+ @Override public void enterMisc(XMLParser.MiscContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitMisc(@NotNull XMLParser.MiscContext ctx) { }
+ @Override public void exitMisc(XMLParser.MiscContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void enterEveryRule(@NotNull ParserRuleContext ctx) { }
+ @Override public void enterEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void exitEveryRule(@NotNull ParserRuleContext ctx) { }
+ @Override public void exitEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void visitTerminal(@NotNull TerminalNode node) { }
+ @Override public void visitTerminal(TerminalNode node) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
- @Override public void visitErrorNode(@NotNull ErrorNode node) { }
+ @Override public void visitErrorNode(ErrorNode node) { }
} \ No newline at end of file
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseVisitor.java b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseVisitor.java
index 6b04b77d..c89b2d30 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseVisitor.java
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserBaseVisitor.java
@@ -1,7 +1,5 @@
-// Generated from XMLParser.g4 by ANTLR 4.4
+// Generated from XMLParser.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
@@ -9,71 +7,64 @@ import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
* which can be extended to create a visitor which only needs to handle a subset
* of the available methods.
*
- * @param <Result> The return type of the visit operation. Use {@link Void} for
+ * @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
-public class XMLParserBaseVisitor<Result> extends AbstractParseTreeVisitor<Result> implements XMLParserVisitor<Result> {
+public class XMLParserBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements XMLParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitContent(@NotNull XMLParser.ContentContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitDocument(XMLParser.DocumentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitElement(@NotNull XMLParser.ElementContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitProlog(XMLParser.PrologContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitProlog(@NotNull XMLParser.PrologContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitContent(XMLParser.ContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitDocument(@NotNull XMLParser.DocumentContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitElement(XMLParser.ElementContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitAttribute(@NotNull XMLParser.AttributeContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitReference(XMLParser.ReferenceContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitChardata(@NotNull XMLParser.ChardataContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitAttribute(XMLParser.AttributeContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitReference(@NotNull XMLParser.ReferenceContext ctx) { return visitChildren(ctx); }
-
+ @Override public T visitChardata(XMLParser.ChardataContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
- @Override public Result visitMisc(@NotNull XMLParser.MiscContext ctx) { return visitChildren(ctx); }
+ @Override public T visitMisc(XMLParser.MiscContext ctx) { return visitChildren(ctx); }
} \ No newline at end of file
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserListener.java b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserListener.java
index 6bee172c..c1b37e20 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserListener.java
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserListener.java
@@ -1,7 +1,5 @@
-// Generated from XMLParser.g4 by ANTLR 4.4
+// Generated from XMLParser.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;
/**
@@ -10,90 +8,83 @@ import org.antlr.v4.runtime.tree.ParseTreeListener;
*/
public interface XMLParserListener extends ParseTreeListener {
/**
- * Enter a parse tree produced by {@link XMLParser#content}.
+ * Enter a parse tree produced by {@link XMLParser#document}.
* @param ctx the parse tree
*/
- void enterContent(@NotNull XMLParser.ContentContext ctx);
+ void enterDocument(XMLParser.DocumentContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#content}.
+ * Exit a parse tree produced by {@link XMLParser#document}.
* @param ctx the parse tree
*/
- void exitContent(@NotNull XMLParser.ContentContext ctx);
-
+ void exitDocument(XMLParser.DocumentContext ctx);
/**
- * Enter a parse tree produced by {@link XMLParser#element}.
+ * Enter a parse tree produced by {@link XMLParser#prolog}.
* @param ctx the parse tree
*/
- void enterElement(@NotNull XMLParser.ElementContext ctx);
+ void enterProlog(XMLParser.PrologContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#element}.
+ * Exit a parse tree produced by {@link XMLParser#prolog}.
* @param ctx the parse tree
*/
- void exitElement(@NotNull XMLParser.ElementContext ctx);
-
+ void exitProlog(XMLParser.PrologContext ctx);
/**
- * Enter a parse tree produced by {@link XMLParser#prolog}.
+ * Enter a parse tree produced by {@link XMLParser#content}.
* @param ctx the parse tree
*/
- void enterProlog(@NotNull XMLParser.PrologContext ctx);
+ void enterContent(XMLParser.ContentContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#prolog}.
+ * Exit a parse tree produced by {@link XMLParser#content}.
* @param ctx the parse tree
*/
- void exitProlog(@NotNull XMLParser.PrologContext ctx);
-
+ void exitContent(XMLParser.ContentContext ctx);
/**
- * Enter a parse tree produced by {@link XMLParser#document}.
+ * Enter a parse tree produced by {@link XMLParser#element}.
* @param ctx the parse tree
*/
- void enterDocument(@NotNull XMLParser.DocumentContext ctx);
+ void enterElement(XMLParser.ElementContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#document}.
+ * Exit a parse tree produced by {@link XMLParser#element}.
* @param ctx the parse tree
*/
- void exitDocument(@NotNull XMLParser.DocumentContext ctx);
-
+ void exitElement(XMLParser.ElementContext ctx);
/**
- * Enter a parse tree produced by {@link XMLParser#attribute}.
+ * Enter a parse tree produced by {@link XMLParser#reference}.
* @param ctx the parse tree
*/
- void enterAttribute(@NotNull XMLParser.AttributeContext ctx);
+ void enterReference(XMLParser.ReferenceContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#attribute}.
+ * Exit a parse tree produced by {@link XMLParser#reference}.
* @param ctx the parse tree
*/
- void exitAttribute(@NotNull XMLParser.AttributeContext ctx);
-
+ void exitReference(XMLParser.ReferenceContext ctx);
/**
- * Enter a parse tree produced by {@link XMLParser#chardata}.
+ * Enter a parse tree produced by {@link XMLParser#attribute}.
* @param ctx the parse tree
*/
- void enterChardata(@NotNull XMLParser.ChardataContext ctx);
+ void enterAttribute(XMLParser.AttributeContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#chardata}.
+ * Exit a parse tree produced by {@link XMLParser#attribute}.
* @param ctx the parse tree
*/
- void exitChardata(@NotNull XMLParser.ChardataContext ctx);
-
+ void exitAttribute(XMLParser.AttributeContext ctx);
/**
- * Enter a parse tree produced by {@link XMLParser#reference}.
+ * Enter a parse tree produced by {@link XMLParser#chardata}.
* @param ctx the parse tree
*/
- void enterReference(@NotNull XMLParser.ReferenceContext ctx);
+ void enterChardata(XMLParser.ChardataContext ctx);
/**
- * Exit a parse tree produced by {@link XMLParser#reference}.
+ * Exit a parse tree produced by {@link XMLParser#chardata}.
* @param ctx the parse tree
*/
- void exitReference(@NotNull XMLParser.ReferenceContext ctx);
-
+ void exitChardata(XMLParser.ChardataContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#misc}.
* @param ctx the parse tree
*/
- void enterMisc(@NotNull XMLParser.MiscContext ctx);
+ void enterMisc(XMLParser.MiscContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#misc}.
* @param ctx the parse tree
*/
- void exitMisc(@NotNull XMLParser.MiscContext ctx);
+ void exitMisc(XMLParser.MiscContext ctx);
} \ No newline at end of file
diff --git a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserVisitor.java b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserVisitor.java
index 6a76a004..a1abfb70 100644
--- a/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserVisitor.java
+++ b/compilerCommon/src/main/xml-gen/android/databinding/parser/XMLParserVisitor.java
@@ -1,70 +1,61 @@
-// Generated from XMLParser.g4 by ANTLR 4.4
+// Generated from XMLParser.g4 by ANTLR 4.5.3
package android.databinding.parser;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced
* by {@link XMLParser}.
*
- * @param <Result> The return type of the visit operation. Use {@link Void} for
+ * @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
-public interface XMLParserVisitor<Result> extends ParseTreeVisitor<Result> {
+public interface XMLParserVisitor<T> extends ParseTreeVisitor<T> {
/**
- * Visit a parse tree produced by {@link XMLParser#content}.
+ * Visit a parse tree produced by {@link XMLParser#document}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitContent(@NotNull XMLParser.ContentContext ctx);
-
+ T visitDocument(XMLParser.DocumentContext ctx);
/**
- * Visit a parse tree produced by {@link XMLParser#element}.
+ * Visit a parse tree produced by {@link XMLParser#prolog}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitElement(@NotNull XMLParser.ElementContext ctx);
-
+ T visitProlog(XMLParser.PrologContext ctx);
/**
- * Visit a parse tree produced by {@link XMLParser#prolog}.
+ * Visit a parse tree produced by {@link XMLParser#content}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitProlog(@NotNull XMLParser.PrologContext ctx);
-
+ T visitContent(XMLParser.ContentContext ctx);
/**
- * Visit a parse tree produced by {@link XMLParser#document}.
+ * Visit a parse tree produced by {@link XMLParser#element}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitDocument(@NotNull XMLParser.DocumentContext ctx);
-
+ T visitElement(XMLParser.ElementContext ctx);
/**
- * Visit a parse tree produced by {@link XMLParser#attribute}.
+ * Visit a parse tree produced by {@link XMLParser#reference}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitAttribute(@NotNull XMLParser.AttributeContext ctx);
-
+ T visitReference(XMLParser.ReferenceContext ctx);
/**
- * Visit a parse tree produced by {@link XMLParser#chardata}.
+ * Visit a parse tree produced by {@link XMLParser#attribute}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitChardata(@NotNull XMLParser.ChardataContext ctx);
-
+ T visitAttribute(XMLParser.AttributeContext ctx);
/**
- * Visit a parse tree produced by {@link XMLParser#reference}.
+ * Visit a parse tree produced by {@link XMLParser#chardata}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitReference(@NotNull XMLParser.ReferenceContext ctx);
-
+ T visitChardata(XMLParser.ChardataContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#misc}.
* @param ctx the parse tree
* @return the visitor result
*/
- Result visitMisc(@NotNull XMLParser.MiscContext ctx);
+ T visitMisc(XMLParser.MiscContext ctx);
} \ No newline at end of file
diff --git a/data-binding.iml b/data-binding.iml
deleted file mode 100644
index bebe401a..00000000
--- a/data-binding.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="data-binding" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build" />
- <output-test url="file://$MODULE_DIR$/build" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- </component>
-</module> \ No newline at end of file
diff --git a/dataBinding/dataBinding.iml b/dataBinding/dataBinding.iml
deleted file mode 100644
index 0d65182c..00000000
--- a/dataBinding/dataBinding.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":dataBinding" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="com.android.databinding" external.system.module.version="1.1" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/build" />
- <output-test url="file://$MODULE_DIR$/build" />
- <exclude-output />
- <content url="file://$MODULE_DIR$">
- <excludeFolder url="file://$MODULE_DIR$/.gradle" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- </component>
-</module> \ No newline at end of file
diff --git a/databinding.properties b/databinding.properties
index 77cf3068..b7e355b5 100644
--- a/databinding.properties
+++ b/databinding.properties
@@ -3,8 +3,12 @@ kotlinVersion = 1.0.0
extensionsVersion = 1.1
# we use a public plugin so that it does not need data binding while compiling library
androidPublicPluginVersion= 1.5.0
+# java versions for the code that runs on the device
javaTargetCompatibility = 1.6
javaSourceCompatibility = 1.6
+# java versions for the code that runs on the host machine
+compilerJavaTargetCompatibility = 1.8
+compilerJavaSourceCompatibility = 1.8
buildToolsVersion = 22.0.1
compileSdkVersionStr = 23
prebuildFolderName=prebuilds
diff --git a/extensions/baseAdapters/build.gradle b/extensions/baseAdapters/build.gradle
index d375aeba..b27457f4 100644
--- a/extensions/baseAdapters/build.gradle
+++ b/extensions/baseAdapters/build.gradle
@@ -41,7 +41,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
-
+ compileOptions {
+ sourceCompatibility dataBindingConfig.javaTargetCompatibility
+ targetCompatibility dataBindingConfig.javaSourceCompatibility
+ }
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/LICENSE.txt'
diff --git a/extensions/library/build.gradle b/extensions/library/build.gradle
index b1455edc..d1c686b5 100644
--- a/extensions/library/build.gradle
+++ b/extensions/library/build.gradle
@@ -46,8 +46,8 @@ android {
versionName "1.0"
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_6
- targetCompatibility JavaVersion.VERSION_1_6
+ sourceCompatibility dataBindingConfig.javaTargetCompatibility
+ targetCompatibility dataBindingConfig.javaSourceCompatibility
}
buildTypes {
release {
diff --git a/extensions/library/src/main/java/android/databinding/ViewDataBinding.java b/extensions/library/src/main/java/android/databinding/ViewDataBinding.java
index 7829c0d1..f50267b8 100644
--- a/extensions/library/src/main/java/android/databinding/ViewDataBinding.java
+++ b/extensions/library/src/main/java/android/databinding/ViewDataBinding.java
@@ -640,29 +640,29 @@ public abstract class ViewDataBinding extends BaseObservable {
}
/** @hide */
- protected int getColorFromResource(int resourceId) {
+ protected static int getColorFromResource(View view, int resourceId) {
if (VERSION.SDK_INT >= VERSION_CODES.M) {
- return getRoot().getContext().getColor(resourceId);
+ return view.getContext().getColor(resourceId);
} else {
- return getRoot().getResources().getColor(resourceId);
+ return view.getResources().getColor(resourceId);
}
}
/** @hide */
- protected ColorStateList getColorStateListFromResource(int resourceId) {
+ protected static ColorStateList getColorStateListFromResource(View view, int resourceId) {
if (VERSION.SDK_INT >= VERSION_CODES.M) {
- return getRoot().getContext().getColorStateList(resourceId);
+ return view.getContext().getColorStateList(resourceId);
} else {
- return getRoot().getResources().getColorStateList(resourceId);
+ return view.getResources().getColorStateList(resourceId);
}
}
/** @hide */
- protected Drawable getDrawableFromResource(int resourceId) {
+ protected static Drawable getDrawableFromResource(View view, int resourceId) {
if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
- return getRoot().getContext().getDrawable(resourceId);
+ return view.getContext().getDrawable(resourceId);
} else {
- return getRoot().getResources().getDrawable(resourceId);
+ return view.getResources().getDrawable(resourceId);
}
}