diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..51a1061
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+bin/
+plugin.xml_gen
+.antlr-generator-3.2.0.jar
+target/
+/.project
diff --git a/.hgignore b/.hgignore
deleted file mode 100644
index 4cae12b..0000000
--- a/.hgignore
+++ /dev/null
@@ -1,14 +0,0 @@
-syntax:glob
-.metadata
-.settings
-csep*/bin
-csep*/src-gen
-csep*/xtend-gen
-csep*/plugin.xml_gen
-org.eclipse.xtext.example.*
-org.xtext.example.*
-*.swp
-devel
-devel.*
-out
-csep.update/**.jar
diff --git a/.hgtags b/.hgtags
deleted file mode 100644
index c63dfb7..0000000
--- a/.hgtags
+++ /dev/null
@@ -1,11 +0,0 @@
-9299bb0f5fd036890ae80c396516d8bb0b87306c 0.0.3
-9299bb0f5fd036890ae80c396516d8bb0b87306c 0.0.3
-0000000000000000000000000000000000000000 0.0.3
-bc057684b6210fa69a7bbe6b06f1d1b863983f18 0.0.1
-efd23e143cbe9fd7c847d2915990dd107c382f94 0.0.2
-0000000000000000000000000000000000000000 0.0.3
-c5f6bbacbfbd7053d1a23c1ebc288ee4dcb0da09 0.0.3
-8591acf070841306da6dfc1cb0a4c8fa7ab3303d 0.1.0
-b816b56aad8a7d6b9a3e3563916284d9f2731f93 0.2.0
-cbb12369f8a024eb188dc41bfe47c00fdb4da11c 0.2.1
-c90b1aad6ce6ea39e4ffa7f6a7bb87d420d901f9 0.2.2
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..dff5f3a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1 @@
+language: java
diff --git a/README.md b/README.md
index 619693b..d59ee6a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,12 @@
+# CoffeeScript Eclipse Plugin
+
+[](http://travis-ci.org/Nodeclipse/coffeescript-eclipse)
+
+
+ * The following features are supported:
+ *
+
This is a project to provide an Eclipse plugin for [CoffeeScript][coffeescript], using [Xtext][xtext].
-Development uses Xtext 2.1.
+Development uses Xtext 2.1 (TODO update to the latest 2.4.3).
It works as a regular Eclipse plugin (see Installation for details).
Highlights include
@@ -8,17 +14,40 @@ Highlights include
- variable autocompletion in the current namespace
- autoindent
-
-# Status
-It's aimed at being mostly compatible with the original CoffeeScript project.
-There are some extra features and some missing,
+> It's aimed at being mostly compatible with the original CoffeeScript project.
+>There are some extra features and some missing,
but you probably (and hopefully) won't notice the difference in everyday use.
-## Extra features
-CoffeeScript is a dyanmic language,
+## Status
+
+Looking for owner and DIY mode
+
+coffeescript-eclipse has not been updated for a year.
+Paul has contacted Adam Schmideg, the original author at FORMULA 400, and got blessing for Nodeclipse
+to be new home for CoffeScript Editor. Current Nodeclipse team lacks needed skills (and time) to continue the project,
+but tell the world that if there will be a person willing to make maintenance release
+and do some refresh (and possibly become project owner),
+we will include CoffeeScript Editor into Nodeclipse distributions.
+
+In August 2013 0.3.0 refresh version was released, with no new features, except for icon and migration to maven/tycho build.
+
+Old issues
-
+## Installation
+
+in a word: drag-and-drop
+
+
+
+
+1. Get [Enide Studio](http://www.nodeclipse.org/enide/studio/) from
+
+or update site `http://www.nodeclipse.org/coffeescript/repository/` (for 0.3)
+`http://dl.bintray.com/nodeclipse/CoffeeScriptEditor/0.4.0-201403250304/` (for 0.4)
+
+ Below is original detailed instructions:
+
+#### Installation (old way 0.2.2)
-# Installation
You will need an Eclipse instance with Xtext plugins.
You can either install a complete Indigo distribution with Xtext,
or install the required plugins into your existing workspace.
@@ -89,8 +132,71 @@ So in Eclipse, perform these steps
You may be [given a warning](https://bitbucket.org/adamschmideg/coffeescript-eclipse/issue/6/),
but that won't affect the plugin.
+## TODO
+
+- make grouping and error warning as optional and disable by default (Reason: there are a lot of tiny problem, false error detection.
+ They are distracting developer.)
+
+## Changelog
+
+Check [devjournal.md](https://github.com/Nodeclipse/coffeescript-eclipse/blob/master/devjournal.md)
+
+- 0.4.0 Merged Pull Request from Matt Tucker ["When indenting, respect Eclipse editor preferences for tabs/spaces"](https://github.com/Nodeclipse/coffeescript-eclipse/pull/23)
+- 0.3.0 refresh release
+ - switch to maven/tycho build
+ - coffee icon
+
+
+
+
+## Building
+
+### Maven build
+
+[Maven](http://maven.apache.org/) build (using [Tycho plugin](http://eclipse.org/tycho/)) is headless build, that doesn't require Eclipse.
+
+From base folder just run `mvn package`. Run offline when to re-build `mvn clean package -o`.
+
+#### Install site.zip (quick and simple way)
+
+1. Locate zip file under `org.nodeclipse.site\target` in Project Explorer, StartExplore-> Copy Resource Path to Clipboard
+2. Help -> Install New Software ...
+3. Add...
+4. Archive...
+5. Insert copied string into name and path.
+ E.g. `C:\Users\pverest\git\coffeescript-eclipse\csep.site\target\csep.site-0.4.0-SNAPSHOT.zip`
+
+For the next time just select the zip entry from Work With drop-down list.
+
+#### Install from freshly built p2 repository (cool and long way)
+
+1. `mvn package` or `mvn package -o` for re-build offline
+2. `npm install http-server -g`
+3. `http-server csep.site\target\repository -p 8010`
+4. // start http://localhost:8010/
+5. // navigate `http://localhost:8010/` in browser to check
+5. Help->Install New Software, enter http://localhost:8010/ in Work With field
+
+## Building in eclipse (old way)
+
+If you want to contribute to the plugin, here's a quick overview how to setup and build it locally:
+
+1. Install [http://www.eclipse.org/Xtext/download.html](Xtext) / Version 2.1.x
+2. Clone this repository
+3. Import all projects into your workspace
+4. Right click `csep/src/csep/CoffeeScript.xtext/CoffeeScript.xtext` -> Run as ... -> Generate Xtext language artifacts
+5. Right click `example/csep.example.cake/src/csep/example/cake/Cakefile.xtext` -> Run as .. -> Generate Xtext language artifacts
+
+After these 5 steps, the project should build without errors and you can startup a new eclipse instance and open any .coffee file using the coffeescript editor.
+
+
[coffeescript]: http://www.coffeescript.org
[xtext]: http://www.xtext.org
[xtext_download]: http://www.eclipse.org/Xtext/download.html
[csep_bitbucket_download]: https://bitbucket.org/adamschmideg/coffeescript-eclipse/downloads
[csep_github]: https://github.com/adamschmideg/coffeescript-eclipse
+
diff --git a/csep.plugin/.project b/csep.feature/.project
similarity index 100%
rename from csep.plugin/.project
rename to csep.feature/.project
diff --git a/csep.plugin/build.properties b/csep.feature/build.properties
similarity index 100%
rename from csep.plugin/build.properties
rename to csep.feature/build.properties
diff --git a/csep.plugin/feature.xml b/csep.feature/feature.xml
similarity index 95%
rename from csep.plugin/feature.xml
rename to csep.feature/feature.xml
index bb470fe..e0959ae 100644
--- a/csep.plugin/feature.xml
+++ b/csep.feature/feature.xml
@@ -1,14 +1,15 @@
+ *
+ *
+ * If the meaning of the 'Value' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Value' containment reference. + * @see #setValue(PrimaryExpression) + * @see csep.coffeeScript.CoffeeScriptPackage#getApplication_Value() + * @model containment="true" + * @generated + */ + PrimaryExpression getValue(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Application#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(PrimaryExpression value); + + /** + * Returns the value of the 'Features' containment reference list. + * The list contents are of type {@link csep.coffeeScript.FeatureCall}. + * + *+ * If the meaning of the 'Features' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Features' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getApplication_Features() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Exp' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Exp' containment reference. + * @see #setExp(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getArg_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Arg#getExp Exp}' containment reference. + * + * + * @param value the new value of the 'Exp' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + + /** + * Returns the value of the 'Splat' attribute. + * + *+ * If the meaning of the 'Splat' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Splat' attribute. + * @see #setSplat(boolean) + * @see csep.coffeeScript.CoffeeScriptPackage#getArg_Splat() + * @model + * @generated + */ + boolean isSplat(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Arg#isSplat Splat}' attribute. + * + * + * @param value the new value of the 'Splat' attribute. + * @see #isSplat() + * @generated + */ + void setSplat(boolean value); + +} // Arg diff --git a/csep/src-gen/csep/coffeeScript/ArgLine.java b/csep/src-gen/csep/coffeeScript/ArgLine.java new file mode 100644 index 0000000..043d3bc --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ArgLine.java @@ -0,0 +1,70 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Arg Line'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Head' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Head' containment reference. + * @see #setHead(Arg) + * @see csep.coffeeScript.CoffeeScriptPackage#getArgLine_Head() + * @model containment="true" + * @generated + */ + Arg getHead(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ArgLine#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(Arg value); + + /** + * Returns the value of the 'Tail' containment reference list. + * The list contents are of type {@link csep.coffeeScript.Arg}. + * + *+ * If the meaning of the 'Tail' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Tail' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getArgLine_Tail() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Dummy' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dummy' containment reference. + * @see #setDummy(ExplicitArgList) + * @see csep.coffeeScript.CoffeeScriptPackage#getArgList_Dummy() + * @model containment="true" + * @generated + */ + ExplicitArgList getDummy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ArgList#getDummy Dummy}' containment reference. + * + * + * @param value the new value of the 'Dummy' containment reference. + * @see #getDummy() + * @generated + */ + void setDummy(ExplicitArgList value); + +} // ArgList diff --git a/csep/src-gen/csep/coffeeScript/Array.java b/csep/src-gen/csep/coffeeScript/Array.java new file mode 100644 index 0000000..68f3c5c --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Array.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Array'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Splat' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Splat' attribute. + * @see #setSplat(boolean) + * @see csep.coffeeScript.CoffeeScriptPackage#getArray_Splat() + * @model + * @generated + */ + boolean isSplat(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Array#isSplat Splat}' attribute. + * + * + * @param value the new value of the 'Splat' attribute. + * @see #isSplat() + * @generated + */ + void setSplat(boolean value); + + /** + * Returns the value of the 'Default Value' containment reference. + * + *+ * If the meaning of the 'Default Value' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Default Value' containment reference. + * @see #setDefaultValue(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getArray_DefaultValue() + * @model containment="true" + * @generated + */ + Expression getDefaultValue(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Array#getDefaultValue Default Value}' containment reference. + * + * + * @param value the new value of the 'Default Value' containment reference. + * @see #getDefaultValue() + * @generated + */ + void setDefaultValue(Expression value); + +} // Array diff --git a/csep/src-gen/csep/coffeeScript/Assignable.java b/csep/src-gen/csep/coffeeScript/Assignable.java new file mode 100644 index 0000000..c4bc7df --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Assignable.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Assignable'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getAssignable() + * @model + * @generated + */ +public interface Assignable extends EObject +{ +} // Assignable diff --git a/csep/src-gen/csep/coffeeScript/AssignableArg.java b/csep/src-gen/csep/coffeeScript/AssignableArg.java new file mode 100644 index 0000000..c18c4bf --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/AssignableArg.java @@ -0,0 +1,78 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Assignable Arg'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Arg' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Arg' containment reference. + * @see #setArg(Assignable) + * @see csep.coffeeScript.CoffeeScriptPackage#getAssignableArg_Arg() + * @model containment="true" + * @generated + */ + Assignable getArg(); + + /** + * Sets the value of the '{@link csep.coffeeScript.AssignableArg#getArg Arg}' containment reference. + * + * + * @param value the new value of the 'Arg' containment reference. + * @see #getArg() + * @generated + */ + void setArg(Assignable value); + + /** + * Returns the value of the 'Splat' attribute. + * + *+ * If the meaning of the 'Splat' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Splat' attribute. + * @see #setSplat(boolean) + * @see csep.coffeeScript.CoffeeScriptPackage#getAssignableArg_Splat() + * @model + * @generated + */ + boolean isSplat(); + + /** + * Sets the value of the '{@link csep.coffeeScript.AssignableArg#isSplat Splat}' attribute. + * + * + * @param value the new value of the 'Splat' attribute. + * @see #isSplat() + * @generated + */ + void setSplat(boolean value); + +} // AssignableArg diff --git a/csep/src-gen/csep/coffeeScript/AssignableArgList.java b/csep/src-gen/csep/coffeeScript/AssignableArgList.java new file mode 100644 index 0000000..f91b8bd --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/AssignableArgList.java @@ -0,0 +1,41 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Assignable Arg List'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Args' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Args' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getAssignableArgList_Args() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Lines' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Lines' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getBody_Lines() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Whens' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Whens' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getCase_Whens() + * @model containment="true" + * @generated + */ + EList+ * If the meaning of the 'Then' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Then' containment reference. + * @see #setThen(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getCase_Then() + * @model containment="true" + * @generated + */ + Block getThen(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Case#getThen Then}' containment reference. + * + * + * @param value the new value of the 'Then' containment reference. + * @see #getThen() + * @generated + */ + void setThen(Block value); + +} // Case diff --git a/csep/src-gen/csep/coffeeScript/ClassDeclaration.java b/csep/src-gen/csep/coffeeScript/ClassDeclaration.java new file mode 100644 index 0000000..d1610a2 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ClassDeclaration.java @@ -0,0 +1,104 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Class Declaration'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getClassDeclaration_Body() + * @model containment="true" + * @generated + */ + Block getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ClassDeclaration#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Block value); + + /** + * Returns the value of the 'Extend' containment reference. + * + *+ * If the meaning of the 'Extend' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Extend' containment reference. + * @see #setExtend(SuperClass) + * @see csep.coffeeScript.CoffeeScriptPackage#getClassDeclaration_Extend() + * @model containment="true" + * @generated + */ + SuperClass getExtend(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ClassDeclaration#getExtend Extend}' containment reference. + * + * + * @param value the new value of the 'Extend' containment reference. + * @see #getExtend() + * @generated + */ + void setExtend(SuperClass value); + + /** + * Returns the value of the 'Name' containment reference. + * + *+ * If the meaning of the 'Name' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Name' containment reference. + * @see #setName(Variable) + * @see csep.coffeeScript.CoffeeScriptPackage#getClassDeclaration_Name() + * @model containment="true" + * @generated + */ + Variable getName(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ClassDeclaration#getName Name}' containment reference. + * + * + * @param value the new value of the 'Name' containment reference. + * @see #getName() + * @generated + */ + void setName(Variable value); + +} // ClassDeclaration diff --git a/csep/src-gen/csep/coffeeScript/CoffeeScriptFactory.java b/csep/src-gen/csep/coffeeScript/CoffeeScriptFactory.java new file mode 100644 index 0000000..590eb86 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/CoffeeScriptFactory.java @@ -0,0 +1,628 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see csep.coffeeScript.CoffeeScriptPackage + * @generated + */ +public interface CoffeeScriptFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + CoffeeScriptFactory eINSTANCE = csep.coffeeScript.impl.CoffeeScriptFactoryImpl.init(); + + /** + * Returns a new object of class 'Root'. + * + * + * @return a new object of class 'Root'. + * @generated + */ + Root createRoot(); + + /** + * Returns a new object of class 'Body'. + * + * + * @return a new object of class 'Body'. + * @generated + */ + Body createBody(); + + /** + * Returns a new object of class 'Line'. + * + * + * @return a new object of class 'Line'. + * @generated + */ + Line createLine(); + + /** + * Returns a new object of class 'Stmt'. + * + * + * @return a new object of class 'Stmt'. + * @generated + */ + Stmt createStmt(); + + /** + * Returns a new object of class 'Comment'. + * + * + * @return a new object of class 'Comment'. + * @generated + */ + Comment createComment(); + + /** + * Returns a new object of class 'Require Stmt'. + * + * + * @return a new object of class 'Require Stmt'. + * @generated + */ + RequireStmt createRequireStmt(); + + /** + * Returns a new object of class 'Return Stmt'. + * + * + * @return a new object of class 'Return Stmt'. + * @generated + */ + ReturnStmt createReturnStmt(); + + /** + * Returns a new object of class 'Throw Stmt'. + * + * + * @return a new object of class 'Throw Stmt'. + * @generated + */ + ThrowStmt createThrowStmt(); + + /** + * Returns a new object of class 'Super Class'. + * + * + * @return a new object of class 'Super Class'. + * @generated + */ + SuperClass createSuperClass(); + + /** + * Returns a new object of class 'Class Declaration'. + * + * + * @return a new object of class 'Class Declaration'. + * @generated + */ + ClassDeclaration createClassDeclaration(); + + /** + * Returns a new object of class 'Assigned Class Declaration'. + * + * + * @return a new object of class 'Assigned Class Declaration'. + * @generated + */ + AssignedClassDeclaration createAssignedClassDeclaration(); + + /** + * Returns a new object of class 'Expression'. + * + * + * @return a new object of class 'Expression'. + * @generated + */ + Expression createExpression(); + + /** + * Returns a new object of class 'For Value'. + * + * + * @return a new object of class 'For Value'. + * @generated + */ + ForValue createForValue(); + + /** + * Returns a new object of class 'For Source'. + * + * + * @return a new object of class 'For Source'. + * @generated + */ + ForSource createForSource(); + + /** + * Returns a new object of class 'Range'. + * + * + * @return a new object of class 'Range'. + * @generated + */ + Range createRange(); + + /** + * Returns a new object of class 'Application'. + * + * + * @return a new object of class 'Application'. + * @generated + */ + Application createApplication(); + + /** + * Returns a new object of class 'Feature Call'. + * + * + * @return a new object of class 'Feature Call'. + * @generated + */ + FeatureCall createFeatureCall(); + + /** + * Returns a new object of class 'Function Call'. + * + * + * @return a new object of class 'Function Call'. + * @generated + */ + FunctionCall createFunctionCall(); + + /** + * Returns a new object of class 'Property Access'. + * + * + * @return a new object of class 'Property Access'. + * @generated + */ + PropertyAccess createPropertyAccess(); + + /** + * Returns a new object of class 'This Property'. + * + * + * @return a new object of class 'This Property'. + * @generated + */ + ThisProperty createThisProperty(); + + /** + * Returns a new object of class 'Named Property Access'. + * + * + * @return a new object of class 'Named Property Access'. + * @generated + */ + NamedPropertyAccess createNamedPropertyAccess(); + + /** + * Returns a new object of class 'Indexed Property Access'. + * + * + * @return a new object of class 'Indexed Property Access'. + * @generated + */ + IndexedPropertyAccess createIndexedPropertyAccess(); + + /** + * Returns a new object of class 'Index'. + * + * + * @return a new object of class 'Index'. + * @generated + */ + Index createIndex(); + + /** + * Returns a new object of class 'Primary Expression'. + * + * + * @return a new object of class 'Primary Expression'. + * @generated + */ + PrimaryExpression createPrimaryExpression(); + + /** + * Returns a new object of class 'Block'. + * + * + * @return a new object of class 'Block'. + * @generated + */ + Block createBlock(); + + /** + * Returns a new object of class 'Case'. + * + * + * @return a new object of class 'Case'. + * @generated + */ + Case createCase(); + + /** + * Returns a new object of class 'If Exp'. + * + * + * @return a new object of class 'If Exp'. + * @generated + */ + IfExp createIfExp(); + + /** + * Returns a new object of class 'Cond Block'. + * + * + * @return a new object of class 'Cond Block'. + * @generated + */ + CondBlock createCondBlock(); + + /** + * Returns a new object of class 'Id Ref'. + * + * + * @return a new object of class 'Id Ref'. + * @generated + */ + IdRef createIdRef(); + + /** + * Returns a new object of class 'Id'. + * + * + * @return a new object of class 'Id'. + * @generated + */ + Id createId(); + + /** + * Returns a new object of class 'Property'. + * + * + * @return a new object of class 'Property'. + * @generated + */ + Property createProperty(); + + /** + * Returns a new object of class 'Variable'. + * + * + * @return a new object of class 'Variable'. + * @generated + */ + Variable createVariable(); + + /** + * Returns a new object of class 'Assignable Array'. + * + * + * @return a new object of class 'Assignable Array'. + * @generated + */ + AssignableArray createAssignableArray(); + + /** + * Returns a new object of class 'Assignable Arg List'. + * + * + * @return a new object of class 'Assignable Arg List'. + * @generated + */ + AssignableArgList createAssignableArgList(); + + /** + * Returns a new object of class 'Assignable Arg'. + * + * + * @return a new object of class 'Assignable Arg'. + * @generated + */ + AssignableArg createAssignableArg(); + + /** + * Returns a new object of class 'Assignable'. + * + * + * @return a new object of class 'Assignable'. + * @generated + */ + Assignable createAssignable(); + + /** + * Returns a new object of class 'Arg'. + * + * + * @return a new object of class 'Arg'. + * @generated + */ + Arg createArg(); + + /** + * Returns a new object of class 'Arg Line'. + * + * + * @return a new object of class 'Arg Line'. + * @generated + */ + ArgLine createArgLine(); + + /** + * Returns a new object of class 'Explicit Arg List'. + * + * + * @return a new object of class 'Explicit Arg List'. + * @generated + */ + ExplicitArgList createExplicitArgList(); + + /** + * Returns a new object of class 'Arg List'. + * + * + * @return a new object of class 'Arg List'. + * @generated + */ + ArgList createArgList(); + + /** + * Returns a new object of class 'Array'. + * + * + * @return a new object of class 'Array'. + * @generated + */ + Array createArray(); + + /** + * Returns a new object of class 'Dictionary'. + * + * + * @return a new object of class 'Dictionary'. + * @generated + */ + Dictionary createDictionary(); + + /** + * Returns a new object of class 'Dict Items'. + * + * + * @return a new object of class 'Dict Items'. + * @generated + */ + DictItems createDictItems(); + + /** + * Returns a new object of class 'Explicit Dict Items'. + * + * + * @return a new object of class 'Explicit Dict Items'. + * @generated + */ + ExplicitDictItems createExplicitDictItems(); + + /** + * Returns a new object of class 'Dict Line'. + * + * + * @return a new object of class 'Dict Line'. + * @generated + */ + DictLine createDictLine(); + + /** + * Returns a new object of class 'Dict Item'. + * + * + * @return a new object of class 'Dict Item'. + * @generated + */ + DictItem createDictItem(); + + /** + * Returns a new object of class 'Dict Key'. + * + * + * @return a new object of class 'Dict Key'. + * @generated + */ + DictKey createDictKey(); + + /** + * Returns a new object of class 'Lambda'. + * + * + * @return a new object of class 'Lambda'. + * @generated + */ + Lambda createLambda(); + + /** + * Returns a new object of class 'Param'. + * + * + * @return a new object of class 'Param'. + * @generated + */ + Param createParam(); + + /** + * Returns a new object of class 'Number Literal'. + * + * + * @return a new object of class 'Number Literal'. + * @generated + */ + NumberLiteral createNumberLiteral(); + + /** + * Returns a new object of class 'String Literal'. + * + * + * @return a new object of class 'String Literal'. + * @generated + */ + StringLiteral createStringLiteral(); + + /** + * Returns a new object of class 'Bool Literal'. + * + * + * @return a new object of class 'Bool Literal'. + * @generated + */ + BoolLiteral createBoolLiteral(); + + /** + * Returns a new object of class 'JS Literal'. + * + * + * @return a new object of class 'JS Literal'. + * @generated + */ + JSLiteral createJSLiteral(); + + /** + * Returns a new object of class 'Regex Literal'. + * + * + * @return a new object of class 'Regex Literal'. + * @generated + */ + RegexLiteral createRegexLiteral(); + + /** + * Returns a new object of class 'Literal'. + * + * + * @return a new object of class 'Literal'. + * @generated + */ + Literal createLiteral(); + + /** + * Returns a new object of class 'Parenthetical'. + * + * + * @return a new object of class 'Parenthetical'. + * @generated + */ + Parenthetical createParenthetical(); + + /** + * Returns a new object of class 'If'. + * + * + * @return a new object of class 'If'. + * @generated + */ + If createIf(); + + /** + * Returns a new object of class 'For'. + * + * + * @return a new object of class 'For'. + * @generated + */ + For createFor(); + + /** + * Returns a new object of class 'While'. + * + * + * @return a new object of class 'While'. + * @generated + */ + While createWhile(); + + /** + * Returns a new object of class 'Until'. + * + * + * @return a new object of class 'Until'. + * @generated + */ + Until createUntil(); + + /** + * Returns a new object of class 'Binary Exp'. + * + * + * @return a new object of class 'Binary Exp'. + * @generated + */ + BinaryExp createBinaryExp(); + + /** + * Returns a new object of class 'Super Call'. + * + * + * @return a new object of class 'Super Call'. + * @generated + */ + SuperCall createSuperCall(); + + /** + * Returns a new object of class 'This Alone'. + * + * + * @return a new object of class 'This Alone'. + * @generated + */ + ThisAlone createThisAlone(); + + /** + * Returns a new object of class 'Loop'. + * + * + * @return a new object of class 'Loop'. + * @generated + */ + Loop createLoop(); + + /** + * Returns a new object of class 'Try Catch'. + * + * + * @return a new object of class 'Try Catch'. + * @generated + */ + TryCatch createTryCatch(); + + /** + * Returns a new object of class 'Switch'. + * + * + * @return a new object of class 'Switch'. + * @generated + */ + Switch createSwitch(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + CoffeeScriptPackage getCoffeeScriptPackage(); + +} //CoffeeScriptFactory diff --git a/csep/src-gen/csep/coffeeScript/CoffeeScriptPackage.java b/csep/src-gen/csep/coffeeScript/CoffeeScriptPackage.java new file mode 100644 index 0000000..011bf4c --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/CoffeeScriptPackage.java @@ -0,0 +1,5881 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *+ * The following features are supported: + *
+ * If the meaning of the 'Comment' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Comment' attribute. + * @see #setComment(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getComment_Comment() + * @model + * @generated + */ + String getComment(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Comment#getComment Comment}' attribute. + * + * + * @param value the new value of the 'Comment' attribute. + * @see #getComment() + * @generated + */ + void setComment(String value); + +} // Comment diff --git a/csep/src-gen/csep/coffeeScript/CondBlock.java b/csep/src-gen/csep/coffeeScript/CondBlock.java new file mode 100644 index 0000000..4418609 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/CondBlock.java @@ -0,0 +1,105 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Cond Block'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Operator' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Operator' attribute. + * @see #setOperator(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getCondBlock_Operator() + * @model + * @generated + */ + String getOperator(); + + /** + * Sets the value of the '{@link csep.coffeeScript.CondBlock#getOperator Operator}' attribute. + * + * + * @param value the new value of the 'Operator' attribute. + * @see #getOperator() + * @generated + */ + void setOperator(String value); + + /** + * Returns the value of the 'Condition' containment reference. + * + *+ * If the meaning of the 'Condition' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getCondBlock_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link csep.coffeeScript.CondBlock#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + + /** + * Returns the value of the 'Action' containment reference. + * + *+ * If the meaning of the 'Action' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Action' containment reference. + * @see #setAction(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getCondBlock_Action() + * @model containment="true" + * @generated + */ + Block getAction(); + + /** + * Sets the value of the '{@link csep.coffeeScript.CondBlock#getAction Action}' containment reference. + * + * + * @param value the new value of the 'Action' containment reference. + * @see #getAction() + * @generated + */ + void setAction(Block value); + +} // CondBlock diff --git a/csep/src-gen/csep/coffeeScript/DictItem.java b/csep/src-gen/csep/coffeeScript/DictItem.java new file mode 100644 index 0000000..56c145c --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/DictItem.java @@ -0,0 +1,78 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Dict Item'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Key' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Key' containment reference. + * @see #setKey(DictKey) + * @see csep.coffeeScript.CoffeeScriptPackage#getDictItem_Key() + * @model containment="true" + * @generated + */ + DictKey getKey(); + + /** + * Sets the value of the '{@link csep.coffeeScript.DictItem#getKey Key}' containment reference. + * + * + * @param value the new value of the 'Key' containment reference. + * @see #getKey() + * @generated + */ + void setKey(DictKey value); + + /** + * Returns the value of the 'Value' containment reference. + * + *+ * If the meaning of the 'Value' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Value' containment reference. + * @see #setValue(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getDictItem_Value() + * @model containment="true" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link csep.coffeeScript.DictItem#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + +} // DictItem diff --git a/csep/src-gen/csep/coffeeScript/DictItems.java b/csep/src-gen/csep/coffeeScript/DictItems.java new file mode 100644 index 0000000..221597d --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/DictItems.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Dict Items'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Dummy' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dummy' containment reference. + * @see #setDummy(ExplicitDictItems) + * @see csep.coffeeScript.CoffeeScriptPackage#getDictItems_Dummy() + * @model containment="true" + * @generated + */ + ExplicitDictItems getDummy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.DictItems#getDummy Dummy}' containment reference. + * + * + * @param value the new value of the 'Dummy' containment reference. + * @see #getDummy() + * @generated + */ + void setDummy(ExplicitDictItems value); + +} // DictItems diff --git a/csep/src-gen/csep/coffeeScript/DictKey.java b/csep/src-gen/csep/coffeeScript/DictKey.java new file mode 100644 index 0000000..beff3ec --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/DictKey.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Dict Key'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getDictKey() + * @model + * @generated + */ +public interface DictKey extends EObject +{ +} // DictKey diff --git a/csep/src-gen/csep/coffeeScript/DictLine.java b/csep/src-gen/csep/coffeeScript/DictLine.java new file mode 100644 index 0000000..7eda516 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/DictLine.java @@ -0,0 +1,70 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Dict Line'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Head' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Head' containment reference. + * @see #setHead(DictItem) + * @see csep.coffeeScript.CoffeeScriptPackage#getDictLine_Head() + * @model containment="true" + * @generated + */ + DictItem getHead(); + + /** + * Sets the value of the '{@link csep.coffeeScript.DictLine#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(DictItem value); + + /** + * Returns the value of the 'Tail' containment reference list. + * The list contents are of type {@link csep.coffeeScript.DictItem}. + * + *+ * If the meaning of the 'Tail' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Tail' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getDictLine_Tail() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Splat' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Splat' attribute. + * @see #setSplat(boolean) + * @see csep.coffeeScript.CoffeeScriptPackage#getDictionary_Splat() + * @model + * @generated + */ + boolean isSplat(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Dictionary#isSplat Splat}' attribute. + * + * + * @param value the new value of the 'Splat' attribute. + * @see #isSplat() + * @generated + */ + void setSplat(boolean value); + + /** + * Returns the value of the 'Default Value' containment reference. + * + *+ * If the meaning of the 'Default Value' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Default Value' containment reference. + * @see #setDefaultValue(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getDictionary_DefaultValue() + * @model containment="true" + * @generated + */ + Expression getDefaultValue(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Dictionary#getDefaultValue Default Value}' containment reference. + * + * + * @param value the new value of the 'Default Value' containment reference. + * @see #getDefaultValue() + * @generated + */ + void setDefaultValue(Expression value); + +} // Dictionary diff --git a/csep/src-gen/csep/coffeeScript/ExplicitArgList.java b/csep/src-gen/csep/coffeeScript/ExplicitArgList.java new file mode 100644 index 0000000..27bdf6a --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ExplicitArgList.java @@ -0,0 +1,43 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Explicit Arg List'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Lines' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Lines' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getExplicitArgList_Lines() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Lines' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Lines' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getExplicitDictItems_Lines() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Indexes' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Indexes' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getExpression_Indexes() + * @model containment="true" + * @generated + */ + EList+ * If the meaning of the 'Source' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Source' containment reference. + * @see #setSource(ForSource) + * @see csep.coffeeScript.CoffeeScriptPackage#getExpression_Source() + * @model containment="true" + * @generated + */ + ForSource getSource(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Expression#getSource Source}' containment reference. + * + * + * @param value the new value of the 'Source' containment reference. + * @see #getSource() + * @generated + */ + void setSource(ForSource value); + + /** + * Returns the value of the 'Left' containment reference. + * + *+ * If the meaning of the 'Left' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Left' containment reference. + * @see #setLeft(EObject) + * @see csep.coffeeScript.CoffeeScriptPackage#getExpression_Left() + * @model containment="true" + * @generated + */ + EObject getLeft(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Expression#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(EObject value); + + /** + * Returns the value of the 'Operator' attribute. + * + *+ * If the meaning of the 'Operator' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Operator' attribute. + * @see #setOperator(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getExpression_Operator() + * @model + * @generated + */ + String getOperator(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Expression#getOperator Operator}' attribute. + * + * + * @param value the new value of the 'Operator' attribute. + * @see #getOperator() + * @generated + */ + void setOperator(String value); + + /** + * Returns the value of the 'Right' containment reference. + * + *+ * If the meaning of the 'Right' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getExpression_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Expression#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // Expression diff --git a/csep/src-gen/csep/coffeeScript/FeatureCall.java b/csep/src-gen/csep/coffeeScript/FeatureCall.java new file mode 100644 index 0000000..84f500c --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/FeatureCall.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Feature Call'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getFeatureCall() + * @model + * @generated + */ +public interface FeatureCall extends EObject +{ +} // FeatureCall diff --git a/csep/src-gen/csep/coffeeScript/For.java b/csep/src-gen/csep/coffeeScript/For.java new file mode 100644 index 0000000..18978b6 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/For.java @@ -0,0 +1,105 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'For'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Dummy' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dummy' containment reference. + * @see #setDummy(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getFor_Dummy() + * @model containment="true" + * @generated + */ + Expression getDummy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.For#getDummy Dummy}' containment reference. + * + * + * @param value the new value of the 'Dummy' containment reference. + * @see #getDummy() + * @generated + */ + void setDummy(Expression value); + + /** + * Returns the value of the 'Body' containment reference. + * + *+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(EObject) + * @see csep.coffeeScript.CoffeeScriptPackage#getFor_Body() + * @model containment="true" + * @generated + */ + EObject getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.For#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(EObject value); + + /** + * Returns the value of the 'Loop' containment reference. + * + *+ * If the meaning of the 'Loop' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Loop' containment reference. + * @see #setLoop(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getFor_Loop() + * @model containment="true" + * @generated + */ + Expression getLoop(); + + /** + * Sets the value of the '{@link csep.coffeeScript.For#getLoop Loop}' containment reference. + * + * + * @param value the new value of the 'Loop' containment reference. + * @see #getLoop() + * @generated + */ + void setLoop(Expression value); + +} // For diff --git a/csep/src-gen/csep/coffeeScript/ForSource.java b/csep/src-gen/csep/coffeeScript/ForSource.java new file mode 100644 index 0000000..9166ba9 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ForSource.java @@ -0,0 +1,105 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'For Source'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Source' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Source' containment reference. + * @see #setSource(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getForSource_Source() + * @model containment="true" + * @generated + */ + Expression getSource(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ForSource#getSource Source}' containment reference. + * + * + * @param value the new value of the 'Source' containment reference. + * @see #getSource() + * @generated + */ + void setSource(Expression value); + + /** + * Returns the value of the 'When' containment reference. + * + *+ * If the meaning of the 'When' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'When' containment reference. + * @see #setWhen(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getForSource_When() + * @model containment="true" + * @generated + */ + Expression getWhen(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ForSource#getWhen When}' containment reference. + * + * + * @param value the new value of the 'When' containment reference. + * @see #getWhen() + * @generated + */ + void setWhen(Expression value); + + /** + * Returns the value of the 'By' containment reference. + * + *+ * If the meaning of the 'By' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'By' containment reference. + * @see #setBy(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getForSource_By() + * @model containment="true" + * @generated + */ + Expression getBy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ForSource#getBy By}' containment reference. + * + * + * @param value the new value of the 'By' containment reference. + * @see #getBy() + * @generated + */ + void setBy(Expression value); + +} // ForSource diff --git a/csep/src-gen/csep/coffeeScript/ForValue.java b/csep/src-gen/csep/coffeeScript/ForValue.java new file mode 100644 index 0000000..ebec282 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ForValue.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'For Value'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getForValue() + * @model + * @generated + */ +public interface ForValue extends EObject +{ +} // ForValue diff --git a/csep/src-gen/csep/coffeeScript/FunctionCall.java b/csep/src-gen/csep/coffeeScript/FunctionCall.java new file mode 100644 index 0000000..d23c409 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/FunctionCall.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Function Call'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Args' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Args' containment reference. + * @see #setArgs(ArgList) + * @see csep.coffeeScript.CoffeeScriptPackage#getFunctionCall_Args() + * @model containment="true" + * @generated + */ + ArgList getArgs(); + + /** + * Sets the value of the '{@link csep.coffeeScript.FunctionCall#getArgs Args}' containment reference. + * + * + * @param value the new value of the 'Args' containment reference. + * @see #getArgs() + * @generated + */ + void setArgs(ArgList value); + +} // FunctionCall diff --git a/csep/src-gen/csep/coffeeScript/Id.java b/csep/src-gen/csep/coffeeScript/Id.java new file mode 100644 index 0000000..1d3bcf9 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Id.java @@ -0,0 +1,68 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Id'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getId_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Id#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Props' containment reference list. + * The list contents are of type {@link csep.coffeeScript.Id}. + * + *+ * If the meaning of the 'Props' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Props' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getId_Props() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Val' reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Val' reference. + * @see #setVal(Id) + * @see csep.coffeeScript.CoffeeScriptPackage#getIdRef_Val() + * @model + * @generated + */ + Id getVal(); + + /** + * Sets the value of the '{@link csep.coffeeScript.IdRef#getVal Val}' reference. + * + * + * @param value the new value of the 'Val' reference. + * @see #getVal() + * @generated + */ + void setVal(Id value); + + /** + * Returns the value of the 'Accessor' attribute. + * + *+ * If the meaning of the 'Accessor' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Accessor' attribute. + * @see #setAccessor(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getIdRef_Accessor() + * @model + * @generated + */ + String getAccessor(); + + /** + * Sets the value of the '{@link csep.coffeeScript.IdRef#getAccessor Accessor}' attribute. + * + * + * @param value the new value of the 'Accessor' attribute. + * @see #getAccessor() + * @generated + */ + void setAccessor(String value); + + /** + * Returns the value of the 'Prop' containment reference. + * + *+ * If the meaning of the 'Prop' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Prop' containment reference. + * @see #setProp(Id) + * @see csep.coffeeScript.CoffeeScriptPackage#getIdRef_Prop() + * @model containment="true" + * @generated + */ + Id getProp(); + + /** + * Sets the value of the '{@link csep.coffeeScript.IdRef#getProp Prop}' containment reference. + * + * + * @param value the new value of the 'Prop' containment reference. + * @see #getProp() + * @generated + */ + void setProp(Id value); + + /** + * Returns the value of the 'Index' containment reference. + * + *+ * If the meaning of the 'Index' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Index' containment reference. + * @see #setIndex(Index) + * @see csep.coffeeScript.CoffeeScriptPackage#getIdRef_Index() + * @model containment="true" + * @generated + */ + Index getIndex(); + + /** + * Sets the value of the '{@link csep.coffeeScript.IdRef#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(Index value); + +} // IdRef diff --git a/csep/src-gen/csep/coffeeScript/If.java b/csep/src-gen/csep/coffeeScript/If.java new file mode 100644 index 0000000..3117c50 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/If.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'If'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Dummy' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dummy' containment reference. + * @see #setDummy(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getIf_Dummy() + * @model containment="true" + * @generated + */ + Expression getDummy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.If#getDummy Dummy}' containment reference. + * + * + * @param value the new value of the 'Dummy' containment reference. + * @see #getDummy() + * @generated + */ + void setDummy(Expression value); + + /** + * Returns the value of the 'Condition' containment reference. + * + *+ * If the meaning of the 'Condition' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getIf_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link csep.coffeeScript.If#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + +} // If diff --git a/csep/src-gen/csep/coffeeScript/IfExp.java b/csep/src-gen/csep/coffeeScript/IfExp.java new file mode 100644 index 0000000..d7aea1e --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/IfExp.java @@ -0,0 +1,68 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'If Exp'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Blocks' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Blocks' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getIfExp_Blocks() + * @model containment="true" + * @generated + */ + EList+ * If the meaning of the 'Default Block' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Default Block' containment reference. + * @see #setDefaultBlock(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getIfExp_DefaultBlock() + * @model containment="true" + * @generated + */ + Block getDefaultBlock(); + + /** + * Sets the value of the '{@link csep.coffeeScript.IfExp#getDefaultBlock Default Block}' containment reference. + * + * + * @param value the new value of the 'Default Block' containment reference. + * @see #getDefaultBlock() + * @generated + */ + void setDefaultBlock(Block value); + +} // IfExp diff --git a/csep/src-gen/csep/coffeeScript/Index.java b/csep/src-gen/csep/coffeeScript/Index.java new file mode 100644 index 0000000..e8afb5d --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Index.java @@ -0,0 +1,132 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Index'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Dots' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dots' attribute. + * @see #setDots(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getIndex_Dots() + * @model + * @generated + */ + String getDots(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Index#getDots Dots}' attribute. + * + * + * @param value the new value of the 'Dots' attribute. + * @see #getDots() + * @generated + */ + void setDots(String value); + + /** + * Returns the value of the 'End' containment reference. + * + *+ * If the meaning of the 'End' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'End' containment reference. + * @see #setEnd(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getIndex_End() + * @model containment="true" + * @generated + */ + Expression getEnd(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Index#getEnd End}' containment reference. + * + * + * @param value the new value of the 'End' containment reference. + * @see #getEnd() + * @generated + */ + void setEnd(Expression value); + + /** + * Returns the value of the 'Start' containment reference. + * + *+ * If the meaning of the 'Start' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Start' containment reference. + * @see #setStart(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getIndex_Start() + * @model containment="true" + * @generated + */ + Expression getStart(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Index#getStart Start}' containment reference. + * + * + * @param value the new value of the 'Start' containment reference. + * @see #getStart() + * @generated + */ + void setStart(Expression value); + + /** + * Returns the value of the 'Exp' containment reference. + * + *+ * If the meaning of the 'Exp' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Exp' containment reference. + * @see #setExp(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getIndex_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Index#getExp Exp}' containment reference. + * + * + * @param value the new value of the 'Exp' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + +} // Index diff --git a/csep/src-gen/csep/coffeeScript/IndexedPropertyAccess.java b/csep/src-gen/csep/coffeeScript/IndexedPropertyAccess.java new file mode 100644 index 0000000..098acdb --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/IndexedPropertyAccess.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Indexed Property Access'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Index' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Index' containment reference. + * @see #setIndex(Index) + * @see csep.coffeeScript.CoffeeScriptPackage#getIndexedPropertyAccess_Index() + * @model containment="true" + * @generated + */ + Index getIndex(); + + /** + * Sets the value of the '{@link csep.coffeeScript.IndexedPropertyAccess#getIndex Index}' containment reference. + * + * + * @param value the new value of the 'Index' containment reference. + * @see #getIndex() + * @generated + */ + void setIndex(Index value); + +} // IndexedPropertyAccess diff --git a/csep/src-gen/csep/coffeeScript/JSLiteral.java b/csep/src-gen/csep/coffeeScript/JSLiteral.java new file mode 100644 index 0000000..3d9a9d3 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/JSLiteral.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'JS Literal'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getJSLiteral() + * @model + * @generated + */ +public interface JSLiteral extends Literal +{ +} // JSLiteral diff --git a/csep/src-gen/csep/coffeeScript/Lambda.java b/csep/src-gen/csep/coffeeScript/Lambda.java new file mode 100644 index 0000000..812a8f7 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Lambda.java @@ -0,0 +1,68 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Lambda'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Params' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Params' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getLambda_Params() + * @model containment="true" + * @generated + */ + EList getParams(); + + /** + * Returns the value of the 'Body' containment reference. + * + *+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getLambda_Body() + * @model containment="true" + * @generated + */ + Block getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Lambda#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Block value); + +} // Lambda diff --git a/csep/src-gen/csep/coffeeScript/Line.java b/csep/src-gen/csep/coffeeScript/Line.java new file mode 100644 index 0000000..4b50572 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Line.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Line'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getLine() + * @model + * @generated + */ +public interface Line extends EObject +{ +} // Line diff --git a/csep/src-gen/csep/coffeeScript/Literal.java b/csep/src-gen/csep/coffeeScript/Literal.java new file mode 100644 index 0000000..9c8c771 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Literal.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Literal'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getLiteral() + * @model + * @generated + */ +public interface Literal extends PrimaryExpression, DictKey +{ +} // Literal diff --git a/csep/src-gen/csep/coffeeScript/Loop.java b/csep/src-gen/csep/coffeeScript/Loop.java new file mode 100644 index 0000000..0b0e666 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Loop.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Loop'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getLoop_Body() + * @model containment="true" + * @generated + */ + Block getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Loop#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Block value); + +} // Loop diff --git a/csep/src-gen/csep/coffeeScript/NamedPropertyAccess.java b/csep/src-gen/csep/coffeeScript/NamedPropertyAccess.java new file mode 100644 index 0000000..4e1b45f --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/NamedPropertyAccess.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Named Property Access'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Accessor' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Accessor' attribute. + * @see #setAccessor(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getNamedPropertyAccess_Accessor() + * @model + * @generated + */ + String getAccessor(); + + /** + * Sets the value of the '{@link csep.coffeeScript.NamedPropertyAccess#getAccessor Accessor}' attribute. + * + * + * @param value the new value of the 'Accessor' attribute. + * @see #getAccessor() + * @generated + */ + void setAccessor(String value); + + /** + * Returns the value of the 'Name' containment reference. + * + *+ * If the meaning of the 'Name' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Name' containment reference. + * @see #setName(Id) + * @see csep.coffeeScript.CoffeeScriptPackage#getNamedPropertyAccess_Name() + * @model containment="true" + * @generated + */ + Id getName(); + + /** + * Sets the value of the '{@link csep.coffeeScript.NamedPropertyAccess#getName Name}' containment reference. + * + * + * @param value the new value of the 'Name' containment reference. + * @see #getName() + * @generated + */ + void setName(Id value); + +} // NamedPropertyAccess diff --git a/csep/src-gen/csep/coffeeScript/NumberLiteral.java b/csep/src-gen/csep/coffeeScript/NumberLiteral.java new file mode 100644 index 0000000..a56685b --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/NumberLiteral.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Number Literal'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getNumberLiteral() + * @model + * @generated + */ +public interface NumberLiteral extends Literal +{ +} // NumberLiteral diff --git a/csep/src-gen/csep/coffeeScript/Param.java b/csep/src-gen/csep/coffeeScript/Param.java new file mode 100644 index 0000000..db66c70 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Param.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Param'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getParam() + * @model + * @generated + */ +public interface Param extends EObject +{ +} // Param diff --git a/csep/src-gen/csep/coffeeScript/Parenthetical.java b/csep/src-gen/csep/coffeeScript/Parenthetical.java new file mode 100644 index 0000000..c5580a6 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Parenthetical.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Parenthetical'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Content' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Content' containment reference. + * @see #setContent(Body) + * @see csep.coffeeScript.CoffeeScriptPackage#getParenthetical_Content() + * @model containment="true" + * @generated + */ + Body getContent(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Parenthetical#getContent Content}' containment reference. + * + * + * @param value the new value of the 'Content' containment reference. + * @see #getContent() + * @generated + */ + void setContent(Body value); + +} // Parenthetical diff --git a/csep/src-gen/csep/coffeeScript/PrimaryExpression.java b/csep/src-gen/csep/coffeeScript/PrimaryExpression.java new file mode 100644 index 0000000..1886882 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/PrimaryExpression.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Primary Expression'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getPrimaryExpression() + * @model + * @generated + */ +public interface PrimaryExpression extends EObject +{ +} // PrimaryExpression diff --git a/csep/src-gen/csep/coffeeScript/Property.java b/csep/src-gen/csep/coffeeScript/Property.java new file mode 100644 index 0000000..e6100ce --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Property.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Property'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getProperty() + * @model + * @generated + */ +public interface Property extends SuperClass, Variable +{ +} // Property diff --git a/csep/src-gen/csep/coffeeScript/PropertyAccess.java b/csep/src-gen/csep/coffeeScript/PropertyAccess.java new file mode 100644 index 0000000..d6c7f55 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/PropertyAccess.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Property Access'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getPropertyAccess() + * @model + * @generated + */ +public interface PropertyAccess extends FeatureCall +{ +} // PropertyAccess diff --git a/csep/src-gen/csep/coffeeScript/Range.java b/csep/src-gen/csep/coffeeScript/Range.java new file mode 100644 index 0000000..57ef781 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Range.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Range'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Start' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Start' containment reference. + * @see #setStart(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getRange_Start() + * @model containment="true" + * @generated + */ + Expression getStart(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Range#getStart Start}' containment reference. + * + * + * @param value the new value of the 'Start' containment reference. + * @see #getStart() + * @generated + */ + void setStart(Expression value); + + /** + * Returns the value of the 'End' containment reference. + * + *+ * If the meaning of the 'End' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'End' containment reference. + * @see #setEnd(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getRange_End() + * @model containment="true" + * @generated + */ + Expression getEnd(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Range#getEnd End}' containment reference. + * + * + * @param value the new value of the 'End' containment reference. + * @see #getEnd() + * @generated + */ + void setEnd(Expression value); + +} // Range diff --git a/csep/src-gen/csep/coffeeScript/RegexLiteral.java b/csep/src-gen/csep/coffeeScript/RegexLiteral.java new file mode 100644 index 0000000..60d870e --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/RegexLiteral.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Regex Literal'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getRegexLiteral() + * @model + * @generated + */ +public interface RegexLiteral extends Literal +{ +} // RegexLiteral diff --git a/csep/src-gen/csep/coffeeScript/RequireStmt.java b/csep/src-gen/csep/coffeeScript/RequireStmt.java new file mode 100644 index 0000000..7f0c318 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/RequireStmt.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Require Stmt'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Imported Namespace' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Imported Namespace' containment reference. + * @see #setImportedNamespace(Id) + * @see csep.coffeeScript.CoffeeScriptPackage#getRequireStmt_ImportedNamespace() + * @model containment="true" + * @generated + */ + Id getImportedNamespace(); + + /** + * Sets the value of the '{@link csep.coffeeScript.RequireStmt#getImportedNamespace Imported Namespace}' containment reference. + * + * + * @param value the new value of the 'Imported Namespace' containment reference. + * @see #getImportedNamespace() + * @generated + */ + void setImportedNamespace(Id value); + + /** + * Returns the value of the 'Uri' attribute. + * + *+ * If the meaning of the 'Uri' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Uri' attribute. + * @see #setUri(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getRequireStmt_Uri() + * @model + * @generated + */ + String getUri(); + + /** + * Sets the value of the '{@link csep.coffeeScript.RequireStmt#getUri Uri}' attribute. + * + * + * @param value the new value of the 'Uri' attribute. + * @see #getUri() + * @generated + */ + void setUri(String value); + +} // RequireStmt diff --git a/csep/src-gen/csep/coffeeScript/ReturnStmt.java b/csep/src-gen/csep/coffeeScript/ReturnStmt.java new file mode 100644 index 0000000..c50b640 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ReturnStmt.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Return Stmt'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Expression' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Expression' containment reference. + * @see #setExpression(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getReturnStmt_Expression() + * @model containment="true" + * @generated + */ + Expression getExpression(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ReturnStmt#getExpression Expression}' containment reference. + * + * + * @param value the new value of the 'Expression' containment reference. + * @see #getExpression() + * @generated + */ + void setExpression(Expression value); + + /** + * Returns the value of the 'Condition' containment reference. + * + *+ * If the meaning of the 'Condition' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getReturnStmt_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ReturnStmt#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + +} // ReturnStmt diff --git a/csep/src-gen/csep/coffeeScript/Root.java b/csep/src-gen/csep/coffeeScript/Root.java new file mode 100644 index 0000000..8a3d6f6 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Root.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Root'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getRoot() + * @model + * @generated + */ +public interface Root extends EObject +{ +} // Root diff --git a/csep/src-gen/csep/coffeeScript/Stmt.java b/csep/src-gen/csep/coffeeScript/Stmt.java new file mode 100644 index 0000000..acb35f3 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Stmt.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Stmt'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Statement' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Statement' attribute. + * @see #setStatement(String) + * @see csep.coffeeScript.CoffeeScriptPackage#getStmt_Statement() + * @model + * @generated + */ + String getStatement(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Stmt#getStatement Statement}' attribute. + * + * + * @param value the new value of the 'Statement' attribute. + * @see #getStatement() + * @generated + */ + void setStatement(String value); + +} // Stmt diff --git a/csep/src-gen/csep/coffeeScript/StringLiteral.java b/csep/src-gen/csep/coffeeScript/StringLiteral.java new file mode 100644 index 0000000..b7394ac --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/StringLiteral.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'String Literal'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getStringLiteral() + * @model + * @generated + */ +public interface StringLiteral extends Literal +{ +} // StringLiteral diff --git a/csep/src-gen/csep/coffeeScript/SuperCall.java b/csep/src-gen/csep/coffeeScript/SuperCall.java new file mode 100644 index 0000000..7415b00 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/SuperCall.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Super Call'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Args' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Args' containment reference. + * @see #setArgs(ArgList) + * @see csep.coffeeScript.CoffeeScriptPackage#getSuperCall_Args() + * @model containment="true" + * @generated + */ + ArgList getArgs(); + + /** + * Sets the value of the '{@link csep.coffeeScript.SuperCall#getArgs Args}' containment reference. + * + * + * @param value the new value of the 'Args' containment reference. + * @see #getArgs() + * @generated + */ + void setArgs(ArgList value); + +} // SuperCall diff --git a/csep/src-gen/csep/coffeeScript/SuperClass.java b/csep/src-gen/csep/coffeeScript/SuperClass.java new file mode 100644 index 0000000..feb3e5a --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/SuperClass.java @@ -0,0 +1,19 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Super Class'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getSuperClass() + * @model + * @generated + */ +public interface SuperClass extends EObject +{ +} // SuperClass diff --git a/csep/src-gen/csep/coffeeScript/Switch.java b/csep/src-gen/csep/coffeeScript/Switch.java new file mode 100644 index 0000000..da943db --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Switch.java @@ -0,0 +1,95 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Switch'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Exp' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Exp' containment reference. + * @see #setExp(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getSwitch_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Switch#getExp Exp}' containment reference. + * + * + * @param value the new value of the 'Exp' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + + /** + * Returns the value of the 'Cases' containment reference list. + * The list contents are of type {@link csep.coffeeScript.Case}. + * + *+ * If the meaning of the 'Cases' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Cases' containment reference list. + * @see csep.coffeeScript.CoffeeScriptPackage#getSwitch_Cases() + * @model containment="true" + * @generated + */ + EList+ * If the meaning of the 'Else Block' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Else Block' containment reference. + * @see #setElseBlock(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getSwitch_ElseBlock() + * @model containment="true" + * @generated + */ + Block getElseBlock(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Switch#getElseBlock Else Block}' containment reference. + * + * + * @param value the new value of the 'Else Block' containment reference. + * @see #getElseBlock() + * @generated + */ + void setElseBlock(Block value); + +} // Switch diff --git a/csep/src-gen/csep/coffeeScript/ThisAlone.java b/csep/src-gen/csep/coffeeScript/ThisAlone.java new file mode 100644 index 0000000..a9a3e6f --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ThisAlone.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'This Alone'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getThisAlone() + * @model + * @generated + */ +public interface ThisAlone extends PrimaryExpression +{ +} // ThisAlone diff --git a/csep/src-gen/csep/coffeeScript/ThisProperty.java b/csep/src-gen/csep/coffeeScript/ThisProperty.java new file mode 100644 index 0000000..102b2d8 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ThisProperty.java @@ -0,0 +1,77 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'This Property'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Splat' attribute isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Splat' attribute. + * @see #setSplat(boolean) + * @see csep.coffeeScript.CoffeeScriptPackage#getThisProperty_Splat() + * @model + * @generated + */ + boolean isSplat(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ThisProperty#isSplat Splat}' attribute. + * + * + * @param value the new value of the 'Splat' attribute. + * @see #isSplat() + * @generated + */ + void setSplat(boolean value); + + /** + * Returns the value of the 'Default Value' containment reference. + * + *+ * If the meaning of the 'Default Value' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Default Value' containment reference. + * @see #setDefaultValue(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getThisProperty_DefaultValue() + * @model containment="true" + * @generated + */ + Expression getDefaultValue(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ThisProperty#getDefaultValue Default Value}' containment reference. + * + * + * @param value the new value of the 'Default Value' containment reference. + * @see #getDefaultValue() + * @generated + */ + void setDefaultValue(Expression value); + +} // ThisProperty diff --git a/csep/src-gen/csep/coffeeScript/ThrowStmt.java b/csep/src-gen/csep/coffeeScript/ThrowStmt.java new file mode 100644 index 0000000..2d2ecb4 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/ThrowStmt.java @@ -0,0 +1,50 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Throw Stmt'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Exp' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Exp' containment reference. + * @see #setExp(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getThrowStmt_Exp() + * @model containment="true" + * @generated + */ + Expression getExp(); + + /** + * Sets the value of the '{@link csep.coffeeScript.ThrowStmt#getExp Exp}' containment reference. + * + * + * @param value the new value of the 'Exp' containment reference. + * @see #getExp() + * @generated + */ + void setExp(Expression value); + +} // ThrowStmt diff --git a/csep/src-gen/csep/coffeeScript/TryCatch.java b/csep/src-gen/csep/coffeeScript/TryCatch.java new file mode 100644 index 0000000..bdbe090 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/TryCatch.java @@ -0,0 +1,131 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Try Catch'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getTryCatch_Body() + * @model containment="true" + * @generated + */ + Block getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.TryCatch#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Block value); + + /** + * Returns the value of the 'Exception' containment reference. + * + *+ * If the meaning of the 'Exception' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Exception' containment reference. + * @see #setException(Id) + * @see csep.coffeeScript.CoffeeScriptPackage#getTryCatch_Exception() + * @model containment="true" + * @generated + */ + Id getException(); + + /** + * Sets the value of the '{@link csep.coffeeScript.TryCatch#getException Exception}' containment reference. + * + * + * @param value the new value of the 'Exception' containment reference. + * @see #getException() + * @generated + */ + void setException(Id value); + + /** + * Returns the value of the 'Catch Block' containment reference. + * + *+ * If the meaning of the 'Catch Block' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Catch Block' containment reference. + * @see #setCatchBlock(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getTryCatch_CatchBlock() + * @model containment="true" + * @generated + */ + Block getCatchBlock(); + + /** + * Sets the value of the '{@link csep.coffeeScript.TryCatch#getCatchBlock Catch Block}' containment reference. + * + * + * @param value the new value of the 'Catch Block' containment reference. + * @see #getCatchBlock() + * @generated + */ + void setCatchBlock(Block value); + + /** + * Returns the value of the 'Finally Block' containment reference. + * + *+ * If the meaning of the 'Finally Block' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Finally Block' containment reference. + * @see #setFinallyBlock(Block) + * @see csep.coffeeScript.CoffeeScriptPackage#getTryCatch_FinallyBlock() + * @model containment="true" + * @generated + */ + Block getFinallyBlock(); + + /** + * Sets the value of the '{@link csep.coffeeScript.TryCatch#getFinallyBlock Finally Block}' containment reference. + * + * + * @param value the new value of the 'Finally Block' containment reference. + * @see #getFinallyBlock() + * @generated + */ + void setFinallyBlock(Block value); + +} // TryCatch diff --git a/csep/src-gen/csep/coffeeScript/Until.java b/csep/src-gen/csep/coffeeScript/Until.java new file mode 100644 index 0000000..bf36c8c --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Until.java @@ -0,0 +1,132 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Until'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Dummy' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dummy' containment reference. + * @see #setDummy(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getUntil_Dummy() + * @model containment="true" + * @generated + */ + Expression getDummy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Until#getDummy Dummy}' containment reference. + * + * + * @param value the new value of the 'Dummy' containment reference. + * @see #getDummy() + * @generated + */ + void setDummy(Expression value); + + /** + * Returns the value of the 'Body' containment reference. + * + *+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(EObject) + * @see csep.coffeeScript.CoffeeScriptPackage#getUntil_Body() + * @model containment="true" + * @generated + */ + EObject getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Until#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(EObject value); + + /** + * Returns the value of the 'When' containment reference. + * + *+ * If the meaning of the 'When' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'When' containment reference. + * @see #setWhen(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getUntil_When() + * @model containment="true" + * @generated + */ + Expression getWhen(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Until#getWhen When}' containment reference. + * + * + * @param value the new value of the 'When' containment reference. + * @see #getWhen() + * @generated + */ + void setWhen(Expression value); + + /** + * Returns the value of the 'Loop' containment reference. + * + *+ * If the meaning of the 'Loop' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Loop' containment reference. + * @see #setLoop(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getUntil_Loop() + * @model containment="true" + * @generated + */ + Expression getLoop(); + + /** + * Sets the value of the '{@link csep.coffeeScript.Until#getLoop Loop}' containment reference. + * + * + * @param value the new value of the 'Loop' containment reference. + * @see #getLoop() + * @generated + */ + void setLoop(Expression value); + +} // Until diff --git a/csep/src-gen/csep/coffeeScript/Variable.java b/csep/src-gen/csep/coffeeScript/Variable.java new file mode 100644 index 0000000..5ba326d --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/Variable.java @@ -0,0 +1,18 @@ +/** + */ +package csep.coffeeScript; + + +/** + * + * A representation of the model object 'Variable'. + * + * + * + * @see csep.coffeeScript.CoffeeScriptPackage#getVariable() + * @model + * @generated + */ +public interface Variable extends Expression, Assignable +{ +} // Variable diff --git a/csep/src-gen/csep/coffeeScript/While.java b/csep/src-gen/csep/coffeeScript/While.java new file mode 100644 index 0000000..a0333d5 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/While.java @@ -0,0 +1,132 @@ +/** + */ +package csep.coffeeScript; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'While'. + * + * + *+ * The following features are supported: + *
+ * If the meaning of the 'Dummy' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Dummy' containment reference. + * @see #setDummy(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getWhile_Dummy() + * @model containment="true" + * @generated + */ + Expression getDummy(); + + /** + * Sets the value of the '{@link csep.coffeeScript.While#getDummy Dummy}' containment reference. + * + * + * @param value the new value of the 'Dummy' containment reference. + * @see #getDummy() + * @generated + */ + void setDummy(Expression value); + + /** + * Returns the value of the 'Body' containment reference. + * + *+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(EObject) + * @see csep.coffeeScript.CoffeeScriptPackage#getWhile_Body() + * @model containment="true" + * @generated + */ + EObject getBody(); + + /** + * Sets the value of the '{@link csep.coffeeScript.While#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(EObject value); + + /** + * Returns the value of the 'When' containment reference. + * + *+ * If the meaning of the 'When' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'When' containment reference. + * @see #setWhen(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getWhile_When() + * @model containment="true" + * @generated + */ + Expression getWhen(); + + /** + * Sets the value of the '{@link csep.coffeeScript.While#getWhen When}' containment reference. + * + * + * @param value the new value of the 'When' containment reference. + * @see #getWhen() + * @generated + */ + void setWhen(Expression value); + + /** + * Returns the value of the 'Loop' containment reference. + * + *+ * If the meaning of the 'Loop' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Loop' containment reference. + * @see #setLoop(Expression) + * @see csep.coffeeScript.CoffeeScriptPackage#getWhile_Loop() + * @model containment="true" + * @generated + */ + Expression getLoop(); + + /** + * Sets the value of the '{@link csep.coffeeScript.While#getLoop Loop}' containment reference. + * + * + * @param value the new value of the 'Loop' containment reference. + * @see #getLoop() + * @generated + */ + void setLoop(Expression value); + +} // While diff --git a/csep/src-gen/csep/coffeeScript/impl/ApplicationImpl.java b/csep/src-gen/csep/coffeeScript/impl/ApplicationImpl.java new file mode 100644 index 0000000..33aca2b --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/ApplicationImpl.java @@ -0,0 +1,240 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Application; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.FeatureCall; +import csep.coffeeScript.PrimaryExpression; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Application'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class AssignableArrayImpl extends AssignableImpl implements AssignableArray +{ + /** + * + * + * @generated + */ + protected AssignableArrayImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.ASSIGNABLE_ARRAY; + } + +} //AssignableArrayImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/AssignableImpl.java b/csep/src-gen/csep/coffeeScript/impl/AssignableImpl.java new file mode 100644 index 0000000..b9edf93 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/AssignableImpl.java @@ -0,0 +1,44 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Assignable; +import csep.coffeeScript.CoffeeScriptPackage; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Assignable'. + * + *+ *
+ * + * @generated + */ +public class AssignableImpl extends MinimalEObjectImpl.Container implements Assignable +{ + /** + * + * + * @generated + */ + protected AssignableImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.ASSIGNABLE; + } + +} //AssignableImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/AssignedClassDeclarationImpl.java b/csep/src-gen/csep/coffeeScript/impl/AssignedClassDeclarationImpl.java new file mode 100644 index 0000000..4d1360f --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/AssignedClassDeclarationImpl.java @@ -0,0 +1,42 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.AssignedClassDeclaration; +import csep.coffeeScript.CoffeeScriptPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Assigned Class Declaration'. + * + *+ *
+ * + * @generated + */ +public class AssignedClassDeclarationImpl extends ExpressionImpl implements AssignedClassDeclaration +{ + /** + * + * + * @generated + */ + protected AssignedClassDeclarationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.ASSIGNED_CLASS_DECLARATION; + } + +} //AssignedClassDeclarationImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/BinaryExpImpl.java b/csep/src-gen/csep/coffeeScript/impl/BinaryExpImpl.java new file mode 100644 index 0000000..dec72ff --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/BinaryExpImpl.java @@ -0,0 +1,42 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.BinaryExp; +import csep.coffeeScript.CoffeeScriptPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Binary Exp'. + * + *+ *
+ * + * @generated + */ +public class BinaryExpImpl extends ExpressionImpl implements BinaryExp +{ + /** + * + * + * @generated + */ + protected BinaryExpImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.BINARY_EXP; + } + +} //BinaryExpImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/BlockImpl.java b/csep/src-gen/csep/coffeeScript/impl/BlockImpl.java new file mode 100644 index 0000000..797330e --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/BlockImpl.java @@ -0,0 +1,42 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Block; +import csep.coffeeScript.CoffeeScriptPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Block'. + * + *+ *
+ * + * @generated + */ +public class BlockImpl extends RootImpl implements Block +{ + /** + * + * + * @generated + */ + protected BlockImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.BLOCK; + } + +} //BlockImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/BodyImpl.java b/csep/src-gen/csep/coffeeScript/impl/BodyImpl.java new file mode 100644 index 0000000..d012d29 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/BodyImpl.java @@ -0,0 +1,165 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Body; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Line; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Body'. + * + *+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral +{ + /** + * + * + * @generated + */ + protected BoolLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.BOOL_LITERAL; + } + +} //BoolLiteralImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/CaseImpl.java b/csep/src-gen/csep/coffeeScript/impl/CaseImpl.java new file mode 100644 index 0000000..fcfa2ef --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/CaseImpl.java @@ -0,0 +1,241 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Block; +import csep.coffeeScript.Case; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Expression; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Case'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see csep.coffeeScript.CoffeeScriptPackage#eNS_URI + * @see #init() + * @generated + */ + private CoffeeScriptPackageImpl() + { + super(eNS_URI, CoffeeScriptFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *
This method is used to initialize {@link CoffeeScriptPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static CoffeeScriptPackage init() + { + if (isInited) return (CoffeeScriptPackage)EPackage.Registry.INSTANCE.getEPackage(CoffeeScriptPackage.eNS_URI); + + // Obtain or create and register package + CoffeeScriptPackageImpl theCoffeeScriptPackage = (CoffeeScriptPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CoffeeScriptPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CoffeeScriptPackageImpl()); + + isInited = true; + + // Create package meta-data objects + theCoffeeScriptPackage.createPackageContents(); + + // Initialize created meta-data + theCoffeeScriptPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theCoffeeScriptPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(CoffeeScriptPackage.eNS_URI, theCoffeeScriptPackage); + return theCoffeeScriptPackage; + } + + /** + * + * + * @generated + */ + public EClass getRoot() + { + return rootEClass; + } + + /** + * + * + * @generated + */ + public EClass getBody() + { + return bodyEClass; + } + + /** + * + * + * @generated + */ + public EReference getBody_Lines() + { + return (EReference)bodyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLine() + { + return lineEClass; + } + + /** + * + * + * @generated + */ + public EClass getStmt() + { + return stmtEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getStmt_Statement() + { + return (EAttribute)stmtEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getComment() + { + return commentEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getComment_Comment() + { + return (EAttribute)commentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getRequireStmt() + { + return requireStmtEClass; + } + + /** + * + * + * @generated + */ + public EReference getRequireStmt_ImportedNamespace() + { + return (EReference)requireStmtEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getRequireStmt_Uri() + { + return (EAttribute)requireStmtEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getReturnStmt() + { + return returnStmtEClass; + } + + /** + * + * + * @generated + */ + public EReference getReturnStmt_Expression() + { + return (EReference)returnStmtEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReturnStmt_Condition() + { + return (EReference)returnStmtEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getThrowStmt() + { + return throwStmtEClass; + } + + /** + * + * + * @generated + */ + public EReference getThrowStmt_Exp() + { + return (EReference)throwStmtEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getSuperClass() + { + return superClassEClass; + } + + /** + * + * + * @generated + */ + public EClass getClassDeclaration() + { + return classDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getClassDeclaration_Body() + { + return (EReference)classDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClassDeclaration_Extend() + { + return (EReference)classDeclarationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getClassDeclaration_Name() + { + return (EReference)classDeclarationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getAssignedClassDeclaration() + { + return assignedClassDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EClass getExpression() + { + return expressionEClass; + } + + /** + * + * + * @generated + */ + public EReference getExpression_Indexes() + { + return (EReference)expressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getExpression_Source() + { + return (EReference)expressionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getExpression_Left() + { + return (EReference)expressionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getExpression_Operator() + { + return (EAttribute)expressionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EReference getExpression_Right() + { + return (EReference)expressionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + public EClass getForValue() + { + return forValueEClass; + } + + /** + * + * + * @generated + */ + public EClass getForSource() + { + return forSourceEClass; + } + + /** + * + * + * @generated + */ + public EReference getForSource_Source() + { + return (EReference)forSourceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getForSource_When() + { + return (EReference)forSourceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getForSource_By() + { + return (EReference)forSourceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getRange() + { + return rangeEClass; + } + + /** + * + * + * @generated + */ + public EReference getRange_Start() + { + return (EReference)rangeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getRange_End() + { + return (EReference)rangeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getApplication() + { + return applicationEClass; + } + + /** + * + * + * @generated + */ + public EReference getApplication_Value() + { + return (EReference)applicationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getApplication_Features() + { + return (EReference)applicationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getFeatureCall() + { + return featureCallEClass; + } + + /** + * + * + * @generated + */ + public EClass getFunctionCall() + { + return functionCallEClass; + } + + /** + * + * + * @generated + */ + public EReference getFunctionCall_Args() + { + return (EReference)functionCallEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPropertyAccess() + { + return propertyAccessEClass; + } + + /** + * + * + * @generated + */ + public EClass getThisProperty() + { + return thisPropertyEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getThisProperty_Splat() + { + return (EAttribute)thisPropertyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getThisProperty_DefaultValue() + { + return (EReference)thisPropertyEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getNamedPropertyAccess() + { + return namedPropertyAccessEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNamedPropertyAccess_Accessor() + { + return (EAttribute)namedPropertyAccessEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getNamedPropertyAccess_Name() + { + return (EReference)namedPropertyAccessEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getIndexedPropertyAccess() + { + return indexedPropertyAccessEClass; + } + + /** + * + * + * @generated + */ + public EReference getIndexedPropertyAccess_Index() + { + return (EReference)indexedPropertyAccessEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getIndex() + { + return indexEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getIndex_Dots() + { + return (EAttribute)indexEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getIndex_End() + { + return (EReference)indexEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getIndex_Start() + { + return (EReference)indexEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getIndex_Exp() + { + return (EReference)indexEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getPrimaryExpression() + { + return primaryExpressionEClass; + } + + /** + * + * + * @generated + */ + public EClass getBlock() + { + return blockEClass; + } + + /** + * + * + * @generated + */ + public EClass getCase() + { + return caseEClass; + } + + /** + * + * + * @generated + */ + public EReference getCase_Whens() + { + return (EReference)caseEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getCase_Then() + { + return (EReference)caseEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getIfExp() + { + return ifExpEClass; + } + + /** + * + * + * @generated + */ + public EReference getIfExp_Blocks() + { + return (EReference)ifExpEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getIfExp_DefaultBlock() + { + return (EReference)ifExpEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getCondBlock() + { + return condBlockEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getCondBlock_Operator() + { + return (EAttribute)condBlockEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getCondBlock_Condition() + { + return (EReference)condBlockEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getCondBlock_Action() + { + return (EReference)condBlockEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getIdRef() + { + return idRefEClass; + } + + /** + * + * + * @generated + */ + public EReference getIdRef_Val() + { + return (EReference)idRefEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getIdRef_Accessor() + { + return (EAttribute)idRefEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getIdRef_Prop() + { + return (EReference)idRefEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getIdRef_Index() + { + return (EReference)idRefEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getId() + { + return idEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getId_Name() + { + return (EAttribute)idEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getId_Props() + { + return (EReference)idEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getProperty() + { + return propertyEClass; + } + + /** + * + * + * @generated + */ + public EClass getVariable() + { + return variableEClass; + } + + /** + * + * + * @generated + */ + public EClass getAssignableArray() + { + return assignableArrayEClass; + } + + /** + * + * + * @generated + */ + public EClass getAssignableArgList() + { + return assignableArgListEClass; + } + + /** + * + * + * @generated + */ + public EReference getAssignableArgList_Args() + { + return (EReference)assignableArgListEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAssignableArg() + { + return assignableArgEClass; + } + + /** + * + * + * @generated + */ + public EReference getAssignableArg_Arg() + { + return (EReference)assignableArgEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getAssignableArg_Splat() + { + return (EAttribute)assignableArgEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getAssignable() + { + return assignableEClass; + } + + /** + * + * + * @generated + */ + public EClass getArg() + { + return argEClass; + } + + /** + * + * + * @generated + */ + public EReference getArg_Exp() + { + return (EReference)argEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getArg_Splat() + { + return (EAttribute)argEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getArgLine() + { + return argLineEClass; + } + + /** + * + * + * @generated + */ + public EReference getArgLine_Head() + { + return (EReference)argLineEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getArgLine_Tail() + { + return (EReference)argLineEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExplicitArgList() + { + return explicitArgListEClass; + } + + /** + * + * + * @generated + */ + public EReference getExplicitArgList_Lines() + { + return (EReference)explicitArgListEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getArgList() + { + return argListEClass; + } + + /** + * + * + * @generated + */ + public EReference getArgList_Dummy() + { + return (EReference)argListEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getArray() + { + return arrayEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getArray_Splat() + { + return (EAttribute)arrayEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getArray_DefaultValue() + { + return (EReference)arrayEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDictionary() + { + return dictionaryEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getDictionary_Splat() + { + return (EAttribute)dictionaryEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDictionary_DefaultValue() + { + return (EReference)dictionaryEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDictItems() + { + return dictItemsEClass; + } + + /** + * + * + * @generated + */ + public EReference getDictItems_Dummy() + { + return (EReference)dictItemsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getExplicitDictItems() + { + return explicitDictItemsEClass; + } + + /** + * + * + * @generated + */ + public EReference getExplicitDictItems_Lines() + { + return (EReference)explicitDictItemsEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getDictLine() + { + return dictLineEClass; + } + + /** + * + * + * @generated + */ + public EReference getDictLine_Head() + { + return (EReference)dictLineEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDictLine_Tail() + { + return (EReference)dictLineEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDictItem() + { + return dictItemEClass; + } + + /** + * + * + * @generated + */ + public EReference getDictItem_Key() + { + return (EReference)dictItemEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getDictItem_Value() + { + return (EReference)dictItemEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getDictKey() + { + return dictKeyEClass; + } + + /** + * + * + * @generated + */ + public EClass getLambda() + { + return lambdaEClass; + } + + /** + * + * + * @generated + */ + public EReference getLambda_Params() + { + return (EReference)lambdaEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getLambda_Body() + { + return (EReference)lambdaEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getParam() + { + return paramEClass; + } + + /** + * + * + * @generated + */ + public EClass getNumberLiteral() + { + return numberLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getStringLiteral() + { + return stringLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getBoolLiteral() + { + return boolLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getJSLiteral() + { + return jsLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getRegexLiteral() + { + return regexLiteralEClass; + } + + /** + * + * + * @generated + */ + public EClass getLiteral() + { + return literalEClass; + } + + /** + * + * + * @generated + */ + public EClass getParenthetical() + { + return parentheticalEClass; + } + + /** + * + * + * @generated + */ + public EReference getParenthetical_Content() + { + return (EReference)parentheticalEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getIf() + { + return ifEClass; + } + + /** + * + * + * @generated + */ + public EReference getIf_Dummy() + { + return (EReference)ifEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getIf_Condition() + { + return (EReference)ifEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getFor() + { + return forEClass; + } + + /** + * + * + * @generated + */ + public EReference getFor_Dummy() + { + return (EReference)forEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getFor_Body() + { + return (EReference)forEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getFor_Loop() + { + return (EReference)forEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getWhile() + { + return whileEClass; + } + + /** + * + * + * @generated + */ + public EReference getWhile_Dummy() + { + return (EReference)whileEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getWhile_Body() + { + return (EReference)whileEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getWhile_When() + { + return (EReference)whileEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getWhile_Loop() + { + return (EReference)whileEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getUntil() + { + return untilEClass; + } + + /** + * + * + * @generated + */ + public EReference getUntil_Dummy() + { + return (EReference)untilEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getUntil_Body() + { + return (EReference)untilEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getUntil_When() + { + return (EReference)untilEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getUntil_Loop() + { + return (EReference)untilEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getBinaryExp() + { + return binaryExpEClass; + } + + /** + * + * + * @generated + */ + public EClass getSuperCall() + { + return superCallEClass; + } + + /** + * + * + * @generated + */ + public EReference getSuperCall_Args() + { + return (EReference)superCallEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getThisAlone() + { + return thisAloneEClass; + } + + /** + * + * + * @generated + */ + public EClass getLoop() + { + return loopEClass; + } + + /** + * + * + * @generated + */ + public EReference getLoop_Body() + { + return (EReference)loopEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTryCatch() + { + return tryCatchEClass; + } + + /** + * + * + * @generated + */ + public EReference getTryCatch_Body() + { + return (EReference)tryCatchEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTryCatch_Exception() + { + return (EReference)tryCatchEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getTryCatch_CatchBlock() + { + return (EReference)tryCatchEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getTryCatch_FinallyBlock() + { + return (EReference)tryCatchEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getSwitch() + { + return switchEClass; + } + + /** + * + * + * @generated + */ + public EReference getSwitch_Exp() + { + return (EReference)switchEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getSwitch_Cases() + { + return (EReference)switchEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getSwitch_ElseBlock() + { + return (EReference)switchEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public CoffeeScriptFactory getCoffeeScriptFactory() + { + return (CoffeeScriptFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + rootEClass = createEClass(ROOT); + + bodyEClass = createEClass(BODY); + createEReference(bodyEClass, BODY__LINES); + + lineEClass = createEClass(LINE); + + stmtEClass = createEClass(STMT); + createEAttribute(stmtEClass, STMT__STATEMENT); + + commentEClass = createEClass(COMMENT); + createEAttribute(commentEClass, COMMENT__COMMENT); + + requireStmtEClass = createEClass(REQUIRE_STMT); + createEReference(requireStmtEClass, REQUIRE_STMT__IMPORTED_NAMESPACE); + createEAttribute(requireStmtEClass, REQUIRE_STMT__URI); + + returnStmtEClass = createEClass(RETURN_STMT); + createEReference(returnStmtEClass, RETURN_STMT__EXPRESSION); + createEReference(returnStmtEClass, RETURN_STMT__CONDITION); + + throwStmtEClass = createEClass(THROW_STMT); + createEReference(throwStmtEClass, THROW_STMT__EXP); + + superClassEClass = createEClass(SUPER_CLASS); + + classDeclarationEClass = createEClass(CLASS_DECLARATION); + createEReference(classDeclarationEClass, CLASS_DECLARATION__BODY); + createEReference(classDeclarationEClass, CLASS_DECLARATION__EXTEND); + createEReference(classDeclarationEClass, CLASS_DECLARATION__NAME); + + assignedClassDeclarationEClass = createEClass(ASSIGNED_CLASS_DECLARATION); + + expressionEClass = createEClass(EXPRESSION); + createEReference(expressionEClass, EXPRESSION__INDEXES); + createEReference(expressionEClass, EXPRESSION__SOURCE); + createEReference(expressionEClass, EXPRESSION__LEFT); + createEAttribute(expressionEClass, EXPRESSION__OPERATOR); + createEReference(expressionEClass, EXPRESSION__RIGHT); + + forValueEClass = createEClass(FOR_VALUE); + + forSourceEClass = createEClass(FOR_SOURCE); + createEReference(forSourceEClass, FOR_SOURCE__SOURCE); + createEReference(forSourceEClass, FOR_SOURCE__WHEN); + createEReference(forSourceEClass, FOR_SOURCE__BY); + + rangeEClass = createEClass(RANGE); + createEReference(rangeEClass, RANGE__START); + createEReference(rangeEClass, RANGE__END); + + applicationEClass = createEClass(APPLICATION); + createEReference(applicationEClass, APPLICATION__VALUE); + createEReference(applicationEClass, APPLICATION__FEATURES); + + featureCallEClass = createEClass(FEATURE_CALL); + + functionCallEClass = createEClass(FUNCTION_CALL); + createEReference(functionCallEClass, FUNCTION_CALL__ARGS); + + propertyAccessEClass = createEClass(PROPERTY_ACCESS); + + thisPropertyEClass = createEClass(THIS_PROPERTY); + createEAttribute(thisPropertyEClass, THIS_PROPERTY__SPLAT); + createEReference(thisPropertyEClass, THIS_PROPERTY__DEFAULT_VALUE); + + namedPropertyAccessEClass = createEClass(NAMED_PROPERTY_ACCESS); + createEAttribute(namedPropertyAccessEClass, NAMED_PROPERTY_ACCESS__ACCESSOR); + createEReference(namedPropertyAccessEClass, NAMED_PROPERTY_ACCESS__NAME); + + indexedPropertyAccessEClass = createEClass(INDEXED_PROPERTY_ACCESS); + createEReference(indexedPropertyAccessEClass, INDEXED_PROPERTY_ACCESS__INDEX); + + indexEClass = createEClass(INDEX); + createEAttribute(indexEClass, INDEX__DOTS); + createEReference(indexEClass, INDEX__END); + createEReference(indexEClass, INDEX__START); + createEReference(indexEClass, INDEX__EXP); + + primaryExpressionEClass = createEClass(PRIMARY_EXPRESSION); + + blockEClass = createEClass(BLOCK); + + caseEClass = createEClass(CASE); + createEReference(caseEClass, CASE__WHENS); + createEReference(caseEClass, CASE__THEN); + + ifExpEClass = createEClass(IF_EXP); + createEReference(ifExpEClass, IF_EXP__BLOCKS); + createEReference(ifExpEClass, IF_EXP__DEFAULT_BLOCK); + + condBlockEClass = createEClass(COND_BLOCK); + createEAttribute(condBlockEClass, COND_BLOCK__OPERATOR); + createEReference(condBlockEClass, COND_BLOCK__CONDITION); + createEReference(condBlockEClass, COND_BLOCK__ACTION); + + idRefEClass = createEClass(ID_REF); + createEReference(idRefEClass, ID_REF__VAL); + createEAttribute(idRefEClass, ID_REF__ACCESSOR); + createEReference(idRefEClass, ID_REF__PROP); + createEReference(idRefEClass, ID_REF__INDEX); + + idEClass = createEClass(ID); + createEAttribute(idEClass, ID__NAME); + createEReference(idEClass, ID__PROPS); + + propertyEClass = createEClass(PROPERTY); + + variableEClass = createEClass(VARIABLE); + + assignableArrayEClass = createEClass(ASSIGNABLE_ARRAY); + + assignableArgListEClass = createEClass(ASSIGNABLE_ARG_LIST); + createEReference(assignableArgListEClass, ASSIGNABLE_ARG_LIST__ARGS); + + assignableArgEClass = createEClass(ASSIGNABLE_ARG); + createEReference(assignableArgEClass, ASSIGNABLE_ARG__ARG); + createEAttribute(assignableArgEClass, ASSIGNABLE_ARG__SPLAT); + + assignableEClass = createEClass(ASSIGNABLE); + + argEClass = createEClass(ARG); + createEReference(argEClass, ARG__EXP); + createEAttribute(argEClass, ARG__SPLAT); + + argLineEClass = createEClass(ARG_LINE); + createEReference(argLineEClass, ARG_LINE__HEAD); + createEReference(argLineEClass, ARG_LINE__TAIL); + + explicitArgListEClass = createEClass(EXPLICIT_ARG_LIST); + createEReference(explicitArgListEClass, EXPLICIT_ARG_LIST__LINES); + + argListEClass = createEClass(ARG_LIST); + createEReference(argListEClass, ARG_LIST__DUMMY); + + arrayEClass = createEClass(ARRAY); + createEAttribute(arrayEClass, ARRAY__SPLAT); + createEReference(arrayEClass, ARRAY__DEFAULT_VALUE); + + dictionaryEClass = createEClass(DICTIONARY); + createEAttribute(dictionaryEClass, DICTIONARY__SPLAT); + createEReference(dictionaryEClass, DICTIONARY__DEFAULT_VALUE); + + dictItemsEClass = createEClass(DICT_ITEMS); + createEReference(dictItemsEClass, DICT_ITEMS__DUMMY); + + explicitDictItemsEClass = createEClass(EXPLICIT_DICT_ITEMS); + createEReference(explicitDictItemsEClass, EXPLICIT_DICT_ITEMS__LINES); + + dictLineEClass = createEClass(DICT_LINE); + createEReference(dictLineEClass, DICT_LINE__HEAD); + createEReference(dictLineEClass, DICT_LINE__TAIL); + + dictItemEClass = createEClass(DICT_ITEM); + createEReference(dictItemEClass, DICT_ITEM__KEY); + createEReference(dictItemEClass, DICT_ITEM__VALUE); + + dictKeyEClass = createEClass(DICT_KEY); + + lambdaEClass = createEClass(LAMBDA); + createEReference(lambdaEClass, LAMBDA__PARAMS); + createEReference(lambdaEClass, LAMBDA__BODY); + + paramEClass = createEClass(PARAM); + + numberLiteralEClass = createEClass(NUMBER_LITERAL); + + stringLiteralEClass = createEClass(STRING_LITERAL); + + boolLiteralEClass = createEClass(BOOL_LITERAL); + + jsLiteralEClass = createEClass(JS_LITERAL); + + regexLiteralEClass = createEClass(REGEX_LITERAL); + + literalEClass = createEClass(LITERAL); + + parentheticalEClass = createEClass(PARENTHETICAL); + createEReference(parentheticalEClass, PARENTHETICAL__CONTENT); + + ifEClass = createEClass(IF); + createEReference(ifEClass, IF__DUMMY); + createEReference(ifEClass, IF__CONDITION); + + forEClass = createEClass(FOR); + createEReference(forEClass, FOR__DUMMY); + createEReference(forEClass, FOR__BODY); + createEReference(forEClass, FOR__LOOP); + + whileEClass = createEClass(WHILE); + createEReference(whileEClass, WHILE__DUMMY); + createEReference(whileEClass, WHILE__BODY); + createEReference(whileEClass, WHILE__WHEN); + createEReference(whileEClass, WHILE__LOOP); + + untilEClass = createEClass(UNTIL); + createEReference(untilEClass, UNTIL__DUMMY); + createEReference(untilEClass, UNTIL__BODY); + createEReference(untilEClass, UNTIL__WHEN); + createEReference(untilEClass, UNTIL__LOOP); + + binaryExpEClass = createEClass(BINARY_EXP); + + superCallEClass = createEClass(SUPER_CALL); + createEReference(superCallEClass, SUPER_CALL__ARGS); + + thisAloneEClass = createEClass(THIS_ALONE); + + loopEClass = createEClass(LOOP); + createEReference(loopEClass, LOOP__BODY); + + tryCatchEClass = createEClass(TRY_CATCH); + createEReference(tryCatchEClass, TRY_CATCH__BODY); + createEReference(tryCatchEClass, TRY_CATCH__EXCEPTION); + createEReference(tryCatchEClass, TRY_CATCH__CATCH_BLOCK); + createEReference(tryCatchEClass, TRY_CATCH__FINALLY_BLOCK); + + switchEClass = createEClass(SWITCH); + createEReference(switchEClass, SWITCH__EXP); + createEReference(switchEClass, SWITCH__CASES); + createEReference(switchEClass, SWITCH__ELSE_BLOCK); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + bodyEClass.getESuperTypes().add(this.getRoot()); + bodyEClass.getESuperTypes().add(this.getBlock()); + stmtEClass.getESuperTypes().add(this.getLine()); + commentEClass.getESuperTypes().add(this.getStmt()); + requireStmtEClass.getESuperTypes().add(this.getStmt()); + returnStmtEClass.getESuperTypes().add(this.getStmt()); + throwStmtEClass.getESuperTypes().add(this.getStmt()); + classDeclarationEClass.getESuperTypes().add(this.getStmt()); + classDeclarationEClass.getESuperTypes().add(this.getAssignedClassDeclaration()); + assignedClassDeclarationEClass.getESuperTypes().add(this.getExpression()); + expressionEClass.getESuperTypes().add(this.getLine()); + rangeEClass.getESuperTypes().add(this.getPrimaryExpression()); + applicationEClass.getESuperTypes().add(this.getExpression()); + functionCallEClass.getESuperTypes().add(this.getFeatureCall()); + propertyAccessEClass.getESuperTypes().add(this.getFeatureCall()); + thisPropertyEClass.getESuperTypes().add(this.getPrimaryExpression()); + thisPropertyEClass.getESuperTypes().add(this.getParam()); + namedPropertyAccessEClass.getESuperTypes().add(this.getPropertyAccess()); + indexedPropertyAccessEClass.getESuperTypes().add(this.getPropertyAccess()); + blockEClass.getESuperTypes().add(this.getRoot()); + ifExpEClass.getESuperTypes().add(this.getPrimaryExpression()); + idRefEClass.getESuperTypes().add(this.getSuperClass()); + idRefEClass.getESuperTypes().add(this.getPrimaryExpression()); + idRefEClass.getESuperTypes().add(this.getProperty()); + idEClass.getESuperTypes().add(this.getForValue()); + idEClass.getESuperTypes().add(this.getThisProperty()); + idEClass.getESuperTypes().add(this.getVariable()); + idEClass.getESuperTypes().add(this.getDictKey()); + idEClass.getESuperTypes().add(this.getParam()); + propertyEClass.getESuperTypes().add(this.getSuperClass()); + propertyEClass.getESuperTypes().add(this.getVariable()); + variableEClass.getESuperTypes().add(this.getExpression()); + variableEClass.getESuperTypes().add(this.getAssignable()); + assignableArrayEClass.getESuperTypes().add(this.getAssignable()); + assignableArgListEClass.getESuperTypes().add(this.getAssignableArray()); + argListEClass.getESuperTypes().add(this.getArray()); + arrayEClass.getESuperTypes().add(this.getPrimaryExpression()); + arrayEClass.getESuperTypes().add(this.getParam()); + dictionaryEClass.getESuperTypes().add(this.getPrimaryExpression()); + dictionaryEClass.getESuperTypes().add(this.getAssignable()); + dictionaryEClass.getESuperTypes().add(this.getParam()); + dictItemsEClass.getESuperTypes().add(this.getDictionary()); + lambdaEClass.getESuperTypes().add(this.getPrimaryExpression()); + numberLiteralEClass.getESuperTypes().add(this.getLiteral()); + stringLiteralEClass.getESuperTypes().add(this.getLiteral()); + boolLiteralEClass.getESuperTypes().add(this.getLiteral()); + jsLiteralEClass.getESuperTypes().add(this.getLiteral()); + regexLiteralEClass.getESuperTypes().add(this.getLiteral()); + literalEClass.getESuperTypes().add(this.getPrimaryExpression()); + literalEClass.getESuperTypes().add(this.getDictKey()); + parentheticalEClass.getESuperTypes().add(this.getPrimaryExpression()); + ifEClass.getESuperTypes().add(this.getExpression()); + forEClass.getESuperTypes().add(this.getExpression()); + forEClass.getESuperTypes().add(this.getPrimaryExpression()); + whileEClass.getESuperTypes().add(this.getExpression()); + whileEClass.getESuperTypes().add(this.getPrimaryExpression()); + untilEClass.getESuperTypes().add(this.getExpression()); + untilEClass.getESuperTypes().add(this.getPrimaryExpression()); + binaryExpEClass.getESuperTypes().add(this.getExpression()); + superCallEClass.getESuperTypes().add(this.getApplication()); + thisAloneEClass.getESuperTypes().add(this.getPrimaryExpression()); + loopEClass.getESuperTypes().add(this.getPrimaryExpression()); + tryCatchEClass.getESuperTypes().add(this.getPrimaryExpression()); + switchEClass.getESuperTypes().add(this.getPrimaryExpression()); + + // Initialize classes and features; add operations and parameters + initEClass(rootEClass, Root.class, "Root", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(bodyEClass, Body.class, "Body", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBody_Lines(), this.getLine(), null, "lines", null, 0, -1, Body.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(lineEClass, Line.class, "Line", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(stmtEClass, Stmt.class, "Stmt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStmt_Statement(), ecorePackage.getEString(), "statement", null, 0, 1, Stmt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getComment_Comment(), ecorePackage.getEString(), "comment", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(requireStmtEClass, RequireStmt.class, "RequireStmt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRequireStmt_ImportedNamespace(), this.getId(), null, "importedNamespace", null, 0, 1, RequireStmt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getRequireStmt_Uri(), ecorePackage.getEString(), "uri", null, 0, 1, RequireStmt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(returnStmtEClass, ReturnStmt.class, "ReturnStmt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getReturnStmt_Expression(), this.getExpression(), null, "expression", null, 0, 1, ReturnStmt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getReturnStmt_Condition(), this.getExpression(), null, "condition", null, 0, 1, ReturnStmt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(throwStmtEClass, ThrowStmt.class, "ThrowStmt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getThrowStmt_Exp(), this.getExpression(), null, "exp", null, 0, 1, ThrowStmt.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(superClassEClass, SuperClass.class, "SuperClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(classDeclarationEClass, ClassDeclaration.class, "ClassDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getClassDeclaration_Body(), this.getBlock(), null, "body", null, 0, 1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getClassDeclaration_Extend(), this.getSuperClass(), null, "extend", null, 0, 1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getClassDeclaration_Name(), this.getVariable(), null, "name", null, 0, 1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assignedClassDeclarationEClass, AssignedClassDeclaration.class, "AssignedClassDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExpression_Indexes(), this.getForValue(), null, "indexes", null, 0, -1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExpression_Source(), this.getForSource(), null, "source", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExpression_Left(), ecorePackage.getEObject(), null, "left", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExpression_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExpression_Right(), this.getExpression(), null, "right", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(forValueEClass, ForValue.class, "ForValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(forSourceEClass, ForSource.class, "ForSource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getForSource_Source(), this.getExpression(), null, "source", null, 0, 1, ForSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getForSource_When(), this.getExpression(), null, "when", null, 0, 1, ForSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getForSource_By(), this.getExpression(), null, "by", null, 0, 1, ForSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(rangeEClass, Range.class, "Range", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRange_Start(), this.getExpression(), null, "start", null, 0, 1, Range.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRange_End(), this.getExpression(), null, "end", null, 0, 1, Range.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(applicationEClass, Application.class, "Application", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getApplication_Value(), this.getPrimaryExpression(), null, "value", null, 0, 1, Application.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getApplication_Features(), this.getFeatureCall(), null, "features", null, 0, -1, Application.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(featureCallEClass, FeatureCall.class, "FeatureCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(functionCallEClass, FunctionCall.class, "FunctionCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFunctionCall_Args(), this.getArgList(), null, "args", null, 0, 1, FunctionCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(propertyAccessEClass, PropertyAccess.class, "PropertyAccess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(thisPropertyEClass, ThisProperty.class, "ThisProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getThisProperty_Splat(), ecorePackage.getEBoolean(), "splat", null, 0, 1, ThisProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getThisProperty_DefaultValue(), this.getExpression(), null, "defaultValue", null, 0, 1, ThisProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(namedPropertyAccessEClass, NamedPropertyAccess.class, "NamedPropertyAccess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNamedPropertyAccess_Accessor(), ecorePackage.getEString(), "accessor", null, 0, 1, NamedPropertyAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getNamedPropertyAccess_Name(), this.getId(), null, "name", null, 0, 1, NamedPropertyAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(indexedPropertyAccessEClass, IndexedPropertyAccess.class, "IndexedPropertyAccess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIndexedPropertyAccess_Index(), this.getIndex(), null, "index", null, 0, 1, IndexedPropertyAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(indexEClass, Index.class, "Index", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getIndex_Dots(), ecorePackage.getEString(), "dots", null, 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIndex_End(), this.getExpression(), null, "end", null, 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIndex_Start(), this.getExpression(), null, "start", null, 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIndex_Exp(), this.getExpression(), null, "exp", null, 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(primaryExpressionEClass, PrimaryExpression.class, "PrimaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(blockEClass, Block.class, "Block", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCase_Whens(), this.getExpression(), null, "whens", null, 0, -1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCase_Then(), this.getBlock(), null, "then", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(ifExpEClass, IfExp.class, "IfExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIfExp_Blocks(), this.getCondBlock(), null, "blocks", null, 0, -1, IfExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIfExp_DefaultBlock(), this.getBlock(), null, "defaultBlock", null, 0, 1, IfExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(condBlockEClass, CondBlock.class, "CondBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getCondBlock_Operator(), ecorePackage.getEString(), "operator", null, 0, 1, CondBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCondBlock_Condition(), this.getExpression(), null, "condition", null, 0, 1, CondBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCondBlock_Action(), this.getBlock(), null, "action", null, 0, 1, CondBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(idRefEClass, IdRef.class, "IdRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIdRef_Val(), this.getId(), null, "val", null, 0, 1, IdRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getIdRef_Accessor(), ecorePackage.getEString(), "accessor", null, 0, 1, IdRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIdRef_Prop(), this.getId(), null, "prop", null, 0, 1, IdRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIdRef_Index(), this.getIndex(), null, "index", null, 0, 1, IdRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(idEClass, Id.class, "Id", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getId_Name(), ecorePackage.getEString(), "name", null, 0, 1, Id.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getId_Props(), this.getId(), null, "props", null, 0, -1, Id.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(assignableArrayEClass, AssignableArray.class, "AssignableArray", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(assignableArgListEClass, AssignableArgList.class, "AssignableArgList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssignableArgList_Args(), this.getAssignableArg(), null, "args", null, 0, -1, AssignableArgList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assignableArgEClass, AssignableArg.class, "AssignableArg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssignableArg_Arg(), this.getAssignable(), null, "arg", null, 0, 1, AssignableArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAssignableArg_Splat(), ecorePackage.getEBoolean(), "splat", null, 0, 1, AssignableArg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assignableEClass, Assignable.class, "Assignable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(argEClass, Arg.class, "Arg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getArg_Exp(), this.getExpression(), null, "exp", null, 0, 1, Arg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getArg_Splat(), ecorePackage.getEBoolean(), "splat", null, 0, 1, Arg.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(argLineEClass, ArgLine.class, "ArgLine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getArgLine_Head(), this.getArg(), null, "head", null, 0, 1, ArgLine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getArgLine_Tail(), this.getArg(), null, "tail", null, 0, -1, ArgLine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(explicitArgListEClass, ExplicitArgList.class, "ExplicitArgList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExplicitArgList_Lines(), this.getArgLine(), null, "lines", null, 0, -1, ExplicitArgList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(argListEClass, ArgList.class, "ArgList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getArgList_Dummy(), this.getExplicitArgList(), null, "dummy", null, 0, 1, ArgList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(arrayEClass, Array.class, "Array", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getArray_Splat(), ecorePackage.getEBoolean(), "splat", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getArray_DefaultValue(), this.getExpression(), null, "defaultValue", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dictionaryEClass, Dictionary.class, "Dictionary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getDictionary_Splat(), ecorePackage.getEBoolean(), "splat", null, 0, 1, Dictionary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDictionary_DefaultValue(), this.getExpression(), null, "defaultValue", null, 0, 1, Dictionary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dictItemsEClass, DictItems.class, "DictItems", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDictItems_Dummy(), this.getExplicitDictItems(), null, "dummy", null, 0, 1, DictItems.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(explicitDictItemsEClass, ExplicitDictItems.class, "ExplicitDictItems", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExplicitDictItems_Lines(), this.getDictLine(), null, "lines", null, 0, -1, ExplicitDictItems.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dictLineEClass, DictLine.class, "DictLine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDictLine_Head(), this.getDictItem(), null, "head", null, 0, 1, DictLine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDictLine_Tail(), this.getDictItem(), null, "tail", null, 0, -1, DictLine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dictItemEClass, DictItem.class, "DictItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDictItem_Key(), this.getDictKey(), null, "key", null, 0, 1, DictItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDictItem_Value(), this.getExpression(), null, "value", null, 0, 1, DictItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dictKeyEClass, DictKey.class, "DictKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(lambdaEClass, Lambda.class, "Lambda", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getLambda_Params(), this.getParam(), null, "params", null, 0, -1, Lambda.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getLambda_Body(), this.getBlock(), null, "body", null, 0, 1, Lambda.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(paramEClass, Param.class, "Param", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(numberLiteralEClass, NumberLiteral.class, "NumberLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(boolLiteralEClass, BoolLiteral.class, "BoolLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(jsLiteralEClass, JSLiteral.class, "JSLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(regexLiteralEClass, RegexLiteral.class, "RegexLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(parentheticalEClass, Parenthetical.class, "Parenthetical", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getParenthetical_Content(), this.getBody(), null, "content", null, 0, 1, Parenthetical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(ifEClass, If.class, "If", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIf_Dummy(), this.getExpression(), null, "dummy", null, 0, 1, If.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIf_Condition(), this.getExpression(), null, "condition", null, 0, 1, If.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(forEClass, For.class, "For", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFor_Dummy(), this.getExpression(), null, "dummy", null, 0, 1, For.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getFor_Body(), ecorePackage.getEObject(), null, "body", null, 0, 1, For.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getFor_Loop(), this.getExpression(), null, "loop", null, 0, 1, For.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(whileEClass, While.class, "While", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getWhile_Dummy(), this.getExpression(), null, "dummy", null, 0, 1, While.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getWhile_Body(), ecorePackage.getEObject(), null, "body", null, 0, 1, While.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getWhile_When(), this.getExpression(), null, "when", null, 0, 1, While.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getWhile_Loop(), this.getExpression(), null, "loop", null, 0, 1, While.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(untilEClass, Until.class, "Until", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUntil_Dummy(), this.getExpression(), null, "dummy", null, 0, 1, Until.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUntil_Body(), ecorePackage.getEObject(), null, "body", null, 0, 1, Until.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUntil_When(), this.getExpression(), null, "when", null, 0, 1, Until.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUntil_Loop(), this.getExpression(), null, "loop", null, 0, 1, Until.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(binaryExpEClass, BinaryExp.class, "BinaryExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(superCallEClass, SuperCall.class, "SuperCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSuperCall_Args(), this.getArgList(), null, "args", null, 0, 1, SuperCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(thisAloneEClass, ThisAlone.class, "ThisAlone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(loopEClass, Loop.class, "Loop", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getLoop_Body(), this.getBlock(), null, "body", null, 0, 1, Loop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(tryCatchEClass, TryCatch.class, "TryCatch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTryCatch_Body(), this.getBlock(), null, "body", null, 0, 1, TryCatch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTryCatch_Exception(), this.getId(), null, "exception", null, 0, 1, TryCatch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTryCatch_CatchBlock(), this.getBlock(), null, "catchBlock", null, 0, 1, TryCatch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTryCatch_FinallyBlock(), this.getBlock(), null, "finallyBlock", null, 0, 1, TryCatch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(switchEClass, Switch.class, "Switch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSwitch_Exp(), this.getExpression(), null, "exp", null, 0, 1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSwitch_Cases(), this.getCase(), null, "cases", null, 0, -1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSwitch_ElseBlock(), this.getBlock(), null, "elseBlock", null, 0, 1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //CoffeeScriptPackageImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/CommentImpl.java b/csep/src-gen/csep/coffeeScript/impl/CommentImpl.java new file mode 100644 index 0000000..86558b2 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/CommentImpl.java @@ -0,0 +1,176 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Comment; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Comment'. + * + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class DictKeyImpl extends MinimalEObjectImpl.Container implements DictKey +{ + /** + * + * + * @generated + */ + protected DictKeyImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.DICT_KEY; + } + +} //DictKeyImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/DictLineImpl.java b/csep/src-gen/csep/coffeeScript/impl/DictLineImpl.java new file mode 100644 index 0000000..697c5bf --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/DictLineImpl.java @@ -0,0 +1,240 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.DictItem; +import csep.coffeeScript.DictLine; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Dict Line'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class FeatureCallImpl extends MinimalEObjectImpl.Container implements FeatureCall +{ + /** + * + * + * @generated + */ + protected FeatureCallImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.FEATURE_CALL; + } + +} //FeatureCallImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/ForImpl.java b/csep/src-gen/csep/coffeeScript/impl/ForImpl.java new file mode 100644 index 0000000..8ea1ed1 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/ForImpl.java @@ -0,0 +1,336 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Expression; +import csep.coffeeScript.For; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'For'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class ForValueImpl extends MinimalEObjectImpl.Container implements ForValue +{ + /** + * + * + * @generated + */ + protected ForValueImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.FOR_VALUE; + } + +} //ForValueImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/FunctionCallImpl.java b/csep/src-gen/csep/coffeeScript/impl/FunctionCallImpl.java new file mode 100644 index 0000000..c65b144 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/FunctionCallImpl.java @@ -0,0 +1,193 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.ArgList; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.FunctionCall; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Function Call'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class JSLiteralImpl extends LiteralImpl implements JSLiteral +{ + /** + * + * + * @generated + */ + protected JSLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.JS_LITERAL; + } + +} //JSLiteralImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/LambdaImpl.java b/csep/src-gen/csep/coffeeScript/impl/LambdaImpl.java new file mode 100644 index 0000000..68dd3c3 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/LambdaImpl.java @@ -0,0 +1,240 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Block; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Lambda; +import csep.coffeeScript.Param; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Lambda'. + * + *+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class LineImpl extends MinimalEObjectImpl.Container implements Line +{ + /** + * + * + * @generated + */ + protected LineImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.LINE; + } + +} //LineImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/LiteralImpl.java b/csep/src-gen/csep/coffeeScript/impl/LiteralImpl.java new file mode 100644 index 0000000..630e675 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/LiteralImpl.java @@ -0,0 +1,42 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Literal; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Literal'. + * + *+ *
+ * + * @generated + */ +public class LiteralImpl extends PrimaryExpressionImpl implements Literal +{ + /** + * + * + * @generated + */ + protected LiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.LITERAL; + } + +} //LiteralImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/LoopImpl.java b/csep/src-gen/csep/coffeeScript/impl/LoopImpl.java new file mode 100644 index 0000000..31e93f6 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/LoopImpl.java @@ -0,0 +1,193 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Block; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Loop; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Loop'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class NumberLiteralImpl extends LiteralImpl implements NumberLiteral +{ + /** + * + * + * @generated + */ + protected NumberLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.NUMBER_LITERAL; + } + +} //NumberLiteralImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/ParamImpl.java b/csep/src-gen/csep/coffeeScript/impl/ParamImpl.java new file mode 100644 index 0000000..9c1b2bb --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/ParamImpl.java @@ -0,0 +1,44 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Param; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Param'. + * + *+ *
+ * + * @generated + */ +public class ParamImpl extends MinimalEObjectImpl.Container implements Param +{ + /** + * + * + * @generated + */ + protected ParamImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.PARAM; + } + +} //ParamImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/ParentheticalImpl.java b/csep/src-gen/csep/coffeeScript/impl/ParentheticalImpl.java new file mode 100644 index 0000000..65ebde2 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/ParentheticalImpl.java @@ -0,0 +1,193 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Body; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Parenthetical; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Parenthetical'. + * + *+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class PrimaryExpressionImpl extends MinimalEObjectImpl.Container implements PrimaryExpression +{ + /** + * + * + * @generated + */ + protected PrimaryExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.PRIMARY_EXPRESSION; + } + +} //PrimaryExpressionImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/PropertyAccessImpl.java b/csep/src-gen/csep/coffeeScript/impl/PropertyAccessImpl.java new file mode 100644 index 0000000..e438278 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/PropertyAccessImpl.java @@ -0,0 +1,42 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.PropertyAccess; + +import org.eclipse.emf.ecore.EClass; + +/** + * + * An implementation of the model object 'Property Access'. + * + *+ *
+ * + * @generated + */ +public class PropertyAccessImpl extends FeatureCallImpl implements PropertyAccess +{ + /** + * + * + * @generated + */ + protected PropertyAccessImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.PROPERTY_ACCESS; + } + +} //PropertyAccessImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/PropertyImpl.java b/csep/src-gen/csep/coffeeScript/impl/PropertyImpl.java new file mode 100644 index 0000000..1e16cde --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/PropertyImpl.java @@ -0,0 +1,546 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Assignable; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Expression; +import csep.coffeeScript.ForSource; +import csep.coffeeScript.ForValue; +import csep.coffeeScript.Line; +import csep.coffeeScript.Property; +import csep.coffeeScript.Variable; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Property'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class RegexLiteralImpl extends LiteralImpl implements RegexLiteral +{ + /** + * + * + * @generated + */ + protected RegexLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.REGEX_LITERAL; + } + +} //RegexLiteralImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/RequireStmtImpl.java b/csep/src-gen/csep/coffeeScript/impl/RequireStmtImpl.java new file mode 100644 index 0000000..9947f23 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/RequireStmtImpl.java @@ -0,0 +1,264 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Id; +import csep.coffeeScript.RequireStmt; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Require Stmt'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class RootImpl extends MinimalEObjectImpl.Container implements Root +{ + /** + * + * + * @generated + */ + protected RootImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.ROOT; + } + +} //RootImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/StmtImpl.java b/csep/src-gen/csep/coffeeScript/impl/StmtImpl.java new file mode 100644 index 0000000..0f07c71 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/StmtImpl.java @@ -0,0 +1,176 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Stmt; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Stmt'. + * + *+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class StringLiteralImpl extends LiteralImpl implements StringLiteral +{ + /** + * + * + * @generated + */ + protected StringLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.STRING_LITERAL; + } + +} //StringLiteralImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/SuperCallImpl.java b/csep/src-gen/csep/coffeeScript/impl/SuperCallImpl.java new file mode 100644 index 0000000..3700425 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/SuperCallImpl.java @@ -0,0 +1,193 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.ArgList; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.SuperCall; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Super Call'. + * + *+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class SuperClassImpl extends MinimalEObjectImpl.Container implements SuperClass +{ + /** + * + * + * @generated + */ + protected SuperClassImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.SUPER_CLASS; + } + +} //SuperClassImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/SwitchImpl.java b/csep/src-gen/csep/coffeeScript/impl/SwitchImpl.java new file mode 100644 index 0000000..384bdd5 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/SwitchImpl.java @@ -0,0 +1,312 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.Block; +import csep.coffeeScript.Case; +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Expression; +import csep.coffeeScript.Switch; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Switch'. + * + *+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class ThisAloneImpl extends PrimaryExpressionImpl implements ThisAlone +{ + /** + * + * + * @generated + */ + protected ThisAloneImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.THIS_ALONE; + } + +} //ThisAloneImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/ThisPropertyImpl.java b/csep/src-gen/csep/coffeeScript/impl/ThisPropertyImpl.java new file mode 100644 index 0000000..226a064 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/ThisPropertyImpl.java @@ -0,0 +1,264 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Expression; +import csep.coffeeScript.ThisProperty; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'This Property'. + * + *+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ * The following features are implemented: + *
+ *
+ * + * @generated + */ +public class VariableImpl extends ExpressionImpl implements Variable +{ + /** + * + * + * @generated + */ + protected VariableImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return CoffeeScriptPackage.Literals.VARIABLE; + } + +} //VariableImpl diff --git a/csep/src-gen/csep/coffeeScript/impl/WhileImpl.java b/csep/src-gen/csep/coffeeScript/impl/WhileImpl.java new file mode 100644 index 0000000..97a96c2 --- /dev/null +++ b/csep/src-gen/csep/coffeeScript/impl/WhileImpl.java @@ -0,0 +1,407 @@ +/** + */ +package csep.coffeeScript.impl; + +import csep.coffeeScript.CoffeeScriptPackage; +import csep.coffeeScript.Expression; +import csep.coffeeScript.While; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'While'. + * + *+ * The following features are implemented: + *
createXXX
method for each class of the model.
+ *
+ * @see csep.coffeeScript.CoffeeScriptPackage
+ * @generated
+ */
+public class CoffeeScriptAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ *
+ *
+ * @generated
+ */
+ protected static CoffeeScriptPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ *
+ *
+ * @generated
+ */
+ public CoffeeScriptAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = CoffeeScriptPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ *
+ * This implementation returns true
if the object is either the model's package or is an instance object of the model.
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the createXXX
methods.
+ *
+ *
+ * @generated
+ */
+ protected CoffeeScriptSwitchtarget
.
+ *
+ *
+ * @param target the object to adapt.
+ * @return the adapter for the target
.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Root Root}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Root
+ * @generated
+ */
+ public Adapter createRootAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Body Body}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Body
+ * @generated
+ */
+ public Adapter createBodyAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Line Line}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Line
+ * @generated
+ */
+ public Adapter createLineAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Stmt Stmt}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Stmt
+ * @generated
+ */
+ public Adapter createStmtAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Comment Comment}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Comment
+ * @generated
+ */
+ public Adapter createCommentAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.RequireStmt Require Stmt}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.RequireStmt
+ * @generated
+ */
+ public Adapter createRequireStmtAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ReturnStmt Return Stmt}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ReturnStmt
+ * @generated
+ */
+ public Adapter createReturnStmtAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ThrowStmt Throw Stmt}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ThrowStmt
+ * @generated
+ */
+ public Adapter createThrowStmtAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.SuperClass Super Class}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.SuperClass
+ * @generated
+ */
+ public Adapter createSuperClassAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ClassDeclaration Class Declaration}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ClassDeclaration
+ * @generated
+ */
+ public Adapter createClassDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.AssignedClassDeclaration Assigned Class Declaration}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.AssignedClassDeclaration
+ * @generated
+ */
+ public Adapter createAssignedClassDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Expression Expression}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Expression
+ * @generated
+ */
+ public Adapter createExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ForValue For Value}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ForValue
+ * @generated
+ */
+ public Adapter createForValueAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ForSource For Source}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ForSource
+ * @generated
+ */
+ public Adapter createForSourceAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Range Range}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Range
+ * @generated
+ */
+ public Adapter createRangeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Application Application}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Application
+ * @generated
+ */
+ public Adapter createApplicationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.FeatureCall Feature Call}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.FeatureCall
+ * @generated
+ */
+ public Adapter createFeatureCallAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.FunctionCall Function Call}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.FunctionCall
+ * @generated
+ */
+ public Adapter createFunctionCallAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.PropertyAccess Property Access}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.PropertyAccess
+ * @generated
+ */
+ public Adapter createPropertyAccessAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ThisProperty This Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ThisProperty
+ * @generated
+ */
+ public Adapter createThisPropertyAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.NamedPropertyAccess Named Property Access}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.NamedPropertyAccess
+ * @generated
+ */
+ public Adapter createNamedPropertyAccessAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.IndexedPropertyAccess Indexed Property Access}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.IndexedPropertyAccess
+ * @generated
+ */
+ public Adapter createIndexedPropertyAccessAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Index Index}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Index
+ * @generated
+ */
+ public Adapter createIndexAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.PrimaryExpression Primary Expression}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.PrimaryExpression
+ * @generated
+ */
+ public Adapter createPrimaryExpressionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Block Block}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Block
+ * @generated
+ */
+ public Adapter createBlockAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Case Case}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Case
+ * @generated
+ */
+ public Adapter createCaseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.IfExp If Exp}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.IfExp
+ * @generated
+ */
+ public Adapter createIfExpAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.CondBlock Cond Block}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.CondBlock
+ * @generated
+ */
+ public Adapter createCondBlockAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.IdRef Id Ref}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.IdRef
+ * @generated
+ */
+ public Adapter createIdRefAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Id Id}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Id
+ * @generated
+ */
+ public Adapter createIdAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Property Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Property
+ * @generated
+ */
+ public Adapter createPropertyAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Variable Variable}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Variable
+ * @generated
+ */
+ public Adapter createVariableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.AssignableArray Assignable Array}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.AssignableArray
+ * @generated
+ */
+ public Adapter createAssignableArrayAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.AssignableArgList Assignable Arg List}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.AssignableArgList
+ * @generated
+ */
+ public Adapter createAssignableArgListAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.AssignableArg Assignable Arg}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.AssignableArg
+ * @generated
+ */
+ public Adapter createAssignableArgAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Assignable Assignable}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Assignable
+ * @generated
+ */
+ public Adapter createAssignableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Arg Arg}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Arg
+ * @generated
+ */
+ public Adapter createArgAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ArgLine Arg Line}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ArgLine
+ * @generated
+ */
+ public Adapter createArgLineAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ExplicitArgList Explicit Arg List}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ExplicitArgList
+ * @generated
+ */
+ public Adapter createExplicitArgListAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ArgList Arg List}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ArgList
+ * @generated
+ */
+ public Adapter createArgListAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Array Array}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Array
+ * @generated
+ */
+ public Adapter createArrayAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Dictionary Dictionary}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Dictionary
+ * @generated
+ */
+ public Adapter createDictionaryAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.DictItems Dict Items}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.DictItems
+ * @generated
+ */
+ public Adapter createDictItemsAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ExplicitDictItems Explicit Dict Items}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ExplicitDictItems
+ * @generated
+ */
+ public Adapter createExplicitDictItemsAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.DictLine Dict Line}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.DictLine
+ * @generated
+ */
+ public Adapter createDictLineAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.DictItem Dict Item}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.DictItem
+ * @generated
+ */
+ public Adapter createDictItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.DictKey Dict Key}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.DictKey
+ * @generated
+ */
+ public Adapter createDictKeyAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Lambda Lambda}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Lambda
+ * @generated
+ */
+ public Adapter createLambdaAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Param Param}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Param
+ * @generated
+ */
+ public Adapter createParamAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.NumberLiteral Number Literal}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.NumberLiteral
+ * @generated
+ */
+ public Adapter createNumberLiteralAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.StringLiteral String Literal}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.StringLiteral
+ * @generated
+ */
+ public Adapter createStringLiteralAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.BoolLiteral Bool Literal}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.BoolLiteral
+ * @generated
+ */
+ public Adapter createBoolLiteralAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.JSLiteral JS Literal}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.JSLiteral
+ * @generated
+ */
+ public Adapter createJSLiteralAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.RegexLiteral Regex Literal}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.RegexLiteral
+ * @generated
+ */
+ public Adapter createRegexLiteralAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Literal Literal}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Literal
+ * @generated
+ */
+ public Adapter createLiteralAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Parenthetical Parenthetical}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Parenthetical
+ * @generated
+ */
+ public Adapter createParentheticalAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.If If}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.If
+ * @generated
+ */
+ public Adapter createIfAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.For For}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.For
+ * @generated
+ */
+ public Adapter createForAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.While While}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.While
+ * @generated
+ */
+ public Adapter createWhileAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Until Until}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Until
+ * @generated
+ */
+ public Adapter createUntilAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.BinaryExp Binary Exp}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.BinaryExp
+ * @generated
+ */
+ public Adapter createBinaryExpAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.SuperCall Super Call}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.SuperCall
+ * @generated
+ */
+ public Adapter createSuperCallAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.ThisAlone This Alone}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.ThisAlone
+ * @generated
+ */
+ public Adapter createThisAloneAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Loop Loop}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Loop
+ * @generated
+ */
+ public Adapter createLoopAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.TryCatch Try Catch}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.TryCatch
+ * @generated
+ */
+ public Adapter createTryCatchAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.coffeeScript.Switch Switch}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.coffeeScript.Switch
+ * @generated
+ */
+ public Adapter createSwitchAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ *
+ * This default implementation returns null.
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //CoffeeScriptAdapterFactory
diff --git a/csep/src-gen/csep/coffeeScript/util/CoffeeScriptSwitch.java b/csep/src-gen/csep/coffeeScript/util/CoffeeScriptSwitch.java
new file mode 100644
index 0000000..c61a9f9
--- /dev/null
+++ b/csep/src-gen/csep/coffeeScript/util/CoffeeScriptSwitch.java
@@ -0,0 +1,1723 @@
+/**
+ */
+package csep.coffeeScript.util;
+
+import csep.coffeeScript.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ *
+ * The Switch for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the caseXXX
method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ *
+ * @see csep.coffeeScript.CoffeeScriptPackage
+ * @generated
+ */
+public class CoffeeScriptSwitchcaseXXX
for each class of the model until one returns a non null result; it yields that result.
+ *
+ *
+ * @return the first non-null result returned by a caseXXX
call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case CoffeeScriptPackage.ROOT:
+ {
+ Root root = (Root)theEObject;
+ T result = caseRoot(root);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.BODY:
+ {
+ Body body = (Body)theEObject;
+ T result = caseBody(body);
+ if (result == null) result = caseBlock(body);
+ if (result == null) result = caseRoot(body);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.LINE:
+ {
+ Line line = (Line)theEObject;
+ T result = caseLine(line);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.STMT:
+ {
+ Stmt stmt = (Stmt)theEObject;
+ T result = caseStmt(stmt);
+ if (result == null) result = caseLine(stmt);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.COMMENT:
+ {
+ Comment comment = (Comment)theEObject;
+ T result = caseComment(comment);
+ if (result == null) result = caseStmt(comment);
+ if (result == null) result = caseLine(comment);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.REQUIRE_STMT:
+ {
+ RequireStmt requireStmt = (RequireStmt)theEObject;
+ T result = caseRequireStmt(requireStmt);
+ if (result == null) result = caseStmt(requireStmt);
+ if (result == null) result = caseLine(requireStmt);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.RETURN_STMT:
+ {
+ ReturnStmt returnStmt = (ReturnStmt)theEObject;
+ T result = caseReturnStmt(returnStmt);
+ if (result == null) result = caseStmt(returnStmt);
+ if (result == null) result = caseLine(returnStmt);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.THROW_STMT:
+ {
+ ThrowStmt throwStmt = (ThrowStmt)theEObject;
+ T result = caseThrowStmt(throwStmt);
+ if (result == null) result = caseStmt(throwStmt);
+ if (result == null) result = caseLine(throwStmt);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.SUPER_CLASS:
+ {
+ SuperClass superClass = (SuperClass)theEObject;
+ T result = caseSuperClass(superClass);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.CLASS_DECLARATION:
+ {
+ ClassDeclaration classDeclaration = (ClassDeclaration)theEObject;
+ T result = caseClassDeclaration(classDeclaration);
+ if (result == null) result = caseStmt(classDeclaration);
+ if (result == null) result = caseAssignedClassDeclaration(classDeclaration);
+ if (result == null) result = caseExpression(classDeclaration);
+ if (result == null) result = caseLine(classDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ASSIGNED_CLASS_DECLARATION:
+ {
+ AssignedClassDeclaration assignedClassDeclaration = (AssignedClassDeclaration)theEObject;
+ T result = caseAssignedClassDeclaration(assignedClassDeclaration);
+ if (result == null) result = caseExpression(assignedClassDeclaration);
+ if (result == null) result = caseLine(assignedClassDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.EXPRESSION:
+ {
+ Expression expression = (Expression)theEObject;
+ T result = caseExpression(expression);
+ if (result == null) result = caseLine(expression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.FOR_VALUE:
+ {
+ ForValue forValue = (ForValue)theEObject;
+ T result = caseForValue(forValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.FOR_SOURCE:
+ {
+ ForSource forSource = (ForSource)theEObject;
+ T result = caseForSource(forSource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.RANGE:
+ {
+ Range range = (Range)theEObject;
+ T result = caseRange(range);
+ if (result == null) result = casePrimaryExpression(range);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.APPLICATION:
+ {
+ Application application = (Application)theEObject;
+ T result = caseApplication(application);
+ if (result == null) result = caseExpression(application);
+ if (result == null) result = caseLine(application);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.FEATURE_CALL:
+ {
+ FeatureCall featureCall = (FeatureCall)theEObject;
+ T result = caseFeatureCall(featureCall);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.FUNCTION_CALL:
+ {
+ FunctionCall functionCall = (FunctionCall)theEObject;
+ T result = caseFunctionCall(functionCall);
+ if (result == null) result = caseFeatureCall(functionCall);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.PROPERTY_ACCESS:
+ {
+ PropertyAccess propertyAccess = (PropertyAccess)theEObject;
+ T result = casePropertyAccess(propertyAccess);
+ if (result == null) result = caseFeatureCall(propertyAccess);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.THIS_PROPERTY:
+ {
+ ThisProperty thisProperty = (ThisProperty)theEObject;
+ T result = caseThisProperty(thisProperty);
+ if (result == null) result = casePrimaryExpression(thisProperty);
+ if (result == null) result = caseParam(thisProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.NAMED_PROPERTY_ACCESS:
+ {
+ NamedPropertyAccess namedPropertyAccess = (NamedPropertyAccess)theEObject;
+ T result = caseNamedPropertyAccess(namedPropertyAccess);
+ if (result == null) result = casePropertyAccess(namedPropertyAccess);
+ if (result == null) result = caseFeatureCall(namedPropertyAccess);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.INDEXED_PROPERTY_ACCESS:
+ {
+ IndexedPropertyAccess indexedPropertyAccess = (IndexedPropertyAccess)theEObject;
+ T result = caseIndexedPropertyAccess(indexedPropertyAccess);
+ if (result == null) result = casePropertyAccess(indexedPropertyAccess);
+ if (result == null) result = caseFeatureCall(indexedPropertyAccess);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.INDEX:
+ {
+ Index index = (Index)theEObject;
+ T result = caseIndex(index);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.PRIMARY_EXPRESSION:
+ {
+ PrimaryExpression primaryExpression = (PrimaryExpression)theEObject;
+ T result = casePrimaryExpression(primaryExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.BLOCK:
+ {
+ Block block = (Block)theEObject;
+ T result = caseBlock(block);
+ if (result == null) result = caseRoot(block);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.CASE:
+ {
+ Case case_ = (Case)theEObject;
+ T result = caseCase(case_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.IF_EXP:
+ {
+ IfExp ifExp = (IfExp)theEObject;
+ T result = caseIfExp(ifExp);
+ if (result == null) result = casePrimaryExpression(ifExp);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.COND_BLOCK:
+ {
+ CondBlock condBlock = (CondBlock)theEObject;
+ T result = caseCondBlock(condBlock);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ID_REF:
+ {
+ IdRef idRef = (IdRef)theEObject;
+ T result = caseIdRef(idRef);
+ if (result == null) result = casePrimaryExpression(idRef);
+ if (result == null) result = caseProperty(idRef);
+ if (result == null) result = caseSuperClass(idRef);
+ if (result == null) result = caseVariable(idRef);
+ if (result == null) result = caseExpression(idRef);
+ if (result == null) result = caseAssignable(idRef);
+ if (result == null) result = caseLine(idRef);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ID:
+ {
+ Id id = (Id)theEObject;
+ T result = caseId(id);
+ if (result == null) result = caseForValue(id);
+ if (result == null) result = caseThisProperty(id);
+ if (result == null) result = caseVariable(id);
+ if (result == null) result = caseDictKey(id);
+ if (result == null) result = casePrimaryExpression(id);
+ if (result == null) result = caseParam(id);
+ if (result == null) result = caseExpression(id);
+ if (result == null) result = caseAssignable(id);
+ if (result == null) result = caseLine(id);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.PROPERTY:
+ {
+ Property property = (Property)theEObject;
+ T result = caseProperty(property);
+ if (result == null) result = caseSuperClass(property);
+ if (result == null) result = caseVariable(property);
+ if (result == null) result = caseExpression(property);
+ if (result == null) result = caseAssignable(property);
+ if (result == null) result = caseLine(property);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.VARIABLE:
+ {
+ Variable variable = (Variable)theEObject;
+ T result = caseVariable(variable);
+ if (result == null) result = caseExpression(variable);
+ if (result == null) result = caseAssignable(variable);
+ if (result == null) result = caseLine(variable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ASSIGNABLE_ARRAY:
+ {
+ AssignableArray assignableArray = (AssignableArray)theEObject;
+ T result = caseAssignableArray(assignableArray);
+ if (result == null) result = caseAssignable(assignableArray);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ASSIGNABLE_ARG_LIST:
+ {
+ AssignableArgList assignableArgList = (AssignableArgList)theEObject;
+ T result = caseAssignableArgList(assignableArgList);
+ if (result == null) result = caseAssignableArray(assignableArgList);
+ if (result == null) result = caseAssignable(assignableArgList);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ASSIGNABLE_ARG:
+ {
+ AssignableArg assignableArg = (AssignableArg)theEObject;
+ T result = caseAssignableArg(assignableArg);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ASSIGNABLE:
+ {
+ Assignable assignable = (Assignable)theEObject;
+ T result = caseAssignable(assignable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ARG:
+ {
+ Arg arg = (Arg)theEObject;
+ T result = caseArg(arg);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ARG_LINE:
+ {
+ ArgLine argLine = (ArgLine)theEObject;
+ T result = caseArgLine(argLine);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.EXPLICIT_ARG_LIST:
+ {
+ ExplicitArgList explicitArgList = (ExplicitArgList)theEObject;
+ T result = caseExplicitArgList(explicitArgList);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ARG_LIST:
+ {
+ ArgList argList = (ArgList)theEObject;
+ T result = caseArgList(argList);
+ if (result == null) result = caseArray(argList);
+ if (result == null) result = casePrimaryExpression(argList);
+ if (result == null) result = caseParam(argList);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.ARRAY:
+ {
+ Array array = (Array)theEObject;
+ T result = caseArray(array);
+ if (result == null) result = casePrimaryExpression(array);
+ if (result == null) result = caseParam(array);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.DICTIONARY:
+ {
+ Dictionary dictionary = (Dictionary)theEObject;
+ T result = caseDictionary(dictionary);
+ if (result == null) result = casePrimaryExpression(dictionary);
+ if (result == null) result = caseAssignable(dictionary);
+ if (result == null) result = caseParam(dictionary);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.DICT_ITEMS:
+ {
+ DictItems dictItems = (DictItems)theEObject;
+ T result = caseDictItems(dictItems);
+ if (result == null) result = caseDictionary(dictItems);
+ if (result == null) result = casePrimaryExpression(dictItems);
+ if (result == null) result = caseAssignable(dictItems);
+ if (result == null) result = caseParam(dictItems);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.EXPLICIT_DICT_ITEMS:
+ {
+ ExplicitDictItems explicitDictItems = (ExplicitDictItems)theEObject;
+ T result = caseExplicitDictItems(explicitDictItems);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.DICT_LINE:
+ {
+ DictLine dictLine = (DictLine)theEObject;
+ T result = caseDictLine(dictLine);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.DICT_ITEM:
+ {
+ DictItem dictItem = (DictItem)theEObject;
+ T result = caseDictItem(dictItem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.DICT_KEY:
+ {
+ DictKey dictKey = (DictKey)theEObject;
+ T result = caseDictKey(dictKey);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.LAMBDA:
+ {
+ Lambda lambda = (Lambda)theEObject;
+ T result = caseLambda(lambda);
+ if (result == null) result = casePrimaryExpression(lambda);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.PARAM:
+ {
+ Param param = (Param)theEObject;
+ T result = caseParam(param);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.NUMBER_LITERAL:
+ {
+ NumberLiteral numberLiteral = (NumberLiteral)theEObject;
+ T result = caseNumberLiteral(numberLiteral);
+ if (result == null) result = caseLiteral(numberLiteral);
+ if (result == null) result = casePrimaryExpression(numberLiteral);
+ if (result == null) result = caseDictKey(numberLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.STRING_LITERAL:
+ {
+ StringLiteral stringLiteral = (StringLiteral)theEObject;
+ T result = caseStringLiteral(stringLiteral);
+ if (result == null) result = caseLiteral(stringLiteral);
+ if (result == null) result = casePrimaryExpression(stringLiteral);
+ if (result == null) result = caseDictKey(stringLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.BOOL_LITERAL:
+ {
+ BoolLiteral boolLiteral = (BoolLiteral)theEObject;
+ T result = caseBoolLiteral(boolLiteral);
+ if (result == null) result = caseLiteral(boolLiteral);
+ if (result == null) result = casePrimaryExpression(boolLiteral);
+ if (result == null) result = caseDictKey(boolLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.JS_LITERAL:
+ {
+ JSLiteral jsLiteral = (JSLiteral)theEObject;
+ T result = caseJSLiteral(jsLiteral);
+ if (result == null) result = caseLiteral(jsLiteral);
+ if (result == null) result = casePrimaryExpression(jsLiteral);
+ if (result == null) result = caseDictKey(jsLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.REGEX_LITERAL:
+ {
+ RegexLiteral regexLiteral = (RegexLiteral)theEObject;
+ T result = caseRegexLiteral(regexLiteral);
+ if (result == null) result = caseLiteral(regexLiteral);
+ if (result == null) result = casePrimaryExpression(regexLiteral);
+ if (result == null) result = caseDictKey(regexLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.LITERAL:
+ {
+ Literal literal = (Literal)theEObject;
+ T result = caseLiteral(literal);
+ if (result == null) result = casePrimaryExpression(literal);
+ if (result == null) result = caseDictKey(literal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.PARENTHETICAL:
+ {
+ Parenthetical parenthetical = (Parenthetical)theEObject;
+ T result = caseParenthetical(parenthetical);
+ if (result == null) result = casePrimaryExpression(parenthetical);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.IF:
+ {
+ If if_ = (If)theEObject;
+ T result = caseIf(if_);
+ if (result == null) result = caseExpression(if_);
+ if (result == null) result = caseLine(if_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.FOR:
+ {
+ For for_ = (For)theEObject;
+ T result = caseFor(for_);
+ if (result == null) result = caseExpression(for_);
+ if (result == null) result = casePrimaryExpression(for_);
+ if (result == null) result = caseLine(for_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.WHILE:
+ {
+ While while_ = (While)theEObject;
+ T result = caseWhile(while_);
+ if (result == null) result = caseExpression(while_);
+ if (result == null) result = casePrimaryExpression(while_);
+ if (result == null) result = caseLine(while_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.UNTIL:
+ {
+ Until until = (Until)theEObject;
+ T result = caseUntil(until);
+ if (result == null) result = caseExpression(until);
+ if (result == null) result = casePrimaryExpression(until);
+ if (result == null) result = caseLine(until);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.BINARY_EXP:
+ {
+ BinaryExp binaryExp = (BinaryExp)theEObject;
+ T result = caseBinaryExp(binaryExp);
+ if (result == null) result = caseExpression(binaryExp);
+ if (result == null) result = caseLine(binaryExp);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.SUPER_CALL:
+ {
+ SuperCall superCall = (SuperCall)theEObject;
+ T result = caseSuperCall(superCall);
+ if (result == null) result = caseApplication(superCall);
+ if (result == null) result = caseExpression(superCall);
+ if (result == null) result = caseLine(superCall);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.THIS_ALONE:
+ {
+ ThisAlone thisAlone = (ThisAlone)theEObject;
+ T result = caseThisAlone(thisAlone);
+ if (result == null) result = casePrimaryExpression(thisAlone);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.LOOP:
+ {
+ Loop loop = (Loop)theEObject;
+ T result = caseLoop(loop);
+ if (result == null) result = casePrimaryExpression(loop);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.TRY_CATCH:
+ {
+ TryCatch tryCatch = (TryCatch)theEObject;
+ T result = caseTryCatch(tryCatch);
+ if (result == null) result = casePrimaryExpression(tryCatch);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CoffeeScriptPackage.SWITCH:
+ {
+ csep.coffeeScript.Switch switch_ = (csep.coffeeScript.Switch)theEObject;
+ T result = caseSwitch(switch_);
+ if (result == null) result = casePrimaryExpression(switch_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Root'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Root'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRoot(Root object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Body'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Body'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBody(Body object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Line'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Line'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLine(Line object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Stmt'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Stmt'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStmt(Stmt object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Comment'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Comment'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComment(Comment object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Require Stmt'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Require Stmt'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRequireStmt(RequireStmt object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Return Stmt'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Return Stmt'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReturnStmt(ReturnStmt object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Throw Stmt'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Throw Stmt'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThrowStmt(ThrowStmt object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Super Class'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Super Class'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSuperClass(SuperClass object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Class Declaration'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Class Declaration'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassDeclaration(ClassDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Assigned Class Declaration'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Assigned Class Declaration'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssignedClassDeclaration(AssignedClassDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Expression'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Expression'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExpression(Expression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'For Value'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'For Value'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForValue(ForValue object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'For Source'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'For Source'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForSource(ForSource object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Range'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Range'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRange(Range object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Application'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Application'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseApplication(Application object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Feature Call'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Feature Call'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeatureCall(FeatureCall object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Function Call'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Function Call'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFunctionCall(FunctionCall object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Property Access'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Property Access'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyAccess(PropertyAccess object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'This Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'This Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThisProperty(ThisProperty object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Named Property Access'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Named Property Access'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedPropertyAccess(NamedPropertyAccess object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Indexed Property Access'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Indexed Property Access'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIndexedPropertyAccess(IndexedPropertyAccess object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Index'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Index'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIndex(Index object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Primary Expression'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Primary Expression'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePrimaryExpression(PrimaryExpression object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Block'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Block'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBlock(Block object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Case'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Case'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCase(Case object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'If Exp'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'If Exp'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIfExp(IfExp object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Cond Block'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Cond Block'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCondBlock(CondBlock object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Id Ref'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Id Ref'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIdRef(IdRef object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Id'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Id'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseId(Id object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProperty(Property object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Variable'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Variable'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariable(Variable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Assignable Array'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Assignable Array'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssignableArray(AssignableArray object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Assignable Arg List'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Assignable Arg List'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssignableArgList(AssignableArgList object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Assignable Arg'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Assignable Arg'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssignableArg(AssignableArg object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Assignable'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Assignable'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssignable(Assignable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Arg'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Arg'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArg(Arg object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Arg Line'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Arg Line'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArgLine(ArgLine object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Explicit Arg List'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Explicit Arg List'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExplicitArgList(ExplicitArgList object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Arg List'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Arg List'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArgList(ArgList object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Array'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Array'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArray(Array object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Dictionary'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Dictionary'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDictionary(Dictionary object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Dict Items'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Dict Items'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDictItems(DictItems object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Explicit Dict Items'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Explicit Dict Items'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExplicitDictItems(ExplicitDictItems object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Dict Line'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Dict Line'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDictLine(DictLine object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Dict Item'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Dict Item'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDictItem(DictItem object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Dict Key'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Dict Key'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDictKey(DictKey object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Lambda'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Lambda'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLambda(Lambda object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Param'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Param'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParam(Param object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Number Literal'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Number Literal'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNumberLiteral(NumberLiteral object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'String Literal'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'String Literal'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStringLiteral(StringLiteral object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Bool Literal'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Bool Literal'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBoolLiteral(BoolLiteral object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'JS Literal'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'JS Literal'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJSLiteral(JSLiteral object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Regex Literal'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Regex Literal'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRegexLiteral(RegexLiteral object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Literal'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Literal'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLiteral(Literal object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Parenthetical'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Parenthetical'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParenthetical(Parenthetical object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'If'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'If'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIf(If object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'For'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'For'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFor(For object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'While'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'While'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWhile(While object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Until'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Until'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUntil(Until object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Binary Exp'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Binary Exp'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBinaryExp(BinaryExp object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Super Call'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Super Call'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSuperCall(SuperCall object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'This Alone'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'This Alone'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThisAlone(ThisAlone object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Loop'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Loop'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoop(Loop object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Try Catch'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Try Catch'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTryCatch(TryCatch object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Switch'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Switch'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSwitch(csep.coffeeScript.Switch object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'EObject'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'EObject'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //CoffeeScriptSwitch
diff --git a/csep/src-gen/csep/parseTreeConstruction/CoffeeScriptParsetreeConstructor.java b/csep/src-gen/csep/parseTreeConstruction/CoffeeScriptParsetreeConstructor.java
new file mode 100644
index 0000000..9209634
--- /dev/null
+++ b/csep/src-gen/csep/parseTreeConstruction/CoffeeScriptParsetreeConstructor.java
@@ -0,0 +1,17411 @@
+/*
+* generated by Xtext
+*/
+package csep.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+
+import csep.services.CoffeeScriptGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class CoffeeScriptParsetreeConstructor extends org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor {
+
+ @Inject
+ private CoffeeScriptGrammarAccess grammarAccess;
+
+ @Override
+ protected AbstractToken getRootToken(IEObjectConsumer inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IEObjectConsumer inst) {
+ super(inst);
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_Alternatives(this, this, 0, inst);
+ case 1: return new Body_Group(this, this, 1, inst);
+ case 2: return new Line_Alternatives(this, this, 2, inst);
+ case 3: return new Stmt_Alternatives(this, this, 3, inst);
+ case 4: return new Comment_CommentAssignment(this, this, 4, inst);
+ case 5: return new RequireStmt_Group(this, this, 5, inst);
+ case 6: return new ReturnStmt_Group(this, this, 6, inst);
+ case 7: return new ThrowStmt_Group(this, this, 7, inst);
+ case 8: return new SuperClass_Alternatives(this, this, 8, inst);
+ case 9: return new ClassDeclaration_Group(this, this, 9, inst);
+ case 10: return new AssignedClassDeclaration_Group(this, this, 10, inst);
+ case 11: return new Expression_PostfixParserRuleCall(this, this, 11, inst);
+ case 12: return new Postfix_Group(this, this, 12, inst);
+ case 13: return new ForBody_Group(this, this, 13, inst);
+ case 14: return new ForValue_IdParserRuleCall(this, this, 14, inst);
+ case 15: return new ForSource_Group(this, this, 15, inst);
+ case 16: return new Range_Group(this, this, 16, inst);
+ case 17: return new Assignment_Alternatives(this, this, 17, inst);
+ case 18: return new Assigned_Alternatives(this, this, 18, inst);
+ case 19: return new LogicOp_Group(this, this, 19, inst);
+ case 20: return new CompareOp_Group(this, this, 20, inst);
+ case 21: return new RelationOp_Group(this, this, 21, inst);
+ case 22: return new ShiftOp_Group(this, this, 22, inst);
+ case 23: return new AdditiveOp_Group(this, this, 23, inst);
+ case 24: return new MathOp_Group(this, this, 24, inst);
+ case 25: return new UnaryOp_Alternatives(this, this, 25, inst);
+ case 26: return new Application_Alternatives(this, this, 26, inst);
+ case 27: return new FeatureCall_Alternatives(this, this, 27, inst);
+ case 28: return new FunctionCall_Group(this, this, 28, inst);
+ case 29: return new PropertyAccess_Alternatives(this, this, 29, inst);
+ case 30: return new ThisProperty_Group(this, this, 30, inst);
+ case 31: return new NamedPropertyAccess_Alternatives(this, this, 31, inst);
+ case 32: return new IndexedPropertyAccess_Group(this, this, 32, inst);
+ case 33: return new Index_Alternatives(this, this, 33, inst);
+ case 34: return new PrimaryExpression_Alternatives(this, this, 34, inst);
+ case 35: return new Block_Group(this, this, 35, inst);
+ case 36: return new Case_Group(this, this, 36, inst);
+ case 37: return new IfExp_Group(this, this, 37, inst);
+ case 38: return new CondBlock_Group(this, this, 38, inst);
+ case 39: return new IdRef_ValAssignment(this, this, 39, inst);
+ case 40: return new Id_NameAssignment(this, this, 40, inst);
+ case 41: return new Property_Alternatives(this, this, 41, inst);
+ case 42: return new Variable_Alternatives(this, this, 42, inst);
+ case 43: return new AssignableArray_Group(this, this, 43, inst);
+ case 44: return new AssignableArgList_Group(this, this, 44, inst);
+ case 45: return new AssignableArg_Group(this, this, 45, inst);
+ case 46: return new Assignable_Alternatives(this, this, 46, inst);
+ case 47: return new Arg_Group(this, this, 47, inst);
+ case 48: return new ArgLine_Group(this, this, 48, inst);
+ case 49: return new ExplicitArgList_Group(this, this, 49, inst);
+ case 50: return new ArgList_Group(this, this, 50, inst);
+ case 51: return new Array_Group(this, this, 51, inst);
+ case 52: return new Dictionary_Group(this, this, 52, inst);
+ case 53: return new DictItems_Group(this, this, 53, inst);
+ case 54: return new ExplicitDictItems_Group(this, this, 54, inst);
+ case 55: return new DictLine_Group(this, this, 55, inst);
+ case 56: return new DictItem_Group(this, this, 56, inst);
+ case 57: return new DictKey_Alternatives(this, this, 57, inst);
+ case 58: return new Lambda_Group(this, this, 58, inst);
+ case 59: return new Param_Group(this, this, 59, inst);
+ case 60: return new NumberLiteral_Group(this, this, 60, inst);
+ case 61: return new StringLiteral_Group(this, this, 61, inst);
+ case 62: return new BoolLiteral_Group(this, this, 62, inst);
+ case 63: return new JSLiteral_Group(this, this, 63, inst);
+ case 64: return new RegexLiteral_Group(this, this, 64, inst);
+ case 65: return new Literal_Alternatives(this, this, 65, inst);
+ case 66: return new Parenthetical_Alternatives(this, this, 66, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule Root ****************
+ *
+ * Root:
+ * (Body | Block TERMINATOR)?;
+ *
+ **/
+
+// (Body | Block TERMINATOR)?
+protected class Root_Alternatives extends AlternativesToken {
+
+ public Root_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getRootAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_BodyParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Root_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockAccess().getBlockAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Body
+protected class Root_BodyParserRuleCall_0 extends RuleCallToken {
+
+ public Root_BodyParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRootAccess().getBodyParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Body_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Block TERMINATOR
+protected class Root_Group_1 extends GroupToken {
+
+ public Root_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRootAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_TERMINATORTerminalRuleCall_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// Block
+protected class Root_BlockParserRuleCall_1_0 extends RuleCallToken {
+
+ public Root_BlockParserRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRootAccess().getBlockParserRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Block_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// TERMINATOR
+protected class Root_TERMINATORTerminalRuleCall_1_1 extends UnassignedTextToken {
+
+ public Root_TERMINATORTerminalRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRootAccess().getTERMINATORTerminalRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_BlockParserRuleCall_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Root ****************/
+
+
+/************ begin Rule Body ****************
+ *
+ * Body:
+ * lines+=Line (TERMINATOR lines+=Line?)*;
+ *
+ **/
+
+// lines+=Line (TERMINATOR lines+=Line?)*
+protected class Body_Group extends GroupToken {
+
+ public Body_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBodyAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Body_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// lines+=Line
+protected class Body_LinesAssignment_0 extends AssignmentToken {
+
+ public Body_LinesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBodyAccess().getLinesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Line_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getBodyAccess().getLinesLineParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (TERMINATOR lines+=Line?)*
+protected class Body_Group_1 extends GroupToken {
+
+ public Body_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBodyAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_LinesAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class Body_TERMINATORTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Body_TERMINATORTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBodyAccess().getTERMINATORTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Body_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=Line?
+protected class Body_LinesAssignment_1_1 extends AssignmentToken {
+
+ public Body_LinesAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBodyAccess().getLinesAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Line_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getBodyAccess().getLinesLineParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Body_TERMINATORTerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule Body ****************/
+
+
+/************ begin Rule Line ****************
+ *
+ * Line:
+ * Stmt | Expression;
+ *
+ **/
+
+// Stmt | Expression
+protected class Line_Alternatives extends AlternativesToken {
+
+ public Line_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLineAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Line_StmtParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Line_ExpressionParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Stmt
+protected class Line_StmtParserRuleCall_0 extends RuleCallToken {
+
+ public Line_StmtParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLineAccess().getStmtParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Stmt_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Stmt_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Expression
+protected class Line_ExpressionParserRuleCall_1 extends RuleCallToken {
+
+ public Line_ExpressionParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLineAccess().getExpressionParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Line ****************/
+
+
+/************ begin Rule Stmt ****************
+ *
+ * Stmt:
+ * ReturnStmt | ThrowStmt | RequireStmt | Comment | ClassDeclaration | statement=STATEMENT;
+ *
+ **/
+
+// ReturnStmt | ThrowStmt | RequireStmt | Comment | ClassDeclaration | statement=STATEMENT
+protected class Stmt_Alternatives extends AlternativesToken {
+
+ public Stmt_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getStmtAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Stmt_ReturnStmtParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Stmt_ThrowStmtParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Stmt_RequireStmtParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Stmt_CommentParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new Stmt_ClassDeclarationParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new Stmt_StatementAssignment_5(lastRuleCallOrigin, this, 5, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// ReturnStmt
+protected class Stmt_ReturnStmtParserRuleCall_0 extends RuleCallToken {
+
+ public Stmt_ReturnStmtParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getReturnStmtParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ReturnStmt_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThrowStmt
+protected class Stmt_ThrowStmtParserRuleCall_1 extends RuleCallToken {
+
+ public Stmt_ThrowStmtParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getThrowStmtParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThrowStmt_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThrowStmt_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// RequireStmt
+protected class Stmt_RequireStmtParserRuleCall_2 extends RuleCallToken {
+
+ public Stmt_RequireStmtParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getRequireStmtParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(RequireStmt_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Comment
+protected class Stmt_CommentParserRuleCall_3 extends RuleCallToken {
+
+ public Stmt_CommentParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getCommentParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Comment_CommentAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Comment_CommentAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ClassDeclaration
+protected class Stmt_ClassDeclarationParserRuleCall_4 extends RuleCallToken {
+
+ public Stmt_ClassDeclarationParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getClassDeclarationParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ClassDeclaration_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// statement=STATEMENT
+protected class Stmt_StatementAssignment_5 extends AssignmentToken {
+
+ public Stmt_StatementAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStmtAccess().getStatementAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("statement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statement");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStmtAccess().getStatementSTATEMENTTerminalRuleCall_5_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStmtAccess().getStatementSTATEMENTTerminalRuleCall_5_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule Stmt ****************/
+
+
+/************ begin Rule Comment ****************
+ *
+ * Comment:
+ * comment=HERECOMMENT;
+ *
+ **/
+
+// comment=HERECOMMENT
+protected class Comment_CommentAssignment extends AssignmentToken {
+
+ public Comment_CommentAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCommentAccess().getCommentAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("comment",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("comment");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCommentAccess().getCommentHERECOMMENTTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCommentAccess().getCommentHERECOMMENTTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule Comment ****************/
+
+
+/************ begin Rule RequireStmt ****************
+ *
+ * / **
+ * * Treat it a special way, because it takes care of import
+ * * / RequireStmt:
+ * => (importedNamespace=Id EQUAL "require") CALL_START uri=STRING CALL_END;
+ *
+ **/
+
+// => (importedNamespace=Id EQUAL "require") CALL_START uri=STRING CALL_END
+protected class RequireStmt_Group extends GroupToken {
+
+ public RequireStmt_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_CALL_ENDTerminalRuleCall_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (importedNamespace=Id EQUAL "require")
+protected class RequireStmt_Group_0 extends GroupToken {
+
+ public RequireStmt_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_Group_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// importedNamespace=Id EQUAL "require"
+protected class RequireStmt_Group_0_0 extends GroupToken {
+
+ public RequireStmt_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_RequireKeyword_0_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// importedNamespace=Id
+protected class RequireStmt_ImportedNamespaceAssignment_0_0_0 extends AssignmentToken {
+
+ public RequireStmt_ImportedNamespaceAssignment_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getImportedNamespaceAssignment_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("importedNamespace",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("importedNamespace");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRequireStmtAccess().getImportedNamespaceIdParserRuleCall_0_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// EQUAL
+protected class RequireStmt_EQUALTerminalRuleCall_0_0_1 extends UnassignedTextToken {
+
+ public RequireStmt_EQUALTerminalRuleCall_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getEQUALTerminalRuleCall_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_ImportedNamespaceAssignment_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "require"
+protected class RequireStmt_RequireKeyword_0_0_2 extends KeywordToken {
+
+ public RequireStmt_RequireKeyword_0_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getRequireKeyword_0_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_EQUALTerminalRuleCall_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// CALL_START
+protected class RequireStmt_CALL_STARTTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public RequireStmt_CALL_STARTTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getCALL_STARTTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_Group_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// uri=STRING
+protected class RequireStmt_UriAssignment_2 extends AssignmentToken {
+
+ public RequireStmt_UriAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getUriAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_CALL_STARTTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("uri",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("uri");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRequireStmtAccess().getUriSTRINGTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getRequireStmtAccess().getUriSTRINGTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// CALL_END
+protected class RequireStmt_CALL_ENDTerminalRuleCall_3 extends UnassignedTextToken {
+
+ public RequireStmt_CALL_ENDTerminalRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getCALL_ENDTerminalRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_UriAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule RequireStmt ****************/
+
+
+/************ begin Rule ReturnStmt ****************
+ *
+ * ReturnStmt:
+ * {ReturnStmt} RETURN expression=Expression? (POST_IF condition=Expression)?;
+ *
+ **/
+
+// {ReturnStmt} RETURN expression=Expression? (POST_IF condition=Expression)?
+protected class ReturnStmt_Group extends GroupToken {
+
+ public ReturnStmt_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ReturnStmt_ExpressionAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new ReturnStmt_RETURNTerminalRuleCall_1(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ReturnStmt}
+protected class ReturnStmt_ReturnStmtAction_0 extends ActionToken {
+
+ public ReturnStmt_ReturnStmtAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getReturnStmtAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// RETURN
+protected class ReturnStmt_RETURNTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public ReturnStmt_RETURNTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getRETURNTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_ReturnStmtAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expression=Expression?
+protected class ReturnStmt_ExpressionAssignment_2 extends AssignmentToken {
+
+ public ReturnStmt_ExpressionAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getExpressionAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getReturnStmtAccess().getExpressionExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ReturnStmt_RETURNTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (POST_IF condition=Expression)?
+protected class ReturnStmt_Group_3 extends GroupToken {
+
+ public ReturnStmt_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_ConditionAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// POST_IF
+protected class ReturnStmt_POST_IFTerminalRuleCall_3_0 extends UnassignedTextToken {
+
+ public ReturnStmt_POST_IFTerminalRuleCall_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getPOST_IFTerminalRuleCall_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_ExpressionAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ReturnStmt_RETURNTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// condition=Expression
+protected class ReturnStmt_ConditionAssignment_3_1 extends AssignmentToken {
+
+ public ReturnStmt_ConditionAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getConditionAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getReturnStmtAccess().getConditionExpressionParserRuleCall_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ReturnStmt_POST_IFTerminalRuleCall_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ReturnStmt ****************/
+
+
+/************ begin Rule ThrowStmt ****************
+ *
+ * ThrowStmt:
+ * THROW exp=Expression;
+ *
+ **/
+
+// THROW exp=Expression
+protected class ThrowStmt_Group extends GroupToken {
+
+ public ThrowStmt_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getThrowStmtAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThrowStmt_ExpAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// THROW
+protected class ThrowStmt_THROWTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public ThrowStmt_THROWTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getThrowStmtAccess().getTHROWTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// exp=Expression
+protected class ThrowStmt_ExpAssignment_1 extends AssignmentToken {
+
+ public ThrowStmt_ExpAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getThrowStmtAccess().getExpAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getThrowStmtAccess().getExpExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ThrowStmt_THROWTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ThrowStmt ****************/
+
+
+/************ begin Rule SuperClass ****************
+ *
+ * / **
+ * * Coffeescript is permissive, it can be any expression, but we want to be able to check it as crossref
+ * * / SuperClass:
+ * IdRef | Property;
+ *
+ **/
+
+// IdRef | Property
+protected class SuperClass_Alternatives extends AlternativesToken {
+
+ public SuperClass_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSuperClassAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_IdRefParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SuperClass_PropertyParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// IdRef
+protected class SuperClass_IdRefParserRuleCall_0 extends RuleCallToken {
+
+ public SuperClass_IdRefParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuperClassAccess().getIdRefParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Property
+protected class SuperClass_PropertyParserRuleCall_1 extends RuleCallToken {
+
+ public SuperClass_PropertyParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuperClassAccess().getPropertyParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Property_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule SuperClass ****************/
+
+
+/************ begin Rule ClassDeclaration ****************
+ *
+ * ClassDeclaration:
+ * {ClassDeclaration} CLASS (body=Block | EXTENDS extend=SuperClass body=Block? | name=(Id | Property) (EXTENDS
+ * extend=SuperClass)? body=Block)?;
+ *
+ **/
+
+// {ClassDeclaration} CLASS (body=Block | EXTENDS extend=SuperClass body=Block? | name=(Id | Property) (EXTENDS
+// extend=SuperClass)? body=Block)?
+protected class ClassDeclaration_Group extends GroupToken {
+
+ public ClassDeclaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_Alternatives_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ClassDeclaration}
+protected class ClassDeclaration_ClassDeclarationAction_0 extends ActionToken {
+
+ public ClassDeclaration_ClassDeclarationAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// CLASS
+protected class ClassDeclaration_CLASSTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public ClassDeclaration_CLASSTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getCLASSTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_ClassDeclarationAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (body=Block | EXTENDS extend=SuperClass body=Block? | name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block)?
+protected class ClassDeclaration_Alternatives_2 extends AlternativesToken {
+
+ public ClassDeclaration_Alternatives_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getAlternatives_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_BodyAssignment_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassDeclaration_Group_2_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new ClassDeclaration_Group_2_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class ClassDeclaration_BodyAssignment_2_0 extends AssignmentToken {
+
+ public ClassDeclaration_BodyAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getBodyAssignment_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// EXTENDS extend=SuperClass body=Block?
+protected class ClassDeclaration_Group_2_1 extends GroupToken {
+
+ public ClassDeclaration_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_BodyAssignment_2_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassDeclaration_ExtendAssignment_2_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class ClassDeclaration_EXTENDSTerminalRuleCall_2_1_0 extends UnassignedTextToken {
+
+ public ClassDeclaration_EXTENDSTerminalRuleCall_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class ClassDeclaration_ExtendAssignment_2_1_1 extends AssignmentToken {
+
+ public ClassDeclaration_ExtendAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getExtendAssignment_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_EXTENDSTerminalRuleCall_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// body=Block?
+protected class ClassDeclaration_BodyAssignment_2_1_2 extends AssignmentToken {
+
+ public ClassDeclaration_BodyAssignment_2_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getBodyAssignment_2_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_ExtendAssignment_2_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block
+protected class ClassDeclaration_Group_2_2 extends GroupToken {
+
+ public ClassDeclaration_Group_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_BodyAssignment_2_2_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=(Id | Property)
+protected class ClassDeclaration_NameAssignment_2_2_0 extends AssignmentToken {
+
+ public ClassDeclaration_NameAssignment_2_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getNameAssignment_2_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ case 1: return new Property_Alternatives(this, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getNameIdParserRuleCall_2_2_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPropertyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getNamePropertyParserRuleCall_2_2_0_0_1();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (EXTENDS extend=SuperClass)?
+protected class ClassDeclaration_Group_2_2_1 extends GroupToken {
+
+ public ClassDeclaration_Group_2_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup_2_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_ExtendAssignment_2_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class ClassDeclaration_EXTENDSTerminalRuleCall_2_2_1_0 extends UnassignedTextToken {
+
+ public ClassDeclaration_EXTENDSTerminalRuleCall_2_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_NameAssignment_2_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class ClassDeclaration_ExtendAssignment_2_2_1_1 extends AssignmentToken {
+
+ public ClassDeclaration_ExtendAssignment_2_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getExtendAssignment_2_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_EXTENDSTerminalRuleCall_2_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class ClassDeclaration_BodyAssignment_2_2_2 extends AssignmentToken {
+
+ public ClassDeclaration_BodyAssignment_2_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getBodyAssignment_2_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_2_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_Group_2_2_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new ClassDeclaration_NameAssignment_2_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule ClassDeclaration ****************/
+
+
+/************ begin Rule AssignedClassDeclaration ****************
+ *
+ * / **
+ * * FIXME: it should be the same as ClassDeclaration, but it would result in a non-LL decision,
+ * * so I just removed the problematic options (a class body and a name or a superclass is required).
+ * * / AssignedClassDeclaration:
+ * {ClassDeclaration} CLASS (EXTENDS extend=SuperClass body=Block | name=(Id | Property) (EXTENDS extend=SuperClass)?
+ * body=Block)?;
+ *
+ **/
+
+// {ClassDeclaration} CLASS (EXTENDS extend=SuperClass body=Block | name=(Id | Property) (EXTENDS extend=SuperClass)?
+// body=Block)?
+protected class AssignedClassDeclaration_Group extends GroupToken {
+
+ public AssignedClassDeclaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Alternatives_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignedClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ClassDeclaration}
+protected class AssignedClassDeclaration_ClassDeclarationAction_0 extends ActionToken {
+
+ public AssignedClassDeclaration_ClassDeclarationAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// CLASS
+protected class AssignedClassDeclaration_CLASSTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public AssignedClassDeclaration_CLASSTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getCLASSTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_ClassDeclarationAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (EXTENDS extend=SuperClass body=Block | name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block)?
+protected class AssignedClassDeclaration_Alternatives_2 extends AlternativesToken {
+
+ public AssignedClassDeclaration_Alternatives_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getAlternatives_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Group_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignedClassDeclaration_Group_2_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS extend=SuperClass body=Block
+protected class AssignedClassDeclaration_Group_2_0 extends GroupToken {
+
+ public AssignedClassDeclaration_Group_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_BodyAssignment_2_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_0_0 extends UnassignedTextToken {
+
+ public AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class AssignedClassDeclaration_ExtendAssignment_2_0_1 extends AssignmentToken {
+
+ public AssignedClassDeclaration_ExtendAssignment_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getExtendAssignment_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// body=Block
+protected class AssignedClassDeclaration_BodyAssignment_2_0_2 extends AssignmentToken {
+
+ public AssignedClassDeclaration_BodyAssignment_2_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getBodyAssignment_2_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_ExtendAssignment_2_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block
+protected class AssignedClassDeclaration_Group_2_1 extends GroupToken {
+
+ public AssignedClassDeclaration_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_BodyAssignment_2_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=(Id | Property)
+protected class AssignedClassDeclaration_NameAssignment_2_1_0 extends AssignmentToken {
+
+ public AssignedClassDeclaration_NameAssignment_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getNameAssignment_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ case 1: return new Property_Alternatives(this, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getNameIdParserRuleCall_2_1_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPropertyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getNamePropertyParserRuleCall_2_1_0_0_1();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (EXTENDS extend=SuperClass)?
+protected class AssignedClassDeclaration_Group_2_1_1 extends GroupToken {
+
+ public AssignedClassDeclaration_Group_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_ExtendAssignment_2_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_1_1_0 extends UnassignedTextToken {
+
+ public AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_NameAssignment_2_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class AssignedClassDeclaration_ExtendAssignment_2_1_1_1 extends AssignmentToken {
+
+ public AssignedClassDeclaration_ExtendAssignment_2_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getExtendAssignment_2_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class AssignedClassDeclaration_BodyAssignment_2_1_2 extends AssignmentToken {
+
+ public AssignedClassDeclaration_BodyAssignment_2_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getBodyAssignment_2_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Group_2_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new AssignedClassDeclaration_NameAssignment_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule AssignedClassDeclaration ****************/
+
+
+/************ begin Rule Expression ****************
+ *
+ * Expression:
+ * Postfix;
+ *
+ **/
+
+// Postfix
+protected class Expression_PostfixParserRuleCall extends RuleCallToken {
+
+ public Expression_PostfixParserRuleCall(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExpressionAccess().getPostfixParserRuleCall();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Postfix_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+/************ end Rule Expression ****************/
+
+
+/************ begin Rule Postfix ****************
+ *
+ * // right-assoc
+ * // Note: the lexer seems to know it should give a POST_IF token here
+ * Postfix returns Expression: //Assignment postfix+=(PostfixIf | ForBody)?;
+ * Assignment (POST_IF {If.dummy=current} condition=Expression | FOR {For.dummy=current} body=ForBody | WHILE
+ * {While.dummy=current} body=Expression (WHEN when=Expression)? | UNTIL {Until.dummy=current} body=Expression (WHEN
+ * when=Expression)?)?;
+ *
+ **/
+
+// //Assignment postfix+=(PostfixIf | ForBody)?;
+// Assignment (POST_IF {If.dummy=current} condition=Expression | FOR {For.dummy=current} body=ForBody | WHILE
+// {While.dummy=current} body=Expression (WHEN when=Expression)? | UNTIL {Until.dummy=current} body=Expression (WHEN
+// when=Expression)?)?
+protected class Postfix_Group extends GroupToken {
+
+ public Postfix_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// //Assignment postfix+=(PostfixIf | ForBody)?;
+// Assignment
+protected class Postfix_AssignmentParserRuleCall_0 extends RuleCallToken {
+
+ public Postfix_AssignmentParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getAssignmentParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Assignment_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> POST_IF {If.dummy=current} condition=Expression | FOR {For.dummy=current} body=ForBody | WHILE {While.dummy=current}
+// body=Expression (WHEN when=Expression)? | UNTIL {Until.dummy=current} body=Expression (WHEN when=Expression)?)?
+protected class Postfix_Alternatives_1 extends AlternativesToken {
+
+ public Postfix_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Postfix_Group_1_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Postfix_Group_1_3(lastRuleCallOrigin, this, 3, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => POST_IF {If.dummy=current} condition=Expression
+protected class Postfix_Group_1_0 extends GroupToken {
+
+ public Postfix_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_ConditionAssignment_1_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => POST_IF
+protected class Postfix_POST_IFTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public Postfix_POST_IFTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getPOST_IFTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {If.dummy=current}
+protected class Postfix_IfDummyAction_1_0_1 extends ActionToken {
+
+ public Postfix_IfDummyAction_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_POST_IFTerminalRuleCall_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// condition=Expression
+protected class Postfix_ConditionAssignment_1_0_2 extends AssignmentToken {
+
+ public Postfix_ConditionAssignment_1_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getConditionAssignment_1_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getConditionExpressionParserRuleCall_1_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_IfDummyAction_1_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => FOR {For.dummy=current} body=ForBody
+protected class Postfix_Group_1_1 extends GroupToken {
+
+ public Postfix_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_BodyAssignment_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => FOR
+protected class Postfix_FORTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public Postfix_FORTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getFORTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {For.dummy=current}
+protected class Postfix_ForDummyAction_1_1_1 extends ActionToken {
+
+ public Postfix_ForDummyAction_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getForDummyAction_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_FORTerminalRuleCall_1_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// body=ForBody
+protected class Postfix_BodyAssignment_1_1_2 extends AssignmentToken {
+
+ public Postfix_BodyAssignment_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getBodyAssignment_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getBodyForBodyParserRuleCall_1_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_ForDummyAction_1_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => WHILE {While.dummy=current} body=Expression (WHEN when=Expression)?
+protected class Postfix_Group_1_2 extends GroupToken {
+
+ public Postfix_Group_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group_1_2_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_BodyAssignment_1_2_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => WHILE
+protected class Postfix_WHILETerminalRuleCall_1_2_0 extends UnassignedTextToken {
+
+ public Postfix_WHILETerminalRuleCall_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWHILETerminalRuleCall_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {While.dummy=current}
+protected class Postfix_WhileDummyAction_1_2_1 extends ActionToken {
+
+ public Postfix_WhileDummyAction_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_WHILETerminalRuleCall_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// body=Expression
+protected class Postfix_BodyAssignment_1_2_2 extends AssignmentToken {
+
+ public Postfix_BodyAssignment_1_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getBodyAssignment_1_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_2_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_WhileDummyAction_1_2_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class Postfix_Group_1_2_3 extends GroupToken {
+
+ public Postfix_Group_1_2_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_2_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_WhenAssignment_1_2_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class Postfix_WHENTerminalRuleCall_1_2_3_0 extends UnassignedTextToken {
+
+ public Postfix_WHENTerminalRuleCall_1_2_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_2_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_BodyAssignment_1_2_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class Postfix_WhenAssignment_1_2_3_1 extends AssignmentToken {
+
+ public Postfix_WhenAssignment_1_2_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWhenAssignment_1_2_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_2_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_WHENTerminalRuleCall_1_2_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// => UNTIL {Until.dummy=current} body=Expression (WHEN when=Expression)?
+protected class Postfix_Group_1_3 extends GroupToken {
+
+ public Postfix_Group_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group_1_3_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_BodyAssignment_1_3_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => UNTIL
+protected class Postfix_UNTILTerminalRuleCall_1_3_0 extends UnassignedTextToken {
+
+ public Postfix_UNTILTerminalRuleCall_1_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getUNTILTerminalRuleCall_1_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {Until.dummy=current}
+protected class Postfix_UntilDummyAction_1_3_1 extends ActionToken {
+
+ public Postfix_UntilDummyAction_1_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_UNTILTerminalRuleCall_1_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// body=Expression
+protected class Postfix_BodyAssignment_1_3_2 extends AssignmentToken {
+
+ public Postfix_BodyAssignment_1_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getBodyAssignment_1_3_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_3_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_UntilDummyAction_1_3_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class Postfix_Group_1_3_3 extends GroupToken {
+
+ public Postfix_Group_1_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_3_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_WhenAssignment_1_3_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class Postfix_WHENTerminalRuleCall_1_3_3_0 extends UnassignedTextToken {
+
+ public Postfix_WHENTerminalRuleCall_1_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_3_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_BodyAssignment_1_3_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class Postfix_WhenAssignment_1_3_3_1 extends AssignmentToken {
+
+ public Postfix_WhenAssignment_1_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWhenAssignment_1_3_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_3_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_WHENTerminalRuleCall_1_3_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+/************ end Rule Postfix ****************/
+
+
+/************ begin Rule ForBody ****************
+ *
+ * ForBody returns Expression: //FIXME: Range |
+ * OWN? indexes+=ForValue (COMMA indexes+=ForValue)* source=ForSource;
+ *
+ **/
+
+// //FIXME: Range |
+// OWN? indexes+=ForValue (COMMA indexes+=ForValue)* source=ForSource
+protected class ForBody_Group extends GroupToken {
+
+ public ForBody_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_SourceAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// indexes+=ForValue
+protected class ForBody_IndexesAssignment_1 extends AssignmentToken {
+
+ public ForBody_IndexesAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getIndexesAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForValue_IdParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("indexes",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("indexes");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForValueRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA indexes+=ForValue)*
+protected class ForBody_Group_2 extends GroupToken {
+
+ public ForBody_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_IndexesAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class ForBody_COMMATerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public ForBody_COMMATerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getCOMMATerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForBody_IndexesAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// indexes+=ForValue
+protected class ForBody_IndexesAssignment_2_1 extends AssignmentToken {
+
+ public ForBody_IndexesAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getIndexesAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForValue_IdParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("indexes",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("indexes");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForValueRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForBody_COMMATerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// source=ForSource
+protected class ForBody_SourceAssignment_3 extends AssignmentToken {
+
+ public ForBody_SourceAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getSourceAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("source",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("source");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForSourceRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForBodyAccess().getSourceForSourceParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForBody_Group_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new ForBody_IndexesAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ForBody ****************/
+
+
+/************ begin Rule ForValue ****************
+ *
+ * //FIXME | Array | Dictionary;
+ * ForValue:
+ * Id;
+ *
+ **/
+
+// Id
+protected class ForValue_IdParserRuleCall extends RuleCallToken {
+
+ public ForValue_IdParserRuleCall(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForValueAccess().getIdParserRuleCall();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+/************ end Rule ForValue ****************/
+
+
+/************ begin Rule ForSource ****************
+ *
+ * ForSource:
+ * {ForSource} (FOROF source=Expression (WHEN when=Expression)? | FORIN source=Expression (WHEN when=Expression (BY
+ * by=Expression)? | BY by=Expression (WHEN when=Expression)?)?);
+ *
+ **/
+
+// {ForSource} (FOROF source=Expression (WHEN when=Expression)? | FORIN source=Expression (WHEN when=Expression (BY
+// by=Expression)? | BY by=Expression (WHEN when=Expression)?)?)
+protected class ForSource_Group extends GroupToken {
+
+ public ForSource_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForSourceAccess().getForSourceAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ForSource}
+protected class ForSource_ForSourceAction_0 extends ActionToken {
+
+ public ForSource_ForSourceAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getForSourceAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// => FOROF source=Expression (WHEN when=Expression)? | FORIN source=Expression (WHEN when=Expression (BY by=Expression)? |
+// BY by=Expression (WHEN when=Expression)?)?
+protected class ForSource_Alternatives_1 extends AlternativesToken {
+
+ public ForSource_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => FOROF source=Expression (WHEN when=Expression)?
+protected class ForSource_Group_1_0 extends GroupToken {
+
+ public ForSource_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_0_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_SourceAssignment_1_0_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => FOROF
+protected class ForSource_FOROFTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public ForSource_FOROFTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getFOROFTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ForSourceAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// source=Expression
+protected class ForSource_SourceAssignment_1_0_1 extends AssignmentToken {
+
+ public ForSource_SourceAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getSourceAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("source",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("source");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_FOROFTerminalRuleCall_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class ForSource_Group_1_0_2 extends GroupToken {
+
+ public ForSource_Group_1_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_WhenAssignment_1_0_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class ForSource_WHENTerminalRuleCall_1_0_2_0 extends UnassignedTextToken {
+
+ public ForSource_WHENTerminalRuleCall_1_0_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_0_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_SourceAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class ForSource_WhenAssignment_1_0_2_1 extends AssignmentToken {
+
+ public ForSource_WhenAssignment_1_0_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWhenAssignment_1_0_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_0_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_WHENTerminalRuleCall_1_0_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// => FORIN source=Expression (WHEN when=Expression (BY by=Expression)? | BY by=Expression (WHEN when=Expression)?)?
+protected class ForSource_Group_1_1 extends GroupToken {
+
+ public ForSource_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Alternatives_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_SourceAssignment_1_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => FORIN
+protected class ForSource_FORINTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ForSource_FORINTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getFORINTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ForSourceAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// source=Expression
+protected class ForSource_SourceAssignment_1_1_1 extends AssignmentToken {
+
+ public ForSource_SourceAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getSourceAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("source",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("source");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_FORINTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression (BY by=Expression)? | BY by=Expression (WHEN when=Expression)?)?
+protected class ForSource_Alternatives_1_1_2 extends AlternativesToken {
+
+ public ForSource_Alternatives_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getAlternatives_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_Group_1_1_2_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN when=Expression (BY by=Expression)?
+protected class ForSource_Group_1_1_2_0 extends GroupToken {
+
+ public ForSource_Group_1_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_1_2_0_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_WhenAssignment_1_1_2_0_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class ForSource_WHENTerminalRuleCall_1_1_2_0_0 extends UnassignedTextToken {
+
+ public ForSource_WHENTerminalRuleCall_1_1_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_SourceAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class ForSource_WhenAssignment_1_1_2_0_1 extends AssignmentToken {
+
+ public ForSource_WhenAssignment_1_1_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWhenAssignment_1_1_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_WHENTerminalRuleCall_1_1_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> BY by=Expression)?
+protected class ForSource_Group_1_1_2_0_2 extends GroupToken {
+
+ public ForSource_Group_1_1_2_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ByAssignment_1_1_2_0_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => BY
+protected class ForSource_BYTerminalRuleCall_1_1_2_0_2_0 extends UnassignedTextToken {
+
+ public ForSource_BYTerminalRuleCall_1_1_2_0_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_0_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_WhenAssignment_1_1_2_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// by=Expression
+protected class ForSource_ByAssignment_1_1_2_0_2_1 extends AssignmentToken {
+
+ public ForSource_ByAssignment_1_1_2_0_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getByAssignment_1_1_2_0_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("by",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("by");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_0_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_BYTerminalRuleCall_1_1_2_0_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// => BY by=Expression (WHEN when=Expression)?
+protected class ForSource_Group_1_1_2_1 extends GroupToken {
+
+ public ForSource_Group_1_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_1_2_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_ByAssignment_1_1_2_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => BY
+protected class ForSource_BYTerminalRuleCall_1_1_2_1_0 extends UnassignedTextToken {
+
+ public ForSource_BYTerminalRuleCall_1_1_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_SourceAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// by=Expression
+protected class ForSource_ByAssignment_1_1_2_1_1 extends AssignmentToken {
+
+ public ForSource_ByAssignment_1_1_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getByAssignment_1_1_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("by",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("by");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_BYTerminalRuleCall_1_1_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class ForSource_Group_1_1_2_1_2 extends GroupToken {
+
+ public ForSource_Group_1_1_2_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_WhenAssignment_1_1_2_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class ForSource_WHENTerminalRuleCall_1_1_2_1_2_0 extends UnassignedTextToken {
+
+ public ForSource_WHENTerminalRuleCall_1_1_2_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ByAssignment_1_1_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class ForSource_WhenAssignment_1_1_2_1_2_1 extends AssignmentToken {
+
+ public ForSource_WhenAssignment_1_1_2_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWhenAssignment_1_1_2_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_WHENTerminalRuleCall_1_1_2_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+
+
+/************ end Rule ForSource ****************/
+
+
+/************ begin Rule Range ****************
+ *
+ * Range:
+ * => (LBRACKET start=Expression (DOT_DOT | ELLIPSIS)) end=Expression RBRACKET;
+ *
+ **/
+
+// => (LBRACKET start=Expression (DOT_DOT | ELLIPSIS)) end=Expression RBRACKET
+protected class Range_Group extends GroupToken {
+
+ public Range_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRangeAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_RBRACKETTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRangeRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (LBRACKET start=Expression (DOT_DOT | ELLIPSIS))
+protected class Range_Group_0 extends GroupToken {
+
+ public Range_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRangeAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_Group_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LBRACKET start=Expression (DOT_DOT | ELLIPSIS)
+protected class Range_Group_0_0 extends GroupToken {
+
+ public Range_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRangeAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_Alternatives_0_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LBRACKET
+protected class Range_LBRACKETTerminalRuleCall_0_0_0 extends UnassignedTextToken {
+
+ public Range_LBRACKETTerminalRuleCall_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRangeAccess().getLBRACKETTerminalRuleCall_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// start=Expression
+protected class Range_StartAssignment_0_0_1 extends AssignmentToken {
+
+ public Range_StartAssignment_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRangeAccess().getStartAssignment_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("start",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("start");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRangeAccess().getStartExpressionParserRuleCall_0_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Range_LBRACKETTerminalRuleCall_0_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// DOT_DOT | ELLIPSIS
+protected class Range_Alternatives_0_0_2 extends AlternativesToken {
+
+ public Range_Alternatives_0_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getRangeAccess().getAlternatives_0_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_DOT_DOTTerminalRuleCall_0_0_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// DOT_DOT
+protected class Range_DOT_DOTTerminalRuleCall_0_0_2_0 extends UnassignedTextToken {
+
+ public Range_DOT_DOTTerminalRuleCall_0_0_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRangeAccess().getDOT_DOTTerminalRuleCall_0_0_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_StartAssignment_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+// end=Expression
+protected class Range_EndAssignment_1 extends AssignmentToken {
+
+ public Range_EndAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRangeAccess().getEndAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("end",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("end");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRangeAccess().getEndExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Range_Group_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// RBRACKET
+protected class Range_RBRACKETTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public Range_RBRACKETTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRangeAccess().getRBRACKETTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_EndAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Range ****************/
+
+
+/************ begin Rule Assignment ****************
+ *
+ * Assignment returns Expression:
+ * => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)) right=Assigned | LogicOp;
+ *
+ **/
+
+// => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)) right=Assigned | LogicOp
+protected class Assignment_Alternatives extends AlternativesToken {
+
+ public Assignment_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Assignment_LogicOpParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)) right=Assigned
+protected class Assignment_Group_0 extends GroupToken {
+
+ public Assignment_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_RightAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN))
+protected class Assignment_Group_0_0 extends GroupToken {
+
+ public Assignment_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_Group_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)
+protected class Assignment_Group_0_0_0 extends GroupToken {
+
+ public Assignment_Group_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getGroup_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_OperatorAssignment_0_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// left=Assignable
+protected class Assignment_LeftAssignment_0_0_0_0 extends AssignmentToken {
+
+ public Assignment_LeftAssignment_0_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getLeftAssignment_0_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("left",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("left");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getLeftAssignableParserRuleCall_0_0_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// operator=(EQUAL | COMPOUND_ASSIGN)
+protected class Assignment_OperatorAssignment_0_0_0_1 extends AssignmentToken {
+
+ public Assignment_OperatorAssignment_0_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getOperatorAssignment_0_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_LeftAssignment_0_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssignmentAccess().getOperatorEQUALTerminalRuleCall_0_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getOperatorEQUALTerminalRuleCall_0_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssignmentAccess().getOperatorCOMPOUND_ASSIGNTerminalRuleCall_0_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getOperatorCOMPOUND_ASSIGNTerminalRuleCall_0_0_0_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=Assigned
+protected class Assignment_RightAssignment_0_1 extends AssignmentToken {
+
+ public Assignment_RightAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getRightAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignedRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getRightAssignedParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Assignment_Group_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// LogicOp
+protected class Assignment_LogicOpParserRuleCall_1 extends RuleCallToken {
+
+ public Assignment_LogicOpParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getLogicOpParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(LogicOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Assignment ****************/
+
+
+/************ begin Rule Assigned ****************
+ *
+ * Assigned returns Expression:
+ * Expression | INDENT Expression OUTDENT | AssignedClassDeclaration;
+ *
+ **/
+
+// Expression | INDENT Expression OUTDENT | AssignedClassDeclaration
+protected class Assigned_Alternatives extends AlternativesToken {
+
+ public Assigned_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_ExpressionParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Assigned_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Assigned_AssignedClassDeclarationParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Expression
+protected class Assigned_ExpressionParserRuleCall_0 extends RuleCallToken {
+
+ public Assigned_ExpressionParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getExpressionParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// INDENT Expression OUTDENT
+protected class Assigned_Group_1 extends GroupToken {
+
+ public Assigned_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_OUTDENTTerminalRuleCall_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// INDENT
+protected class Assigned_INDENTTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Assigned_INDENTTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getINDENTTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// Expression
+protected class Assigned_ExpressionParserRuleCall_1_1 extends RuleCallToken {
+
+ public Assigned_ExpressionParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getExpressionParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_INDENTTerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class Assigned_OUTDENTTerminalRuleCall_1_2 extends UnassignedTextToken {
+
+ public Assigned_OUTDENTTerminalRuleCall_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getOUTDENTTerminalRuleCall_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_ExpressionParserRuleCall_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// AssignedClassDeclaration
+protected class Assigned_AssignedClassDeclarationParserRuleCall_2 extends RuleCallToken {
+
+ public Assigned_AssignedClassDeclarationParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getAssignedClassDeclarationParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(AssignedClassDeclaration_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Assigned ****************/
+
+
+/************ begin Rule LogicOp ****************
+ *
+ * LogicOp returns Expression:
+ * CompareOp (=> ({BinaryExp.left=current} operator=LOGIC) right=CompareOp)*;
+ *
+ **/
+
+// CompareOp (=> ({BinaryExp.left=current} operator=LOGIC) right=CompareOp)*
+protected class LogicOp_Group extends GroupToken {
+
+ public LogicOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LogicOp_CompareOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// CompareOp
+protected class LogicOp_CompareOpParserRuleCall_0 extends RuleCallToken {
+
+ public LogicOp_CompareOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getCompareOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(CompareOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=LOGIC) right=CompareOp)*
+protected class LogicOp_Group_1 extends GroupToken {
+
+ public LogicOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=LOGIC)
+protected class LogicOp_Group_1_0 extends GroupToken {
+
+ public LogicOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=LOGIC
+protected class LogicOp_Group_1_0_0 extends GroupToken {
+
+ public LogicOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class LogicOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public LogicOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LogicOp_CompareOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=LOGIC
+protected class LogicOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public LogicOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLogicOpAccess().getOperatorLOGICTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getLogicOpAccess().getOperatorLOGICTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=CompareOp
+protected class LogicOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public LogicOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCompareOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLogicOpAccess().getRightCompareOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LogicOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule LogicOp ****************/
+
+
+/************ begin Rule CompareOp ****************
+ *
+ * CompareOp returns Expression:
+ * RelationOp (=> ({BinaryExp.left=current} operator=COMPARE) right=RelationOp)*;
+ *
+ **/
+
+// RelationOp (=> ({BinaryExp.left=current} operator=COMPARE) right=RelationOp)*
+protected class CompareOp_Group extends GroupToken {
+
+ public CompareOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompareOp_RelationOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// RelationOp
+protected class CompareOp_RelationOpParserRuleCall_0 extends RuleCallToken {
+
+ public CompareOp_RelationOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getRelationOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(RelationOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=COMPARE) right=RelationOp)*
+protected class CompareOp_Group_1 extends GroupToken {
+
+ public CompareOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=COMPARE)
+protected class CompareOp_Group_1_0 extends GroupToken {
+
+ public CompareOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=COMPARE
+protected class CompareOp_Group_1_0_0 extends GroupToken {
+
+ public CompareOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class CompareOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public CompareOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompareOp_RelationOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=COMPARE
+protected class CompareOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public CompareOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompareOpAccess().getOperatorCOMPARETerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCompareOpAccess().getOperatorCOMPARETerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=RelationOp
+protected class CompareOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public CompareOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getRelationOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCompareOpAccess().getRightRelationOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CompareOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule CompareOp ****************/
+
+
+/************ begin Rule RelationOp ****************
+ *
+ * RelationOp returns Expression:
+ * ShiftOp (=> ({BinaryExp.left=current} operator=RELATION) right=ShiftOp)*;
+ *
+ **/
+
+// ShiftOp (=> ({BinaryExp.left=current} operator=RELATION) right=ShiftOp)*
+protected class RelationOp_Group extends GroupToken {
+
+ public RelationOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new RelationOp_ShiftOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// ShiftOp
+protected class RelationOp_ShiftOpParserRuleCall_0 extends RuleCallToken {
+
+ public RelationOp_ShiftOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getShiftOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(ShiftOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=RELATION) right=ShiftOp)*
+protected class RelationOp_Group_1 extends GroupToken {
+
+ public RelationOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=RELATION)
+protected class RelationOp_Group_1_0 extends GroupToken {
+
+ public RelationOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=RELATION
+protected class RelationOp_Group_1_0_0 extends GroupToken {
+
+ public RelationOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class RelationOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public RelationOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new RelationOp_ShiftOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=RELATION
+protected class RelationOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public RelationOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRelationOpAccess().getOperatorRELATIONTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getRelationOpAccess().getOperatorRELATIONTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=ShiftOp
+protected class RelationOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public RelationOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getShiftOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRelationOpAccess().getRightShiftOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new RelationOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule RelationOp ****************/
+
+
+/************ begin Rule ShiftOp ****************
+ *
+ * ShiftOp returns Expression:
+ * AdditiveOp (=> ({BinaryExp.left=current} operator=SHIFT) right=AdditiveOp)*;
+ *
+ **/
+
+// AdditiveOp (=> ({BinaryExp.left=current} operator=SHIFT) right=AdditiveOp)*
+protected class ShiftOp_Group extends GroupToken {
+
+ public ShiftOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ShiftOp_AdditiveOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AdditiveOp
+protected class ShiftOp_AdditiveOpParserRuleCall_0 extends RuleCallToken {
+
+ public ShiftOp_AdditiveOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getAdditiveOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(AdditiveOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=SHIFT) right=AdditiveOp)*
+protected class ShiftOp_Group_1 extends GroupToken {
+
+ public ShiftOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=SHIFT)
+protected class ShiftOp_Group_1_0 extends GroupToken {
+
+ public ShiftOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=SHIFT
+protected class ShiftOp_Group_1_0_0 extends GroupToken {
+
+ public ShiftOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class ShiftOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public ShiftOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ShiftOp_AdditiveOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=SHIFT
+protected class ShiftOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public ShiftOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getShiftOpAccess().getOperatorSHIFTTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getShiftOpAccess().getOperatorSHIFTTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=AdditiveOp
+protected class ShiftOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public ShiftOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAdditiveOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getShiftOpAccess().getRightAdditiveOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ShiftOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ShiftOp ****************/
+
+
+/************ begin Rule AdditiveOp ****************
+ *
+ * AdditiveOp returns Expression:
+ * MathOp (=> ({BinaryExp.left=current} operator=(PLUS | MINUS)) right=MathOp)*;
+ *
+ **/
+
+// MathOp (=> ({BinaryExp.left=current} operator=(PLUS | MINUS)) right=MathOp)*
+protected class AdditiveOp_Group extends GroupToken {
+
+ public AdditiveOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AdditiveOp_MathOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// MathOp
+protected class AdditiveOp_MathOpParserRuleCall_0 extends RuleCallToken {
+
+ public AdditiveOp_MathOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getMathOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(MathOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=(PLUS | MINUS)) right=MathOp)*
+protected class AdditiveOp_Group_1 extends GroupToken {
+
+ public AdditiveOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=(PLUS | MINUS))
+protected class AdditiveOp_Group_1_0 extends GroupToken {
+
+ public AdditiveOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=(PLUS | MINUS)
+protected class AdditiveOp_Group_1_0_0 extends GroupToken {
+
+ public AdditiveOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class AdditiveOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public AdditiveOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AdditiveOp_MathOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=(PLUS | MINUS)
+protected class AdditiveOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public AdditiveOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAdditiveOpAccess().getOperatorPLUSTerminalRuleCall_1_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAdditiveOpAccess().getOperatorPLUSTerminalRuleCall_1_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAdditiveOpAccess().getOperatorMINUSTerminalRuleCall_1_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAdditiveOpAccess().getOperatorMINUSTerminalRuleCall_1_0_0_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=MathOp
+protected class AdditiveOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public AdditiveOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getMathOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAdditiveOpAccess().getRightMathOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AdditiveOp ****************/
+
+
+/************ begin Rule MathOp ****************
+ *
+ * MathOp returns Expression:
+ * UnaryOp (=> ({BinaryExp.left=current} operator=MATH) right=UnaryOp)*;
+ *
+ **/
+
+// UnaryOp (=> ({BinaryExp.left=current} operator=MATH) right=UnaryOp)*
+protected class MathOp_Group extends GroupToken {
+
+ public MathOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new MathOp_UnaryOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// UnaryOp
+protected class MathOp_UnaryOpParserRuleCall_0 extends RuleCallToken {
+
+ public MathOp_UnaryOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getUnaryOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(UnaryOp_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=MATH) right=UnaryOp)*
+protected class MathOp_Group_1 extends GroupToken {
+
+ public MathOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=MATH)
+protected class MathOp_Group_1_0 extends GroupToken {
+
+ public MathOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=MATH
+protected class MathOp_Group_1_0_0 extends GroupToken {
+
+ public MathOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class MathOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public MathOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new MathOp_UnaryOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=MATH
+protected class MathOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public MathOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getMathOpAccess().getOperatorMATHTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getMathOpAccess().getOperatorMATHTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=UnaryOp
+protected class MathOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public MathOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getUnaryOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getMathOpAccess().getRightUnaryOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new MathOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule MathOp ****************/
+
+
+/************ begin Rule UnaryOp ****************
+ *
+ * UnaryOp returns Expression:
+ * (UNARY | PLUS | MINUS) Expression | (PLUS_PLUS | MINUS_MINUS) Variable | // FIXME: postfix increment
+ * Application QUESTION?;
+ *
+ **/
+
+// (UNARY | PLUS | MINUS) Expression | (PLUS_PLUS | MINUS_MINUS) Variable | // FIXME: postfix increment
+// Application QUESTION?
+protected class UnaryOp_Alternatives extends AlternativesToken {
+
+ public UnaryOp_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new UnaryOp_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new UnaryOp_Group_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// (UNARY | PLUS | MINUS) Expression
+protected class UnaryOp_Group_0 extends GroupToken {
+
+ public UnaryOp_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_ExpressionParserRuleCall_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// UNARY | PLUS | MINUS
+protected class UnaryOp_Alternatives_0_0 extends AlternativesToken {
+
+ public UnaryOp_Alternatives_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getAlternatives_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_UNARYTerminalRuleCall_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// UNARY
+protected class UnaryOp_UNARYTerminalRuleCall_0_0_0 extends UnassignedTextToken {
+
+ public UnaryOp_UNARYTerminalRuleCall_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getUNARYTerminalRuleCall_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+
+// Expression
+protected class UnaryOp_ExpressionParserRuleCall_0_1 extends RuleCallToken {
+
+ public UnaryOp_ExpressionParserRuleCall_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getExpressionParserRuleCall_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives_0_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+// (PLUS_PLUS | MINUS_MINUS) Variable
+protected class UnaryOp_Group_1 extends GroupToken {
+
+ public UnaryOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_VariableParserRuleCall_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// PLUS_PLUS | MINUS_MINUS
+protected class UnaryOp_Alternatives_1_0 extends AlternativesToken {
+
+ public UnaryOp_Alternatives_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getAlternatives_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_PLUS_PLUSTerminalRuleCall_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// PLUS_PLUS
+protected class UnaryOp_PLUS_PLUSTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public UnaryOp_PLUS_PLUSTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getPLUS_PLUSTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+
+// Variable
+protected class UnaryOp_VariableParserRuleCall_1_1 extends RuleCallToken {
+
+ public UnaryOp_VariableParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getVariableParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Variable_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives_1_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+// // FIXME: postfix increment
+// Application QUESTION?
+protected class UnaryOp_Group_2 extends GroupToken {
+
+ public UnaryOp_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_ApplicationParserRuleCall_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// // FIXME: postfix increment
+// Application
+protected class UnaryOp_ApplicationParserRuleCall_2_0 extends RuleCallToken {
+
+ public UnaryOp_ApplicationParserRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getApplicationParserRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Application_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+
+/************ end Rule UnaryOp ****************/
+
+
+/************ begin Rule Application ****************
+ *
+ * // Nested function calls and property accesses -- I couldn't come up with a better name
+ * Application:
+ * {SuperCall} (SUPER (CALL_START args=ArgList CALL_END)?) | value=PrimaryExpression features+=FeatureCall*;
+ *
+ **/
+
+// {SuperCall} (SUPER (CALL_START args=ArgList CALL_END)?) | value=PrimaryExpression features+=FeatureCall*
+protected class Application_Alternatives extends AlternativesToken {
+
+ public Application_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Application_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {SuperCall} (SUPER (CALL_START args=ArgList CALL_END)?)
+protected class Application_Group_0 extends GroupToken {
+
+ public Application_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Group_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {SuperCall}
+protected class Application_SuperCallAction_0_0 extends ActionToken {
+
+ public Application_SuperCallAction_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getSuperCallAction_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// SUPER (CALL_START args=ArgList CALL_END)?
+protected class Application_Group_0_1 extends GroupToken {
+
+ public Application_Group_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Group_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Application_SUPERTerminalRuleCall_0_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// SUPER
+protected class Application_SUPERTerminalRuleCall_0_1_0 extends UnassignedTextToken {
+
+ public Application_SUPERTerminalRuleCall_0_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getSUPERTerminalRuleCall_0_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_SuperCallAction_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (CALL_START args=ArgList CALL_END)?
+protected class Application_Group_0_1_1 extends GroupToken {
+
+ public Application_Group_0_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_0_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_CALL_ENDTerminalRuleCall_0_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// CALL_START
+protected class Application_CALL_STARTTerminalRuleCall_0_1_1_0 extends UnassignedTextToken {
+
+ public Application_CALL_STARTTerminalRuleCall_0_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getCALL_STARTTerminalRuleCall_0_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_SUPERTerminalRuleCall_0_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args=ArgList
+protected class Application_ArgsAssignment_0_1_1_1 extends AssignmentToken {
+
+ public Application_ArgsAssignment_0_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getArgsAssignment_0_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getApplicationAccess().getArgsArgListParserRuleCall_0_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Application_CALL_STARTTerminalRuleCall_0_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// CALL_END
+protected class Application_CALL_ENDTerminalRuleCall_0_1_1_2 extends UnassignedTextToken {
+
+ public Application_CALL_ENDTerminalRuleCall_0_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getCALL_ENDTerminalRuleCall_0_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_ArgsAssignment_0_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+// value=PrimaryExpression features+=FeatureCall*
+protected class Application_Group_1 extends GroupToken {
+
+ public Application_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_FeaturesAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Application_ValueAssignment_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// value=PrimaryExpression
+protected class Application_ValueAssignment_1_0 extends AssignmentToken {
+
+ public Application_ValueAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getValueAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPrimaryExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getApplicationAccess().getValuePrimaryExpressionParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// features+=FeatureCall*
+protected class Application_FeaturesAssignment_1_1 extends AssignmentToken {
+
+ public Application_FeaturesAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getFeaturesAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FeatureCall_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("features",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("features");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getFeatureCallRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getApplicationAccess().getFeaturesFeatureCallParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Application_FeaturesAssignment_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Application_ValueAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule Application ****************/
+
+
+/************ begin Rule FeatureCall ****************
+ *
+ * FeatureCall:
+ * FunctionCall | PropertyAccess;
+ *
+ **/
+
+// FunctionCall | PropertyAccess
+protected class FeatureCall_Alternatives extends AlternativesToken {
+
+ public FeatureCall_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getFeatureCallAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FeatureCall_FunctionCallParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new FeatureCall_PropertyAccessParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionCallAccess().getFunctionCallAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// FunctionCall
+protected class FeatureCall_FunctionCallParserRuleCall_0 extends RuleCallToken {
+
+ public FeatureCall_FunctionCallParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFeatureCallAccess().getFunctionCallParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionCallAccess().getFunctionCallAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(FunctionCall_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// PropertyAccess
+protected class FeatureCall_PropertyAccessParserRuleCall_1 extends RuleCallToken {
+
+ public FeatureCall_PropertyAccessParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFeatureCallAccess().getPropertyAccessParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyAccess_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(PropertyAccess_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule FeatureCall ****************/
+
+
+/************ begin Rule FunctionCall ****************
+ *
+ * FunctionCall:
+ * {FunctionCall} FUNC_EXIST? CALL_START args=ArgList CALL_END;
+ *
+ **/
+
+// {FunctionCall} FUNC_EXIST? CALL_START args=ArgList CALL_END
+protected class FunctionCall_Group extends GroupToken {
+
+ public FunctionCall_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_CALL_ENDTerminalRuleCall_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionCallAccess().getFunctionCallAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {FunctionCall}
+protected class FunctionCall_FunctionCallAction_0 extends ActionToken {
+
+ public FunctionCall_FunctionCallAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getFunctionCallAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// CALL_START
+protected class FunctionCall_CALL_STARTTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public FunctionCall_CALL_STARTTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getCALL_STARTTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_FunctionCallAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args=ArgList
+protected class FunctionCall_ArgsAssignment_3 extends AssignmentToken {
+
+ public FunctionCall_ArgsAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getArgsAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getFunctionCallAccess().getArgsArgListParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new FunctionCall_CALL_STARTTerminalRuleCall_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// CALL_END
+protected class FunctionCall_CALL_ENDTerminalRuleCall_4 extends UnassignedTextToken {
+
+ public FunctionCall_CALL_ENDTerminalRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getCALL_ENDTerminalRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_ArgsAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule FunctionCall ****************/
+
+
+/************ begin Rule PropertyAccess ****************
+ *
+ * PropertyAccess:
+ * NamedPropertyAccess | IndexedPropertyAccess;
+ *
+ **/
+
+// NamedPropertyAccess | IndexedPropertyAccess
+protected class PropertyAccess_Alternatives extends AlternativesToken {
+
+ public PropertyAccess_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPropertyAccessAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyAccess_NamedPropertyAccessParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PropertyAccess_IndexedPropertyAccessParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// NamedPropertyAccess
+protected class PropertyAccess_NamedPropertyAccessParserRuleCall_0 extends RuleCallToken {
+
+ public PropertyAccess_NamedPropertyAccessParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccessAccess().getNamedPropertyAccessParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NamedPropertyAccess_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// IndexedPropertyAccess
+protected class PropertyAccess_IndexedPropertyAccessParserRuleCall_1 extends RuleCallToken {
+
+ public PropertyAccess_IndexedPropertyAccessParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccessAccess().getIndexedPropertyAccessParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IndexedPropertyAccess_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule PropertyAccess ****************/
+
+
+/************ begin Rule ThisProperty ****************
+ *
+ * ThisProperty:
+ * AT_SIGIL Id;
+ *
+ **/
+
+// AT_SIGIL Id
+protected class ThisProperty_Group extends GroupToken {
+
+ public ThisProperty_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getThisPropertyAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_IdParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AT_SIGIL
+protected class ThisProperty_AT_SIGILTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public ThisProperty_AT_SIGILTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getThisPropertyAccess().getAT_SIGILTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// Id
+protected class ThisProperty_IdParserRuleCall_1 extends RuleCallToken {
+
+ public ThisProperty_IdParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getThisPropertyAccess().getIdParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_AT_SIGILTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ThisProperty ****************/
+
+
+/************ begin Rule NamedPropertyAccess ****************
+ *
+ * NamedPropertyAccess:
+ * accessor=(DOT | QUESTION_DOT) name=Id | accessor=DOUBLE_COLON name=Id?;
+ *
+ **/
+
+// accessor=(DOT | QUESTION_DOT) name=Id | accessor=DOUBLE_COLON name=Id?
+protected class NamedPropertyAccess_Alternatives extends AlternativesToken {
+
+ public NamedPropertyAccess_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NamedPropertyAccess_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// accessor=(DOT | QUESTION_DOT) name=Id
+protected class NamedPropertyAccess_Group_0 extends GroupToken {
+
+ public NamedPropertyAccess_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_NameAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// accessor=(DOT | QUESTION_DOT)
+protected class NamedPropertyAccess_AccessorAssignment_0_0 extends AssignmentToken {
+
+ public NamedPropertyAccess_AccessorAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getAccessorAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessor");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedPropertyAccessAccess().getAccessorDOTTerminalRuleCall_0_0_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getAccessorDOTTerminalRuleCall_0_0_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedPropertyAccessAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=Id
+protected class NamedPropertyAccess_NameAssignment_0_1 extends AssignmentToken {
+
+ public NamedPropertyAccess_NameAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getNameAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NamedPropertyAccess_AccessorAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// accessor=DOUBLE_COLON name=Id?
+protected class NamedPropertyAccess_Group_1 extends GroupToken {
+
+ public NamedPropertyAccess_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_NameAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NamedPropertyAccess_AccessorAssignment_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// accessor=DOUBLE_COLON
+protected class NamedPropertyAccess_AccessorAssignment_1_0 extends AssignmentToken {
+
+ public NamedPropertyAccess_AccessorAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getAccessorAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessor");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedPropertyAccessAccess().getAccessorDOUBLE_COLONTerminalRuleCall_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getAccessorDOUBLE_COLONTerminalRuleCall_1_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=Id?
+protected class NamedPropertyAccess_NameAssignment_1_1 extends AssignmentToken {
+
+ public NamedPropertyAccess_NameAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getNameAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NamedPropertyAccess_AccessorAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule NamedPropertyAccess ****************/
+
+
+/************ begin Rule IndexedPropertyAccess ****************
+ *
+ * IndexedPropertyAccess:
+ * INDEX_START index=Index INDEX_END;
+ *
+ **/
+
+// INDEX_START index=Index INDEX_END
+protected class IndexedPropertyAccess_Group extends GroupToken {
+
+ public IndexedPropertyAccess_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_INDEX_ENDTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// INDEX_START
+protected class IndexedPropertyAccess_INDEX_STARTTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public IndexedPropertyAccess_INDEX_STARTTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getINDEX_STARTTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// index=Index
+protected class IndexedPropertyAccess_IndexAssignment_1 extends AssignmentToken {
+
+ public IndexedPropertyAccess_IndexAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getIndexAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("index",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("index");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIndexRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexedPropertyAccessAccess().getIndexIndexParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_INDEX_STARTTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDEX_END
+protected class IndexedPropertyAccess_INDEX_ENDTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public IndexedPropertyAccess_INDEX_ENDTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getINDEX_ENDTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_IndexAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule IndexedPropertyAccess ****************/
+
+
+/************ begin Rule Index ****************
+ *
+ * Index:
+ * => dots=(DOT_DOT | ELLIPSIS) end=Expression | => (start=Expression dots=(DOT_DOT | ELLIPSIS)) end=Expression? |
+ * exp=Expression;
+ *
+ **/
+
+// => dots=(DOT_DOT | ELLIPSIS) end=Expression | => (start=Expression dots=(DOT_DOT | ELLIPSIS)) end=Expression? |
+// exp=Expression
+protected class Index_Alternatives extends AlternativesToken {
+
+ public Index_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getIndexAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Index_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Index_ExpAssignment_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => dots=(DOT_DOT | ELLIPSIS) end=Expression
+protected class Index_Group_0 extends GroupToken {
+
+ public Index_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_EndAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => dots=(DOT_DOT | ELLIPSIS)
+protected class Index_DotsAssignment_0_0 extends AssignmentToken {
+
+ public Index_DotsAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getDotsAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dots",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dots");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_0_0_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_0_0_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_0_0_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_0_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// end=Expression
+protected class Index_EndAssignment_0_1 extends AssignmentToken {
+
+ public Index_EndAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getEndAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("end",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("end");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Index_DotsAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => (start=Expression dots=(DOT_DOT | ELLIPSIS)) end=Expression?
+protected class Index_Group_1 extends GroupToken {
+
+ public Index_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_EndAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Index_Group_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (start=Expression dots=(DOT_DOT | ELLIPSIS))
+protected class Index_Group_1_0 extends GroupToken {
+
+ public Index_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// start=Expression dots=(DOT_DOT | ELLIPSIS)
+protected class Index_Group_1_0_0 extends GroupToken {
+
+ public Index_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_DotsAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// start=Expression
+protected class Index_StartAssignment_1_0_0_0 extends AssignmentToken {
+
+ public Index_StartAssignment_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getStartAssignment_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("start",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("start");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getStartExpressionParserRuleCall_1_0_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// dots=(DOT_DOT | ELLIPSIS)
+protected class Index_DotsAssignment_1_0_0_1 extends AssignmentToken {
+
+ public Index_DotsAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getDotsAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_StartAssignment_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dots",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dots");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_1_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_1_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_1_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_1_0_0_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// end=Expression?
+protected class Index_EndAssignment_1_1 extends AssignmentToken {
+
+ public Index_EndAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getEndAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("end",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("end");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Index_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// exp=Expression
+protected class Index_ExpAssignment_2 extends AssignmentToken {
+
+ public Index_ExpAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getExpAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getExpExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+
+/************ end Rule Index ****************/
+
+
+/************ begin Rule PrimaryExpression ****************
+ *
+ * // Try Range before Array
+ * PrimaryExpression:
+ * IfExp | Parenthetical | Literal | Range | Array | Dictionary | Lambda | ThisProperty | {ThisAlone} THIS | {For} (FOR
+ * loop=ForBody body=Block) | {While} (WHILE loop=Expression (WHEN when=Expression)? body=Block) | {Until} (UNTIL
+ * loop=Expression (WHEN when=Expression)? body=Block) | {Loop} (LOOP body=Block) | {TryCatch} (TRY body=Block (CATCH
+ * exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?) | {Switch} (SWITCH
+ * exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT) | IdRef;
+ *
+ **/
+
+// IfExp | Parenthetical | Literal | Range | Array | Dictionary | Lambda | ThisProperty | {ThisAlone} THIS | {For} (FOR
+// loop=ForBody body=Block) | {While} (WHILE loop=Expression (WHEN when=Expression)? body=Block) | {Until} (UNTIL
+// loop=Expression (WHEN when=Expression)? body=Block) | {Loop} (LOOP body=Block) | {TryCatch} (TRY body=Block (CATCH
+// exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?) | {Switch} (SWITCH
+// exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT) | IdRef
+protected class PrimaryExpression_Alternatives extends AlternativesToken {
+
+ public PrimaryExpression_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_IfExpParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_ParentheticalParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new PrimaryExpression_LiteralParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new PrimaryExpression_RangeParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new PrimaryExpression_ArrayParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new PrimaryExpression_DictionaryParserRuleCall_5(lastRuleCallOrigin, this, 5, inst);
+ case 6: return new PrimaryExpression_LambdaParserRuleCall_6(lastRuleCallOrigin, this, 6, inst);
+ case 7: return new PrimaryExpression_ThisPropertyParserRuleCall_7(lastRuleCallOrigin, this, 7, inst);
+ case 8: return new PrimaryExpression_Group_8(lastRuleCallOrigin, this, 8, inst);
+ case 9: return new PrimaryExpression_Group_9(lastRuleCallOrigin, this, 9, inst);
+ case 10: return new PrimaryExpression_Group_10(lastRuleCallOrigin, this, 10, inst);
+ case 11: return new PrimaryExpression_Group_11(lastRuleCallOrigin, this, 11, inst);
+ case 12: return new PrimaryExpression_Group_12(lastRuleCallOrigin, this, 12, inst);
+ case 13: return new PrimaryExpression_Group_13(lastRuleCallOrigin, this, 13, inst);
+ case 14: return new PrimaryExpression_Group_14(lastRuleCallOrigin, this, 14, inst);
+ case 15: return new PrimaryExpression_IdRefParserRuleCall_15(lastRuleCallOrigin, this, 15, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getForAction_9_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIfExpRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getLambdaRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getParentheticalRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRangeRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// IfExp
+protected class PrimaryExpression_IfExpParserRuleCall_0 extends RuleCallToken {
+
+ public PrimaryExpression_IfExpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getIfExpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIfExpRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IfExp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Parenthetical
+protected class PrimaryExpression_ParentheticalParserRuleCall_1 extends RuleCallToken {
+
+ public PrimaryExpression_ParentheticalParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getParentheticalParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParentheticalRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Parenthetical_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Literal
+protected class PrimaryExpression_LiteralParserRuleCall_2 extends RuleCallToken {
+
+ public PrimaryExpression_LiteralParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLiteralParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Literal_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Literal_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Range
+protected class PrimaryExpression_RangeParserRuleCall_3 extends RuleCallToken {
+
+ public PrimaryExpression_RangeParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getRangeParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRangeRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Range_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Array
+protected class PrimaryExpression_ArrayParserRuleCall_4 extends RuleCallToken {
+
+ public PrimaryExpression_ArrayParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getArrayParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Array_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Dictionary
+protected class PrimaryExpression_DictionaryParserRuleCall_5 extends RuleCallToken {
+
+ public PrimaryExpression_DictionaryParserRuleCall_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getDictionaryParserRuleCall_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Dictionary_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Lambda
+protected class PrimaryExpression_LambdaParserRuleCall_6 extends RuleCallToken {
+
+ public PrimaryExpression_LambdaParserRuleCall_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLambdaParserRuleCall_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLambdaRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Lambda_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisProperty
+protected class PrimaryExpression_ThisPropertyParserRuleCall_7 extends RuleCallToken {
+
+ public PrimaryExpression_ThisPropertyParserRuleCall_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getThisPropertyParserRuleCall_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisProperty_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// {ThisAlone} THIS
+protected class PrimaryExpression_Group_8 extends GroupToken {
+
+ public PrimaryExpression_Group_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_THISTerminalRuleCall_8_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ThisAlone}
+protected class PrimaryExpression_ThisAloneAction_8_0 extends ActionToken {
+
+ public PrimaryExpression_ThisAloneAction_8_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// THIS
+protected class PrimaryExpression_THISTerminalRuleCall_8_1 extends UnassignedTextToken {
+
+ public PrimaryExpression_THISTerminalRuleCall_8_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getTHISTerminalRuleCall_8_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ThisAloneAction_8_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// {For} (FOR loop=ForBody body=Block)
+protected class PrimaryExpression_Group_9 extends GroupToken {
+
+ public PrimaryExpression_Group_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_9_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getForAction_9_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {For}
+protected class PrimaryExpression_ForAction_9_0 extends ActionToken {
+
+ public PrimaryExpression_ForAction_9_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getForAction_9_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// FOR loop=ForBody body=Block
+protected class PrimaryExpression_Group_9_1 extends GroupToken {
+
+ public PrimaryExpression_Group_9_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_9_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_9_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FOR
+protected class PrimaryExpression_FORTerminalRuleCall_9_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_FORTerminalRuleCall_9_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFORTerminalRuleCall_9_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ForAction_9_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loop=ForBody
+protected class PrimaryExpression_LoopAssignment_9_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_LoopAssignment_9_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAssignment_9_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getLoopForBodyParserRuleCall_9_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_FORTerminalRuleCall_9_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_9_1_2 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_9_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_9_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_9_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAssignment_9_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {While} (WHILE loop=Expression (WHEN when=Expression)? body=Block)
+protected class PrimaryExpression_Group_10 extends GroupToken {
+
+ public PrimaryExpression_Group_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_10();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_10_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {While}
+protected class PrimaryExpression_WhileAction_10_0 extends ActionToken {
+
+ public PrimaryExpression_WhileAction_10_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// WHILE loop=Expression (WHEN when=Expression)? body=Block
+protected class PrimaryExpression_Group_10_1 extends GroupToken {
+
+ public PrimaryExpression_Group_10_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_10_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_10_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WHILE
+protected class PrimaryExpression_WHILETerminalRuleCall_10_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_WHILETerminalRuleCall_10_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWHILETerminalRuleCall_10_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_WhileAction_10_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loop=Expression
+protected class PrimaryExpression_LoopAssignment_10_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_LoopAssignment_10_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAssignment_10_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_10_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_WHILETerminalRuleCall_10_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (WHEN when=Expression)?
+protected class PrimaryExpression_Group_10_1_2 extends GroupToken {
+
+ public PrimaryExpression_Group_10_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_10_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_WhenAssignment_10_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WHEN
+protected class PrimaryExpression_WHENTerminalRuleCall_10_1_2_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_WHENTerminalRuleCall_10_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_10_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAssignment_10_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class PrimaryExpression_WhenAssignment_10_1_2_1 extends AssignmentToken {
+
+ public PrimaryExpression_WhenAssignment_10_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWhenAssignment_10_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_10_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_WHENTerminalRuleCall_10_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_10_1_3 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_10_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_10_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_10_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_10_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PrimaryExpression_LoopAssignment_10_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {Until} (UNTIL loop=Expression (WHEN when=Expression)? body=Block)
+protected class PrimaryExpression_Group_11 extends GroupToken {
+
+ public PrimaryExpression_Group_11(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_11();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_11_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Until}
+protected class PrimaryExpression_UntilAction_11_0 extends ActionToken {
+
+ public PrimaryExpression_UntilAction_11_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// UNTIL loop=Expression (WHEN when=Expression)? body=Block
+protected class PrimaryExpression_Group_11_1 extends GroupToken {
+
+ public PrimaryExpression_Group_11_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_11_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_11_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// UNTIL
+protected class PrimaryExpression_UNTILTerminalRuleCall_11_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_UNTILTerminalRuleCall_11_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getUNTILTerminalRuleCall_11_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_UntilAction_11_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loop=Expression
+protected class PrimaryExpression_LoopAssignment_11_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_LoopAssignment_11_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAssignment_11_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_11_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_UNTILTerminalRuleCall_11_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (WHEN when=Expression)?
+protected class PrimaryExpression_Group_11_1_2 extends GroupToken {
+
+ public PrimaryExpression_Group_11_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_11_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_WhenAssignment_11_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WHEN
+protected class PrimaryExpression_WHENTerminalRuleCall_11_1_2_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_WHENTerminalRuleCall_11_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_11_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAssignment_11_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class PrimaryExpression_WhenAssignment_11_1_2_1 extends AssignmentToken {
+
+ public PrimaryExpression_WhenAssignment_11_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWhenAssignment_11_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_11_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_WHENTerminalRuleCall_11_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_11_1_3 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_11_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_11_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_11_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_11_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PrimaryExpression_LoopAssignment_11_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {Loop} (LOOP body=Block)
+protected class PrimaryExpression_Group_12 extends GroupToken {
+
+ public PrimaryExpression_Group_12(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_12();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_12_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Loop}
+protected class PrimaryExpression_LoopAction_12_0 extends ActionToken {
+
+ public PrimaryExpression_LoopAction_12_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// LOOP body=Block
+protected class PrimaryExpression_Group_12_1 extends GroupToken {
+
+ public PrimaryExpression_Group_12_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_12_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_12_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LOOP
+protected class PrimaryExpression_LOOPTerminalRuleCall_12_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_LOOPTerminalRuleCall_12_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLOOPTerminalRuleCall_12_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAction_12_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_12_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_12_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_12_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_12_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_LOOPTerminalRuleCall_12_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {TryCatch} (TRY body=Block (CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY
+// finallyBlock=Block)?)
+protected class PrimaryExpression_Group_13 extends GroupToken {
+
+ public PrimaryExpression_Group_13(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_13_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {TryCatch}
+protected class PrimaryExpression_TryCatchAction_13_0 extends ActionToken {
+
+ public PrimaryExpression_TryCatchAction_13_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// TRY body=Block (CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Group_13_1 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Alternatives_13_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_BodyAssignment_13_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TRY
+protected class PrimaryExpression_TRYTerminalRuleCall_13_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_TRYTerminalRuleCall_13_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getTRYTerminalRuleCall_13_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_TryCatchAction_13_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_13_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_13_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_13_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_13_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_TRYTerminalRuleCall_13_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Alternatives_13_1_2 extends AlternativesToken {
+
+ public PrimaryExpression_Alternatives_13_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getAlternatives_13_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_13_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_Group_13_1_2_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Group_13_1_2_0 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_13_1_2_0_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_CatchBlockAssignment_13_1_2_0_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// CATCH
+protected class PrimaryExpression_CATCHTerminalRuleCall_13_1_2_0_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_CATCHTerminalRuleCall_13_1_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getCATCHTerminalRuleCall_13_1_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_13_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exception=Id
+protected class PrimaryExpression_ExceptionAssignment_13_1_2_0_1 extends AssignmentToken {
+
+ public PrimaryExpression_ExceptionAssignment_13_1_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getExceptionAssignment_13_1_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exception",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exception");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getExceptionIdParserRuleCall_13_1_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_CATCHTerminalRuleCall_13_1_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// catchBlock=Block
+protected class PrimaryExpression_CatchBlockAssignment_13_1_2_0_2 extends AssignmentToken {
+
+ public PrimaryExpression_CatchBlockAssignment_13_1_2_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getCatchBlockAssignment_13_1_2_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("catchBlock",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("catchBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getCatchBlockBlockParserRuleCall_13_1_2_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_ExceptionAssignment_13_1_2_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Group_13_1_2_0_3 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1_2_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1_2_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_FinallyBlockAssignment_13_1_2_0_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FINALLY
+protected class PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_0_3_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_0_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_0_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_CatchBlockAssignment_13_1_2_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// finallyBlock=Block
+protected class PrimaryExpression_FinallyBlockAssignment_13_1_2_0_3_1 extends AssignmentToken {
+
+ public PrimaryExpression_FinallyBlockAssignment_13_1_2_0_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFinallyBlockAssignment_13_1_2_0_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("finallyBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("finallyBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_0_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_0_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// FINALLY finallyBlock=Block
+protected class PrimaryExpression_Group_13_1_2_1 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_FinallyBlockAssignment_13_1_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FINALLY
+protected class PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_13_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// finallyBlock=Block
+protected class PrimaryExpression_FinallyBlockAssignment_13_1_2_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_FinallyBlockAssignment_13_1_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFinallyBlockAssignment_13_1_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("finallyBlock",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("finallyBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+// {Switch} (SWITCH exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT)
+protected class PrimaryExpression_Group_14 extends GroupToken {
+
+ public PrimaryExpression_Group_14(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_14();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_14_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Switch}
+protected class PrimaryExpression_SwitchAction_14_0 extends ActionToken {
+
+ public PrimaryExpression_SwitchAction_14_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// SWITCH exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT
+protected class PrimaryExpression_Group_14_1 extends GroupToken {
+
+ public PrimaryExpression_Group_14_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_14_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_OUTDENTTerminalRuleCall_14_1_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// SWITCH
+protected class PrimaryExpression_SWITCHTerminalRuleCall_14_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_SWITCHTerminalRuleCall_14_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getSWITCHTerminalRuleCall_14_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_SwitchAction_14_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp=Expression?
+protected class PrimaryExpression_ExpAssignment_14_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_ExpAssignment_14_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getExpAssignment_14_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_14_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_SWITCHTerminalRuleCall_14_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT
+protected class PrimaryExpression_INDENTTerminalRuleCall_14_1_2 extends UnassignedTextToken {
+
+ public PrimaryExpression_INDENTTerminalRuleCall_14_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getINDENTTerminalRuleCall_14_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ExpAssignment_14_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_SWITCHTerminalRuleCall_14_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// cases+=Case*
+protected class PrimaryExpression_CasesAssignment_14_1_3 extends AssignmentToken {
+
+ public PrimaryExpression_CasesAssignment_14_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getCasesAssignment_14_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("cases",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("cases");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCaseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getCasesCaseParserRuleCall_14_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_CasesAssignment_14_1_3(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PrimaryExpression_INDENTTerminalRuleCall_14_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (ELSE elseBlock=Block)?
+protected class PrimaryExpression_Group_14_1_4 extends GroupToken {
+
+ public PrimaryExpression_Group_14_1_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_14_1_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ElseBlockAssignment_14_1_4_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ELSE
+protected class PrimaryExpression_ELSETerminalRuleCall_14_1_4_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_ELSETerminalRuleCall_14_1_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getELSETerminalRuleCall_14_1_4_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_CasesAssignment_14_1_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_INDENTTerminalRuleCall_14_1_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// elseBlock=Block
+protected class PrimaryExpression_ElseBlockAssignment_14_1_4_1 extends AssignmentToken {
+
+ public PrimaryExpression_ElseBlockAssignment_14_1_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getElseBlockAssignment_14_1_4_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("elseBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("elseBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getElseBlockBlockParserRuleCall_14_1_4_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_ELSETerminalRuleCall_14_1_4_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// OUTDENT
+protected class PrimaryExpression_OUTDENTTerminalRuleCall_14_1_5 extends UnassignedTextToken {
+
+ public PrimaryExpression_OUTDENTTerminalRuleCall_14_1_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getOUTDENTTerminalRuleCall_14_1_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_14_1_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_CasesAssignment_14_1_3(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new PrimaryExpression_INDENTTerminalRuleCall_14_1_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// IdRef
+protected class PrimaryExpression_IdRefParserRuleCall_15 extends RuleCallToken {
+
+ public PrimaryExpression_IdRefParserRuleCall_15(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getIdRefParserRuleCall_15();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule PrimaryExpression ****************/
+
+
+/************ begin Rule Block ****************
+ *
+ * Block:
+ * {Block} INDENT Body? OUTDENT;
+ *
+ **/
+
+// {Block} INDENT Body? OUTDENT
+protected class Block_Group extends GroupToken {
+
+ public Block_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBlockAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_OUTDENTTerminalRuleCall_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockAccess().getBlockAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Block}
+protected class Block_BlockAction_0 extends ActionToken {
+
+ public Block_BlockAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getBlockAccess().getBlockAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// INDENT
+protected class Block_INDENTTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public Block_INDENTTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBlockAccess().getINDENTTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_BlockAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// Body?
+protected class Block_BodyParserRuleCall_2 extends RuleCallToken {
+
+ public Block_BodyParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBlockAccess().getBodyParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Body_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_INDENTTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class Block_OUTDENTTerminalRuleCall_3 extends UnassignedTextToken {
+
+ public Block_OUTDENTTerminalRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBlockAccess().getOUTDENTTerminalRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_BodyParserRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Block_INDENTTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Block ****************/
+
+
+/************ begin Rule Case ****************
+ *
+ * // a switch case (called When in coffeescript)
+ * Case:
+ * LEADING_WHEN whens+=Expression (COMMA whens+=Expression)* then=Block TERMINATOR?;
+ *
+ **/
+
+// LEADING_WHEN whens+=Expression (COMMA whens+=Expression)* then=Block TERMINATOR?
+protected class Case_Group extends GroupToken {
+
+ public Case_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCaseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_ThenAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCaseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// LEADING_WHEN
+protected class Case_LEADING_WHENTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public Case_LEADING_WHENTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCaseAccess().getLEADING_WHENTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// whens+=Expression
+protected class Case_WhensAssignment_1 extends AssignmentToken {
+
+ public Case_WhensAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCaseAccess().getWhensAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("whens",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("whens");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Case_LEADING_WHENTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (COMMA whens+=Expression)*
+protected class Case_Group_2 extends GroupToken {
+
+ public Case_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCaseAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_WhensAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class Case_COMMATerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public Case_COMMATerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCaseAccess().getCOMMATerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Case_WhensAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// whens+=Expression
+protected class Case_WhensAssignment_2_1 extends AssignmentToken {
+
+ public Case_WhensAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCaseAccess().getWhensAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("whens",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("whens");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Case_COMMATerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// then=Block
+protected class Case_ThenAssignment_3 extends AssignmentToken {
+
+ public Case_ThenAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCaseAccess().getThenAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("then",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("then");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCaseAccess().getThenBlockParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Case_Group_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Case_WhensAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule Case ****************/
+
+
+/************ begin Rule IfExp ****************
+ *
+ * IfExp:
+ * blocks+=CondBlock (ELSE blocks+=CondBlock)* (ELSE defaultBlock=Block)?;
+ *
+ **/
+
+// blocks+=CondBlock (ELSE blocks+=CondBlock)* (ELSE defaultBlock=Block)?
+protected class IfExp_Group extends GroupToken {
+
+ public IfExp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfExp_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new IfExp_BlocksAssignment_0(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIfExpRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// blocks+=CondBlock
+protected class IfExp_BlocksAssignment_0 extends AssignmentToken {
+
+ public IfExp_BlocksAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getBlocksAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CondBlock_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("blocks",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("blocks");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCondBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (ELSE blocks+=CondBlock)*
+protected class IfExp_Group_1 extends GroupToken {
+
+ public IfExp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_BlocksAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ELSE
+protected class IfExp_ELSETerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public IfExp_ELSETerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getELSETerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfExp_BlocksAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// blocks+=CondBlock
+protected class IfExp_BlocksAssignment_1_1 extends AssignmentToken {
+
+ public IfExp_BlocksAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getBlocksAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CondBlock_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("blocks",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("blocks");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCondBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IfExp_ELSETerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// (ELSE defaultBlock=Block)?
+protected class IfExp_Group_2 extends GroupToken {
+
+ public IfExp_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_DefaultBlockAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ELSE
+protected class IfExp_ELSETerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public IfExp_ELSETerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getELSETerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfExp_BlocksAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// defaultBlock=Block
+protected class IfExp_DefaultBlockAssignment_2_1 extends AssignmentToken {
+
+ public IfExp_DefaultBlockAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getDefaultBlockAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("defaultBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("defaultBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfExpAccess().getDefaultBlockBlockParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IfExp_ELSETerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule IfExp ****************/
+
+
+/************ begin Rule CondBlock ****************
+ *
+ * // IF can be 'if' or 'unless'
+ * CondBlock:
+ * operator=IF condition=Expression action=Block;
+ *
+ **/
+
+// operator=IF condition=Expression action=Block
+protected class CondBlock_Group extends GroupToken {
+
+ public CondBlock_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CondBlock_ActionAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCondBlockRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// operator=IF
+protected class CondBlock_OperatorAssignment_0 extends AssignmentToken {
+
+ public CondBlock_OperatorAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getOperatorAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCondBlockAccess().getOperatorIFTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCondBlockAccess().getOperatorIFTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// condition=Expression
+protected class CondBlock_ConditionAssignment_1 extends AssignmentToken {
+
+ public CondBlock_ConditionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getConditionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCondBlockAccess().getConditionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CondBlock_OperatorAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// action=Block
+protected class CondBlock_ActionAssignment_2 extends AssignmentToken {
+
+ public CondBlock_ActionAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getActionAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("action",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("action");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCondBlockAccess().getActionBlockParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CondBlock_ConditionAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule CondBlock ****************/
+
+
+/************ begin Rule IdRef ****************
+ *
+ * IdRef:
+ * val=[Id|IDENTIFIER];
+ *
+ **/
+
+// val=[Id|IDENTIFIER]
+protected class IdRef_ValAssignment extends AssignmentToken {
+
+ public IdRef_ValAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIdRefAccess().getValAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("val",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("val");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRefAccess().getValIdCrossReference_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getIdRefAccess().getValIdCrossReference_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule IdRef ****************/
+
+
+/************ begin Rule Id ****************
+ *
+ * Id:
+ * name=IDENTIFIER;
+ *
+ **/
+
+// name=IDENTIFIER
+protected class Id_NameAssignment extends AssignmentToken {
+
+ public Id_NameAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIdAccess().getNameAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIdAccess().getNameIDENTIFIERTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIdAccess().getNameIDENTIFIERTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule Id ****************/
+
+
+/************ begin Rule Property ****************
+ *
+ * Property:
+ * => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)) prop=Id // FIXME: property is actually "Expression Accessor"
+ * | => (IdRef INDEX_START) index=Index INDEX_END;
+ *
+ **/
+
+// => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)) prop=Id // FIXME: property is actually "Expression Accessor"
+// | => (IdRef INDEX_START) index=Index INDEX_END
+protected class Property_Alternatives extends AlternativesToken {
+
+ public Property_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Property_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)) prop=Id
+protected class Property_Group_0 extends GroupToken {
+
+ public Property_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_PropAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT))
+protected class Property_Group_0_0 extends GroupToken {
+
+ public Property_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Group_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)
+protected class Property_Group_0_0_0 extends GroupToken {
+
+ public Property_Group_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_AccessorAssignment_0_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef
+protected class Property_IdRefParserRuleCall_0_0_0_0 extends RuleCallToken {
+
+ public Property_IdRefParserRuleCall_0_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getIdRefParserRuleCall_0_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)
+protected class Property_AccessorAssignment_0_0_0_1 extends AssignmentToken {
+
+ public Property_AccessorAssignment_0_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getAccessorAssignment_0_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_IdRefParserRuleCall_0_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessor");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyAccess().getAccessorDOTTerminalRuleCall_0_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getAccessorDOTTerminalRuleCall_0_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyAccess().getAccessorDOUBLE_COLONTerminalRuleCall_0_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getAccessorDOUBLE_COLONTerminalRuleCall_0_0_0_1_0_1();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1_0_2(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1_0_2();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// prop=Id
+protected class Property_PropAssignment_0_1 extends AssignmentToken {
+
+ public Property_PropAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getPropAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("prop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("prop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getPropIdParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Property_Group_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => (IdRef INDEX_START) index=Index INDEX_END
+protected class Property_Group_1 extends GroupToken {
+
+ public Property_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_INDEX_ENDTerminalRuleCall_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (IdRef INDEX_START)
+protected class Property_Group_1_0 extends GroupToken {
+
+ public Property_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef INDEX_START
+protected class Property_Group_1_0_0 extends GroupToken {
+
+ public Property_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_INDEX_STARTTerminalRuleCall_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef
+protected class Property_IdRefParserRuleCall_1_0_0_0 extends RuleCallToken {
+
+ public Property_IdRefParserRuleCall_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getIdRefParserRuleCall_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// INDEX_START
+protected class Property_INDEX_STARTTerminalRuleCall_1_0_0_1 extends UnassignedTextToken {
+
+ public Property_INDEX_STARTTerminalRuleCall_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getINDEX_STARTTerminalRuleCall_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_IdRefParserRuleCall_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// index=Index
+protected class Property_IndexAssignment_1_1 extends AssignmentToken {
+
+ public Property_IndexAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getIndexAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("index",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("index");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIndexRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getIndexIndexParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Property_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDEX_END
+protected class Property_INDEX_ENDTerminalRuleCall_1_2 extends UnassignedTextToken {
+
+ public Property_INDEX_ENDTerminalRuleCall_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getINDEX_ENDTerminalRuleCall_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_IndexAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Property ****************/
+
+
+/************ begin Rule Variable ****************
+ *
+ * Variable:
+ * Id | (AT_SIGIL | THIS DOT) Id (DOT props+=Id)* | Property;
+ *
+ **/
+
+// Id | (AT_SIGIL | THIS DOT) Id (DOT props+=Id)* | Property
+protected class Variable_Alternatives extends AlternativesToken {
+
+ public Variable_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getVariableAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_IdParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Variable_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Variable_PropertyParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Id
+protected class Variable_IdParserRuleCall_0 extends RuleCallToken {
+
+ public Variable_IdParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getIdParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (AT_SIGIL | THIS DOT) Id (DOT props+=Id)*
+protected class Variable_Group_1 extends GroupToken {
+
+ public Variable_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getVariableAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Group_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Variable_IdParserRuleCall_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AT_SIGIL | THIS DOT
+protected class Variable_Alternatives_1_0 extends AlternativesToken {
+
+ public Variable_Alternatives_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getVariableAccess().getAlternatives_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_AT_SIGILTerminalRuleCall_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// AT_SIGIL
+protected class Variable_AT_SIGILTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public Variable_AT_SIGILTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getAT_SIGILTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+
+// Id
+protected class Variable_IdParserRuleCall_1_1 extends RuleCallToken {
+
+ public Variable_IdParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getIdParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Alternatives_1_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// (DOT props+=Id)*
+protected class Variable_Group_1_2 extends GroupToken {
+
+ public Variable_Group_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getVariableAccess().getGroup_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_PropsAssignment_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// DOT
+protected class Variable_DOTTerminalRuleCall_1_2_0 extends UnassignedTextToken {
+
+ public Variable_DOTTerminalRuleCall_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getDOTTerminalRuleCall_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Group_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Variable_IdParserRuleCall_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// props+=Id
+protected class Variable_PropsAssignment_1_2_1 extends AssignmentToken {
+
+ public Variable_PropsAssignment_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getVariableAccess().getPropsAssignment_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("props",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("props");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getVariableAccess().getPropsIdParserRuleCall_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Variable_DOTTerminalRuleCall_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// Property
+protected class Variable_PropertyParserRuleCall_2 extends RuleCallToken {
+
+ public Variable_PropertyParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getPropertyParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Property_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Variable ****************/
+
+
+/************ begin Rule AssignableArray ****************
+ *
+ * / ** An array that can be on the left-hand side of an assignment * / AssignableArray:
+ * LBRACKET AssignableArgList RBRACKET;
+ *
+ **/
+
+// => LBRACKET AssignableArgList RBRACKET
+protected class AssignableArray_Group extends GroupToken {
+
+ public AssignableArray_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_RBRACKETTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => LBRACKET
+protected class AssignableArray_LBRACKETTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public AssignableArray_LBRACKETTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getLBRACKETTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// AssignableArgList
+protected class AssignableArray_AssignableArgListParserRuleCall_1 extends RuleCallToken {
+
+ public AssignableArray_AssignableArgListParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getAssignableArgListParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(AssignableArgList_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_LBRACKETTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// RBRACKET
+protected class AssignableArray_RBRACKETTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public AssignableArray_RBRACKETTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getRBRACKETTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_AssignableArgListParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule AssignableArray ****************/
+
+
+/************ begin Rule AssignableArgList ****************
+ *
+ * AssignableArgList:
+ * args+=AssignableArg (COMMA args+=AssignableArg)*;
+ *
+ **/
+
+// args+=AssignableArg (COMMA args+=AssignableArg)*
+protected class AssignableArgList_Group extends GroupToken {
+
+ public AssignableArgList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignableArgList_ArgsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// args+=AssignableArg
+protected class AssignableArgList_ArgsAssignment_0 extends AssignmentToken {
+
+ public AssignableArgList_ArgsAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getArgsAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA args+=AssignableArg)*
+protected class AssignableArgList_Group_1 extends GroupToken {
+
+ public AssignableArgList_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_ArgsAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class AssignableArgList_COMMATerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public AssignableArgList_COMMATerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getCOMMATerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignableArgList_ArgsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args+=AssignableArg
+protected class AssignableArgList_ArgsAssignment_1_1 extends AssignmentToken {
+
+ public AssignableArgList_ArgsAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getArgsAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignableArgList_COMMATerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AssignableArgList ****************/
+
+
+/************ begin Rule AssignableArg ****************
+ *
+ * AssignableArg:
+ * arg=Assignable splat?=ELLIPSIS?;
+ *
+ **/
+
+// arg=Assignable splat?=ELLIPSIS?
+protected class AssignableArg_Group extends GroupToken {
+
+ public AssignableArg_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArgAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_SplatAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignableArg_ArgAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// arg=Assignable
+protected class AssignableArg_ArgAssignment_0 extends AssignmentToken {
+
+ public AssignableArg_ArgAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgAccess().getArgAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("arg",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("arg");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignableArgAccess().getArgAssignableParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// splat?=ELLIPSIS?
+protected class AssignableArg_SplatAssignment_1 extends AssignmentToken {
+
+ public AssignableArg_SplatAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgAccess().getSplatAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_ArgAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("splat",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("splat");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssignableArgAccess().getSplatELLIPSISTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAssignableArgAccess().getSplatELLIPSISTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule AssignableArg ****************/
+
+
+/************ begin Rule Assignable ****************
+ *
+ * Assignable:
+ * Variable | Dictionary | AssignableArray;
+ *
+ **/
+
+// Variable | Dictionary | AssignableArray
+protected class Assignable_Alternatives extends AlternativesToken {
+
+ public Assignable_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignable_VariableParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Assignable_DictionaryParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Assignable_AssignableArrayParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Variable
+protected class Assignable_VariableParserRuleCall_0 extends RuleCallToken {
+
+ public Assignable_VariableParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getVariableParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Variable_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Dictionary
+protected class Assignable_DictionaryParserRuleCall_1 extends RuleCallToken {
+
+ public Assignable_DictionaryParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getDictionaryParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Dictionary_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// AssignableArray
+protected class Assignable_AssignableArrayParserRuleCall_2 extends RuleCallToken {
+
+ public Assignable_AssignableArrayParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getAssignableArrayParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(AssignableArray_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Assignable ****************/
+
+
+/************ begin Rule Arg ****************
+ *
+ * / *
+ * * FIXME: handle more complex assignables
+ * * / Arg:
+ * exp=Expression splat?=ELLIPSIS?;
+ *
+ **/
+
+// exp=Expression splat?=ELLIPSIS?
+protected class Arg_Group extends GroupToken {
+
+ public Arg_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_SplatAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Arg_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp=Expression
+protected class Arg_ExpAssignment_0 extends AssignmentToken {
+
+ public Arg_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgAccess().getExpExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// splat?=ELLIPSIS?
+protected class Arg_SplatAssignment_1 extends AssignmentToken {
+
+ public Arg_SplatAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgAccess().getSplatAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_ExpAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("splat",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("splat");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getArgAccess().getSplatELLIPSISTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getArgAccess().getSplatELLIPSISTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule Arg ****************/
+
+
+/************ begin Rule ArgLine ****************
+ *
+ * ArgLine:
+ * head=Arg (COMMA tail+=Arg)* COMMA?;
+ *
+ **/
+
+// head=Arg (COMMA tail+=Arg)* COMMA?
+protected class ArgLine_Group extends GroupToken {
+
+ public ArgLine_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgLineRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// head=Arg
+protected class ArgLine_HeadAssignment_0 extends AssignmentToken {
+
+ public ArgLine_HeadAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getHeadAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("head",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("head");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgLineAccess().getHeadArgParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA tail+=Arg)*
+protected class ArgLine_Group_1 extends GroupToken {
+
+ public ArgLine_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_TailAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class ArgLine_COMMATerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public ArgLine_COMMATerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getCOMMATerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tail+=Arg
+protected class ArgLine_TailAssignment_1_1 extends AssignmentToken {
+
+ public ArgLine_TailAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getTailAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tail",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tail");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgLineAccess().getTailArgParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ArgLine_COMMATerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ArgLine ****************/
+
+
+/************ begin Rule ExplicitArgList ****************
+ *
+ * ExplicitArgList:
+ * lines+=ArgLine (TERMINATOR lines+=ArgLine | INDENT lines+=ArgLine OUTDENT)*;
+ *
+ **/
+
+// lines+=ArgLine (TERMINATOR lines+=ArgLine | INDENT lines+=ArgLine OUTDENT)*
+protected class ExplicitArgList_Group extends GroupToken {
+
+ public ExplicitArgList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getExplicitArgListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// lines+=ArgLine
+protected class ExplicitArgList_LinesAssignment_0 extends AssignmentToken {
+
+ public ExplicitArgList_LinesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getLinesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (TERMINATOR lines+=ArgLine | INDENT lines+=ArgLine OUTDENT)*
+protected class ExplicitArgList_Alternatives_1 extends AlternativesToken {
+
+ public ExplicitArgList_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR lines+=ArgLine
+protected class ExplicitArgList_Group_1_0 extends GroupToken {
+
+ public ExplicitArgList_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_LinesAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class ExplicitArgList_TERMINATORTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public ExplicitArgList_TERMINATORTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getTERMINATORTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=ArgLine
+protected class ExplicitArgList_LinesAssignment_1_0_1 extends AssignmentToken {
+
+ public ExplicitArgList_LinesAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getLinesAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitArgList_TERMINATORTerminalRuleCall_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// INDENT lines+=ArgLine OUTDENT
+protected class ExplicitArgList_Group_1_1 extends GroupToken {
+
+ public ExplicitArgList_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class ExplicitArgList_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ExplicitArgList_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=ArgLine
+protected class ExplicitArgList_LinesAssignment_1_1_1 extends AssignmentToken {
+
+ public ExplicitArgList_LinesAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getLinesAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitArgList_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class ExplicitArgList_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public ExplicitArgList_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_LinesAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule ExplicitArgList ****************/
+
+
+/************ begin Rule ArgList ****************
+ *
+ * ArgList:
+ * {ArgList} (dummy=ExplicitArgList | INDENT dummy=ExplicitArgList OUTDENT)?;
+ *
+ **/
+
+// {ArgList} (dummy=ExplicitArgList | INDENT dummy=ExplicitArgList OUTDENT)?
+protected class ArgList_Group extends GroupToken {
+
+ public ArgList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgList_ArgListAction_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ArgList}
+protected class ArgList_ArgListAction_0 extends ActionToken {
+
+ public ArgList_ArgListAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getArgListAccess().getArgListAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// (dummy=ExplicitArgList | INDENT dummy=ExplicitArgList OUTDENT)?
+protected class ArgList_Alternatives_1 extends AlternativesToken {
+
+ public ArgList_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getArgListAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_DummyAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgList_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitArgList
+protected class ArgList_DummyAssignment_1_0 extends AssignmentToken {
+
+ public ArgList_DummyAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgListAccess().getDummyAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ArgList_ArgListAction_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT dummy=ExplicitArgList OUTDENT
+protected class ArgList_Group_1_1 extends GroupToken {
+
+ public ArgList_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgListAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class ArgList_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ArgList_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArgListAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_ArgListAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitArgList
+protected class ArgList_DummyAssignment_1_1_1 extends AssignmentToken {
+
+ public ArgList_DummyAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgListAccess().getDummyAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ArgList_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class ArgList_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public ArgList_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArgListAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_DummyAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule ArgList ****************/
+
+
+/************ begin Rule Array ****************
+ *
+ * Array:
+ * LBRACKET ArgList RBRACKET;
+ *
+ **/
+
+// => LBRACKET ArgList RBRACKET
+protected class Array_Group extends GroupToken {
+
+ public Array_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArrayAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_RBRACKETTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => LBRACKET
+protected class Array_LBRACKETTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public Array_LBRACKETTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArrayAccess().getLBRACKETTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// ArgList
+protected class Array_ArgListParserRuleCall_1 extends RuleCallToken {
+
+ public Array_ArgListParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArrayAccess().getArgListParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(ArgList_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_LBRACKETTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// RBRACKET
+protected class Array_RBRACKETTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public Array_RBRACKETTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArrayAccess().getRBRACKETTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_ArgListParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Array ****************/
+
+
+/************ begin Rule Dictionary ****************
+ *
+ * // Object in coffeescript
+ * Dictionary:
+ * LCURLY DictItems RCURLY;
+ *
+ **/
+
+// => LCURLY DictItems RCURLY
+protected class Dictionary_Group extends GroupToken {
+
+ public Dictionary_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_RCURLYTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => LCURLY
+protected class Dictionary_LCURLYTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public Dictionary_LCURLYTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getLCURLYTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// DictItems
+protected class Dictionary_DictItemsParserRuleCall_1 extends RuleCallToken {
+
+ public Dictionary_DictItemsParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getDictItemsParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(DictItems_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_LCURLYTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// RCURLY
+protected class Dictionary_RCURLYTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public Dictionary_RCURLYTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getRCURLYTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_DictItemsParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Dictionary ****************/
+
+
+/************ begin Rule DictItems ****************
+ *
+ * DictItems:
+ * {DictItems} (dummy=ExplicitDictItems | INDENT dummy=ExplicitDictItems OUTDENT)?;
+ *
+ **/
+
+// {DictItems} (dummy=ExplicitDictItems | INDENT dummy=ExplicitDictItems OUTDENT)?
+protected class DictItems_Group extends GroupToken {
+
+ public DictItems_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItems_DictItemsAction_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {DictItems}
+protected class DictItems_DictItemsAction_0 extends ActionToken {
+
+ public DictItems_DictItemsAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getDictItemsAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// (dummy=ExplicitDictItems | INDENT dummy=ExplicitDictItems OUTDENT)?
+protected class DictItems_Alternatives_1 extends AlternativesToken {
+
+ public DictItems_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_DummyAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItems_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitDictItems
+protected class DictItems_DummyAssignment_1_0 extends AssignmentToken {
+
+ public DictItems_DummyAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getDummyAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitDictItemsRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItems_DictItemsAction_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT dummy=ExplicitDictItems OUTDENT
+protected class DictItems_Group_1_1 extends GroupToken {
+
+ public DictItems_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class DictItems_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public DictItems_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_DictItemsAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitDictItems
+protected class DictItems_DummyAssignment_1_1_1 extends AssignmentToken {
+
+ public DictItems_DummyAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getDummyAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitDictItemsRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItems_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class DictItems_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public DictItems_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_DummyAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule DictItems ****************/
+
+
+/************ begin Rule ExplicitDictItems ****************
+ *
+ * ExplicitDictItems:
+ * lines+=DictLine (TERMINATOR lines+=DictLine | INDENT lines+=DictLine OUTDENT)*;
+ *
+ **/
+
+// lines+=DictLine (TERMINATOR lines+=DictLine | INDENT lines+=DictLine OUTDENT)*
+protected class ExplicitDictItems_Group extends GroupToken {
+
+ public ExplicitDictItems_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getExplicitDictItemsRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// lines+=DictLine
+protected class ExplicitDictItems_LinesAssignment_0 extends AssignmentToken {
+
+ public ExplicitDictItems_LinesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getLinesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (TERMINATOR lines+=DictLine | INDENT lines+=DictLine OUTDENT)*
+protected class ExplicitDictItems_Alternatives_1 extends AlternativesToken {
+
+ public ExplicitDictItems_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR lines+=DictLine
+protected class ExplicitDictItems_Group_1_0 extends GroupToken {
+
+ public ExplicitDictItems_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_LinesAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class ExplicitDictItems_TERMINATORTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public ExplicitDictItems_TERMINATORTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getTERMINATORTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=DictLine
+protected class ExplicitDictItems_LinesAssignment_1_0_1 extends AssignmentToken {
+
+ public ExplicitDictItems_LinesAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getLinesAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitDictItems_TERMINATORTerminalRuleCall_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// INDENT lines+=DictLine OUTDENT
+protected class ExplicitDictItems_Group_1_1 extends GroupToken {
+
+ public ExplicitDictItems_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class ExplicitDictItems_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ExplicitDictItems_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=DictLine
+protected class ExplicitDictItems_LinesAssignment_1_1_1 extends AssignmentToken {
+
+ public ExplicitDictItems_LinesAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getLinesAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitDictItems_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class ExplicitDictItems_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public ExplicitDictItems_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_LinesAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule ExplicitDictItems ****************/
+
+
+/************ begin Rule DictLine ****************
+ *
+ * DictLine:
+ * head=DictItem (COMMA tail+=DictItem)* COMMA?;
+ *
+ **/
+
+// head=DictItem (COMMA tail+=DictItem)* COMMA?
+protected class DictLine_Group extends GroupToken {
+
+ public DictLine_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictLineRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// head=DictItem
+protected class DictLine_HeadAssignment_0 extends AssignmentToken {
+
+ public DictLine_HeadAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getHeadAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("head",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("head");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictItemRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictLineAccess().getHeadDictItemParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA tail+=DictItem)*
+protected class DictLine_Group_1 extends GroupToken {
+
+ public DictLine_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_TailAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class DictLine_COMMATerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public DictLine_COMMATerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getCOMMATerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tail+=DictItem
+protected class DictLine_TailAssignment_1_1 extends AssignmentToken {
+
+ public DictLine_TailAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getTailAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tail",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tail");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictItemRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictLineAccess().getTailDictItemParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictLine_COMMATerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule DictLine ****************/
+
+
+/************ begin Rule DictItem ****************
+ *
+ * DictItem:
+ * {DictItem} key=DictKey (COLON (value=Expression | INDENT value=Expression OUTDENT))?;
+ *
+ **/
+
+// {DictItem} key=DictKey (COLON (value=Expression | INDENT value=Expression OUTDENT))?
+protected class DictItem_Group extends GroupToken {
+
+ public DictItem_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItem_KeyAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemAccess().getDictItemAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {DictItem}
+protected class DictItem_DictItemAction_0 extends ActionToken {
+
+ public DictItem_DictItemAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getDictItemAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// key=DictKey
+protected class DictItem_KeyAssignment_1 extends AssignmentToken {
+
+ public DictItem_KeyAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getKeyAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictKey_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("key",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("key");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictKeyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemAccess().getKeyDictKeyParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItem_DictItemAction_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (COLON (value=Expression | INDENT value=Expression OUTDENT))?
+protected class DictItem_Group_2 extends GroupToken {
+
+ public DictItem_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Alternatives_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COLON
+protected class DictItem_COLONTerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public DictItem_COLONTerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getCOLONTerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_KeyAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=Expression | INDENT value=Expression OUTDENT
+protected class DictItem_Alternatives_2_1 extends AlternativesToken {
+
+ public DictItem_Alternatives_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getAlternatives_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_ValueAssignment_2_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItem_Group_2_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=Expression
+protected class DictItem_ValueAssignment_2_1_0 extends AssignmentToken {
+
+ public DictItem_ValueAssignment_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getValueAssignment_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItem_COLONTerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT value=Expression OUTDENT
+protected class DictItem_Group_2_1_1 extends GroupToken {
+
+ public DictItem_Group_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getGroup_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_OUTDENTTerminalRuleCall_2_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class DictItem_INDENTTerminalRuleCall_2_1_1_0 extends UnassignedTextToken {
+
+ public DictItem_INDENTTerminalRuleCall_2_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getINDENTTerminalRuleCall_2_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_COLONTerminalRuleCall_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=Expression
+protected class DictItem_ValueAssignment_2_1_1_1 extends AssignmentToken {
+
+ public DictItem_ValueAssignment_2_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getValueAssignment_2_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItem_INDENTTerminalRuleCall_2_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class DictItem_OUTDENTTerminalRuleCall_2_1_1_2 extends UnassignedTextToken {
+
+ public DictItem_OUTDENTTerminalRuleCall_2_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getOUTDENTTerminalRuleCall_2_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_ValueAssignment_2_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+
+/************ end Rule DictItem ****************/
+
+
+/************ begin Rule DictKey ****************
+ *
+ * DictKey:
+ * Literal | Id;
+ *
+ **/
+
+// Literal | Id
+protected class DictKey_Alternatives extends AlternativesToken {
+
+ public DictKey_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getDictKeyAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictKey_LiteralParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictKey_IdParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Literal
+protected class DictKey_LiteralParserRuleCall_0 extends RuleCallToken {
+
+ public DictKey_LiteralParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictKeyAccess().getLiteralParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Literal_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Literal_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Id
+protected class DictKey_IdParserRuleCall_1 extends RuleCallToken {
+
+ public DictKey_IdParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictKeyAccess().getIdParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule DictKey ****************/
+
+
+/************ begin Rule Lambda ****************
+ *
+ * // Code in coffeescript
+ * Lambda:
+ * (PARAM_START (params+=Param (COMMA params+=Param)*)? PARAM_END)? (FUNC_ARROW | BOUND_FUNC_ARROW) body=Block;
+ *
+ **/
+
+// (PARAM_START (params+=Param (COMMA params+=Param)*)? PARAM_END)? (FUNC_ARROW | BOUND_FUNC_ARROW) body=Block
+protected class Lambda_Group extends GroupToken {
+
+ public Lambda_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_BodyAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLambdaRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// (PARAM_START (params+=Param (COMMA params+=Param)*)? PARAM_END)?
+protected class Lambda_Group_0 extends GroupToken {
+
+ public Lambda_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_PARAM_ENDTerminalRuleCall_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// PARAM_START
+protected class Lambda_PARAM_STARTTerminalRuleCall_0_0 extends UnassignedTextToken {
+
+ public Lambda_PARAM_STARTTerminalRuleCall_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getPARAM_STARTTerminalRuleCall_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// (params+=Param (COMMA params+=Param)*)?
+protected class Lambda_Group_0_1 extends GroupToken {
+
+ public Lambda_Group_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Lambda_ParamsAssignment_0_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// params+=Param
+protected class Lambda_ParamsAssignment_0_1_0 extends AssignmentToken {
+
+ public Lambda_ParamsAssignment_0_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getParamsAssignment_0_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("params",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("params");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getParamRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Lambda_PARAM_STARTTerminalRuleCall_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (COMMA params+=Param)*
+protected class Lambda_Group_0_1_1 extends GroupToken {
+
+ public Lambda_Group_0_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup_0_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_ParamsAssignment_0_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class Lambda_COMMATerminalRuleCall_0_1_1_0 extends UnassignedTextToken {
+
+ public Lambda_COMMATerminalRuleCall_0_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getCOMMATerminalRuleCall_0_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Lambda_ParamsAssignment_0_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// params+=Param
+protected class Lambda_ParamsAssignment_0_1_1_1 extends AssignmentToken {
+
+ public Lambda_ParamsAssignment_0_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getParamsAssignment_0_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("params",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("params");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getParamRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Lambda_COMMATerminalRuleCall_0_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// PARAM_END
+protected class Lambda_PARAM_ENDTerminalRuleCall_0_2 extends UnassignedTextToken {
+
+ public Lambda_PARAM_ENDTerminalRuleCall_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getPARAM_ENDTerminalRuleCall_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Lambda_PARAM_STARTTerminalRuleCall_0_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// FUNC_ARROW | BOUND_FUNC_ARROW
+protected class Lambda_Alternatives_1 extends AlternativesToken {
+
+ public Lambda_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_FUNC_ARROWTerminalRuleCall_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FUNC_ARROW
+protected class Lambda_FUNC_ARROWTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Lambda_FUNC_ARROWTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getFUNC_ARROWTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+
+// body=Block
+protected class Lambda_BodyAssignment_2 extends AssignmentToken {
+
+ public Lambda_BodyAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getBodyAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLambdaAccess().getBodyBlockParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Lambda_Alternatives_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule Lambda ****************/
+
+
+/************ begin Rule Param ****************
+ *
+ * Param:
+ * (Id | Array | Dictionary | ThisProperty) (splat?=ELLIPSIS | EQUAL defaultValue=Expression)?;
+ *
+ **/
+
+// (Id | Array | Dictionary | ThisProperty) (splat?=ELLIPSIS | EQUAL defaultValue=Expression)?
+protected class Param_Group extends GroupToken {
+
+ public Param_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParamAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Param_Alternatives_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Id | Array | Dictionary | ThisProperty
+protected class Param_Alternatives_0 extends AlternativesToken {
+
+ public Param_Alternatives_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParamAccess().getAlternatives_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_IdParserRuleCall_0_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Param_ArrayParserRuleCall_0_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Param_DictionaryParserRuleCall_0_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Param_ThisPropertyParserRuleCall_0_3(lastRuleCallOrigin, this, 3, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// Id
+protected class Param_IdParserRuleCall_0_0 extends RuleCallToken {
+
+ public Param_IdParserRuleCall_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getIdParserRuleCall_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Array
+protected class Param_ArrayParserRuleCall_0_1 extends RuleCallToken {
+
+ public Param_ArrayParserRuleCall_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getArrayParserRuleCall_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Array_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Dictionary
+protected class Param_DictionaryParserRuleCall_0_2 extends RuleCallToken {
+
+ public Param_DictionaryParserRuleCall_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getDictionaryParserRuleCall_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Dictionary_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisProperty
+protected class Param_ThisPropertyParserRuleCall_0_3 extends RuleCallToken {
+
+ public Param_ThisPropertyParserRuleCall_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getThisPropertyParserRuleCall_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisProperty_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+// (splat?=ELLIPSIS | EQUAL defaultValue=Expression)?
+protected class Param_Alternatives_1 extends AlternativesToken {
+
+ public Param_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParamAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_SplatAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Param_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// splat?=ELLIPSIS
+protected class Param_SplatAssignment_1_0 extends AssignmentToken {
+
+ public Param_SplatAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParamAccess().getSplatAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Alternatives_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("splat",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("splat");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getParamAccess().getSplatELLIPSISTerminalRuleCall_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getParamAccess().getSplatELLIPSISTerminalRuleCall_1_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// EQUAL defaultValue=Expression
+protected class Param_Group_1_1 extends GroupToken {
+
+ public Param_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParamAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_DefaultValueAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EQUAL
+protected class Param_EQUALTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public Param_EQUALTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getEQUALTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Alternatives_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// defaultValue=Expression
+protected class Param_DefaultValueAssignment_1_1_1 extends AssignmentToken {
+
+ public Param_DefaultValueAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParamAccess().getDefaultValueAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("defaultValue",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("defaultValue");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParamAccess().getDefaultValueExpressionParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Param_EQUALTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule Param ****************/
+
+
+/************ begin Rule NumberLiteral ****************
+ *
+ * NumberLiteral:
+ * {NumberLiteral} NUMBER;
+ *
+ **/
+
+// {NumberLiteral} NUMBER
+protected class NumberLiteral_Group extends GroupToken {
+
+ public NumberLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNumberLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NumberLiteral_NUMBERTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {NumberLiteral}
+protected class NumberLiteral_NumberLiteralAction_0 extends ActionToken {
+
+ public NumberLiteral_NumberLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// NUMBER
+protected class NumberLiteral_NUMBERTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public NumberLiteral_NUMBERTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNumberLiteralAccess().getNUMBERTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NumberLiteral_NumberLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule NumberLiteral ****************/
+
+
+/************ begin Rule StringLiteral ****************
+ *
+ * StringLiteral:
+ * {StringLiteral} STRING;
+ *
+ **/
+
+// {StringLiteral} STRING
+protected class StringLiteral_Group extends GroupToken {
+
+ public StringLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStringLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_STRINGTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {StringLiteral}
+protected class StringLiteral_StringLiteralAction_0 extends ActionToken {
+
+ public StringLiteral_StringLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getStringLiteralAccess().getStringLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// STRING
+protected class StringLiteral_STRINGTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public StringLiteral_STRINGTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStringLiteralAccess().getSTRINGTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_StringLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule StringLiteral ****************/
+
+
+/************ begin Rule BoolLiteral ****************
+ *
+ * BoolLiteral:
+ * {BoolLiteral} BOOL;
+ *
+ **/
+
+// {BoolLiteral} BOOL
+protected class BoolLiteral_Group extends GroupToken {
+
+ public BoolLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBoolLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BoolLiteral_BOOLTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {BoolLiteral}
+protected class BoolLiteral_BoolLiteralAction_0 extends ActionToken {
+
+ public BoolLiteral_BoolLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// BOOL
+protected class BoolLiteral_BOOLTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public BoolLiteral_BOOLTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBoolLiteralAccess().getBOOLTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BoolLiteral_BoolLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule BoolLiteral ****************/
+
+
+/************ begin Rule JSLiteral ****************
+ *
+ * JSLiteral:
+ * {JSLiteral} JS;
+ *
+ **/
+
+// {JSLiteral} JS
+protected class JSLiteral_Group extends GroupToken {
+
+ public JSLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getJSLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new JSLiteral_JSTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {JSLiteral}
+protected class JSLiteral_JSLiteralAction_0 extends ActionToken {
+
+ public JSLiteral_JSLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getJSLiteralAccess().getJSLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// JS
+protected class JSLiteral_JSTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public JSLiteral_JSTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getJSLiteralAccess().getJSTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new JSLiteral_JSLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule JSLiteral ****************/
+
+
+/************ begin Rule RegexLiteral ****************
+ *
+ * RegexLiteral:
+ * {RegexLiteral} REGEX;
+ *
+ **/
+
+// {RegexLiteral} REGEX
+protected class RegexLiteral_Group extends GroupToken {
+
+ public RegexLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRegexLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RegexLiteral_REGEXTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {RegexLiteral}
+protected class RegexLiteral_RegexLiteralAction_0 extends ActionToken {
+
+ public RegexLiteral_RegexLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// REGEX
+protected class RegexLiteral_REGEXTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public RegexLiteral_REGEXTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRegexLiteralAccess().getREGEXTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RegexLiteral_RegexLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule RegexLiteral ****************/
+
+
+/************ begin Rule Literal ****************
+ *
+ * Literal:
+ * NumberLiteral | StringLiteral | BoolLiteral | JSLiteral | RegexLiteral;
+ *
+ **/
+
+// NumberLiteral | StringLiteral | BoolLiteral | JSLiteral | RegexLiteral
+protected class Literal_Alternatives extends AlternativesToken {
+
+ public Literal_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Literal_NumberLiteralParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Literal_StringLiteralParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Literal_BoolLiteralParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Literal_JSLiteralParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new Literal_RegexLiteralParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// NumberLiteral
+protected class Literal_NumberLiteralParserRuleCall_0 extends RuleCallToken {
+
+ public Literal_NumberLiteralParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getNumberLiteralParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NumberLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NumberLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// StringLiteral
+protected class Literal_StringLiteralParserRuleCall_1 extends RuleCallToken {
+
+ public Literal_StringLiteralParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(StringLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// BoolLiteral
+protected class Literal_BoolLiteralParserRuleCall_2 extends RuleCallToken {
+
+ public Literal_BoolLiteralParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getBoolLiteralParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BoolLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(BoolLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// JSLiteral
+protected class Literal_JSLiteralParserRuleCall_3 extends RuleCallToken {
+
+ public Literal_JSLiteralParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getJSLiteralParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new JSLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(JSLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// RegexLiteral
+protected class Literal_RegexLiteralParserRuleCall_4 extends RuleCallToken {
+
+ public Literal_RegexLiteralParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getRegexLiteralParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RegexLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(RegexLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Literal ****************/
+
+
+/************ begin Rule Parenthetical ****************
+ *
+ * Parenthetical:
+ * => (LPAREN INDENT) content=Body OUTDENT RPAREN | LPAREN content=Body RPAREN;
+ *
+ **/
+
+// => (LPAREN INDENT) content=Body OUTDENT RPAREN | LPAREN content=Body RPAREN
+protected class Parenthetical_Alternatives extends AlternativesToken {
+
+ public Parenthetical_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Parenthetical_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParentheticalRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (LPAREN INDENT) content=Body OUTDENT RPAREN
+protected class Parenthetical_Group_0 extends GroupToken {
+
+ public Parenthetical_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_RPARENTerminalRuleCall_0_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (LPAREN INDENT)
+protected class Parenthetical_Group_0_0 extends GroupToken {
+
+ public Parenthetical_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_Group_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LPAREN INDENT
+protected class Parenthetical_Group_0_0_0 extends GroupToken {
+
+ public Parenthetical_Group_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_INDENTTerminalRuleCall_0_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LPAREN
+protected class Parenthetical_LPARENTerminalRuleCall_0_0_0_0 extends UnassignedTextToken {
+
+ public Parenthetical_LPARENTerminalRuleCall_0_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_0_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// INDENT
+protected class Parenthetical_INDENTTerminalRuleCall_0_0_0_1 extends UnassignedTextToken {
+
+ public Parenthetical_INDENTTerminalRuleCall_0_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getINDENTTerminalRuleCall_0_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_LPARENTerminalRuleCall_0_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// content=Body
+protected class Parenthetical_ContentAssignment_0_1 extends AssignmentToken {
+
+ public Parenthetical_ContentAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getContentAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("content",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("content");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Parenthetical_Group_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class Parenthetical_OUTDENTTerminalRuleCall_0_2 extends UnassignedTextToken {
+
+ public Parenthetical_OUTDENTTerminalRuleCall_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getOUTDENTTerminalRuleCall_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_ContentAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// RPAREN
+protected class Parenthetical_RPARENTerminalRuleCall_0_3 extends UnassignedTextToken {
+
+ public Parenthetical_RPARENTerminalRuleCall_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_OUTDENTTerminalRuleCall_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// => LPAREN content=Body RPAREN
+protected class Parenthetical_Group_1 extends GroupToken {
+
+ public Parenthetical_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_RPARENTerminalRuleCall_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => LPAREN
+protected class Parenthetical_LPARENTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Parenthetical_LPARENTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// content=Body
+protected class Parenthetical_ContentAssignment_1_1 extends AssignmentToken {
+
+ public Parenthetical_ContentAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getContentAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("content",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("content");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Parenthetical_LPARENTerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// RPAREN
+protected class Parenthetical_RPARENTerminalRuleCall_1_2 extends UnassignedTextToken {
+
+ public Parenthetical_RPARENTerminalRuleCall_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_ContentAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Parenthetical ****************/
+
+}
diff --git a/csep/src-gen/csep/parser/antlr/CoffeeScriptAntlrTokenFileProvider.java b/csep/src-gen/csep/parser/antlr/CoffeeScriptAntlrTokenFileProvider.java
new file mode 100644
index 0000000..279d35a
--- /dev/null
+++ b/csep/src-gen/csep/parser/antlr/CoffeeScriptAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package csep.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class CoffeeScriptAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("csep/parser/antlr/internal/InternalCoffeeScript.tokens");
+ }
+}
diff --git a/csep/src-gen/csep/parser/antlr/CoffeeScriptParser.java b/csep/src-gen/csep/parser/antlr/CoffeeScriptParser.java
new file mode 100644
index 0000000..7aee203
--- /dev/null
+++ b/csep/src-gen/csep/parser/antlr/CoffeeScriptParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package csep.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import csep.services.CoffeeScriptGrammarAccess;
+
+public class CoffeeScriptParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private CoffeeScriptGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected csep.parser.antlr.internal.InternalCoffeeScriptParser createParser(XtextTokenStream stream) {
+ return new csep.parser.antlr.internal.InternalCoffeeScriptParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Root";
+ }
+
+ public CoffeeScriptGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(CoffeeScriptGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g b/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g
new file mode 100644
index 0000000..f79de7b
--- /dev/null
+++ b/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g
@@ -0,0 +1,5557 @@
+/*
+* generated by Xtext
+*/
+grammar InternalCoffeeScript;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package csep.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package csep.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import csep.services.CoffeeScriptGrammarAccess;
+
+}
+
+@parser::members {
+
+ private CoffeeScriptGrammarAccess grammarAccess;
+
+ public InternalCoffeeScriptParser(TokenStream input, CoffeeScriptGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Root";
+ }
+
+ @Override
+ protected CoffeeScriptGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleRoot
+entryRuleRoot returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRootRule()); }
+ iv_ruleRoot=ruleRoot
+ { $current=$iv_ruleRoot.current; }
+ EOF
+;
+
+// Rule Root
+ruleRoot returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getRootAccess().getBodyParserRuleCall_0());
+ }
+ this_Body_0=ruleBody
+ {
+ $current = $this_Body_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(
+ {
+ newCompositeNode(grammarAccess.getRootAccess().getBlockParserRuleCall_1_0());
+ }
+ this_Block_1=ruleBlock
+ {
+ $current = $this_Block_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_TERMINATOR_2=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_2, grammarAccess.getRootAccess().getTERMINATORTerminalRuleCall_1_1());
+ }
+))?
+;
+
+
+
+
+
+// Entry rule entryRuleBody
+entryRuleBody returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBodyRule()); }
+ iv_ruleBody=ruleBody
+ { $current=$iv_ruleBody.current; }
+ EOF
+;
+
+// Rule Body
+ruleBody returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getBodyAccess().getLinesLineParserRuleCall_0_0());
+ }
+ lv_lines_0_0=ruleLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBodyRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_0_0,
+ "Line");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_TERMINATOR_1=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_1, grammarAccess.getBodyAccess().getTERMINATORTerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getBodyAccess().getLinesLineParserRuleCall_1_1_0());
+ }
+ lv_lines_2_0=ruleLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBodyRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_2_0,
+ "Line");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)*)
+;
+
+
+
+
+
+// Entry rule entryRuleLine
+entryRuleLine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLineRule()); }
+ iv_ruleLine=ruleLine
+ { $current=$iv_ruleLine.current; }
+ EOF
+;
+
+// Rule Line
+ruleLine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLineAccess().getStmtParserRuleCall_0());
+ }
+ this_Stmt_0=ruleStmt
+ {
+ $current = $this_Stmt_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLineAccess().getExpressionParserRuleCall_1());
+ }
+ this_Expression_1=ruleExpression
+ {
+ $current = $this_Expression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStmt
+entryRuleStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStmtRule()); }
+ iv_ruleStmt=ruleStmt
+ { $current=$iv_ruleStmt.current; }
+ EOF
+;
+
+// Rule Stmt
+ruleStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getReturnStmtParserRuleCall_0());
+ }
+ this_ReturnStmt_0=ruleReturnStmt
+ {
+ $current = $this_ReturnStmt_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getThrowStmtParserRuleCall_1());
+ }
+ this_ThrowStmt_1=ruleThrowStmt
+ {
+ $current = $this_ThrowStmt_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((((
+(
+ruleId
+)
+) RULE_EQUAL 'require'
+))=>
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getRequireStmtParserRuleCall_2());
+ }
+ this_RequireStmt_2=ruleRequireStmt
+ {
+ $current = $this_RequireStmt_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getCommentParserRuleCall_3());
+ }
+ this_Comment_3=ruleComment
+ {
+ $current = $this_Comment_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getClassDeclarationParserRuleCall_4());
+ }
+ this_ClassDeclaration_4=ruleClassDeclaration
+ {
+ $current = $this_ClassDeclaration_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(
+(
+ lv_statement_5_0=RULE_STATEMENT
+ {
+ newLeafNode(lv_statement_5_0, grammarAccess.getStmtAccess().getStatementSTATEMENTTerminalRuleCall_5_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStmtRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "statement",
+ lv_statement_5_0,
+ "STATEMENT");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleComment
+entryRuleComment returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCommentRule()); }
+ iv_ruleComment=ruleComment
+ { $current=$iv_ruleComment.current; }
+ EOF
+;
+
+// Rule Comment
+ruleComment returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_comment_0_0=RULE_HERECOMMENT
+ {
+ newLeafNode(lv_comment_0_0, grammarAccess.getCommentAccess().getCommentHERECOMMENTTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCommentRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "comment",
+ lv_comment_0_0,
+ "HERECOMMENT");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleRequireStmt
+entryRuleRequireStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRequireStmtRule()); }
+ iv_ruleRequireStmt=ruleRequireStmt
+ { $current=$iv_ruleRequireStmt.current; }
+ EOF
+;
+
+// Rule RequireStmt
+ruleRequireStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((((
+(
+ruleId
+)
+) RULE_EQUAL 'require'
+))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getRequireStmtAccess().getImportedNamespaceIdParserRuleCall_0_0_0_0());
+ }
+ lv_importedNamespace_0_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRequireStmtRule());
+ }
+ set(
+ $current,
+ "importedNamespace",
+ lv_importedNamespace_0_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_EQUAL_1=RULE_EQUAL
+ {
+ newLeafNode(this_EQUAL_1, grammarAccess.getRequireStmtAccess().getEQUALTerminalRuleCall_0_0_1());
+ }
+ otherlv_2='require'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getRequireStmtAccess().getRequireKeyword_0_0_2());
+ }
+))this_CALL_START_3=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_3, grammarAccess.getRequireStmtAccess().getCALL_STARTTerminalRuleCall_1());
+ }
+(
+(
+ lv_uri_4_0=RULE_STRING
+ {
+ newLeafNode(lv_uri_4_0, grammarAccess.getRequireStmtAccess().getUriSTRINGTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRequireStmtRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "uri",
+ lv_uri_4_0,
+ "STRING");
+ }
+
+)
+)this_CALL_END_5=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_5, grammarAccess.getRequireStmtAccess().getCALL_ENDTerminalRuleCall_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleReturnStmt
+entryRuleReturnStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getReturnStmtRule()); }
+ iv_ruleReturnStmt=ruleReturnStmt
+ { $current=$iv_ruleReturnStmt.current; }
+ EOF
+;
+
+// Rule ReturnStmt
+ruleReturnStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getReturnStmtAccess().getReturnStmtAction_0(),
+ $current);
+ }
+)this_RETURN_1=RULE_RETURN
+ {
+ newLeafNode(this_RETURN_1, grammarAccess.getReturnStmtAccess().getRETURNTerminalRuleCall_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getReturnStmtAccess().getExpressionExpressionParserRuleCall_2_0());
+ }
+ lv_expression_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getReturnStmtRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(this_POST_IF_3=RULE_POST_IF
+ {
+ newLeafNode(this_POST_IF_3, grammarAccess.getReturnStmtAccess().getPOST_IFTerminalRuleCall_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getReturnStmtAccess().getConditionExpressionParserRuleCall_3_1_0());
+ }
+ lv_condition_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getReturnStmtRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleThrowStmt
+entryRuleThrowStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getThrowStmtRule()); }
+ iv_ruleThrowStmt=ruleThrowStmt
+ { $current=$iv_ruleThrowStmt.current; }
+ EOF
+;
+
+// Rule ThrowStmt
+ruleThrowStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_THROW_0=RULE_THROW
+ {
+ newLeafNode(this_THROW_0, grammarAccess.getThrowStmtAccess().getTHROWTerminalRuleCall_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getThrowStmtAccess().getExpExpressionParserRuleCall_1_0());
+ }
+ lv_exp_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getThrowStmtRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSuperClass
+entryRuleSuperClass returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSuperClassRule()); }
+ iv_ruleSuperClass=ruleSuperClass
+ { $current=$iv_ruleSuperClass.current; }
+ EOF
+;
+
+// Rule SuperClass
+ruleSuperClass returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getSuperClassAccess().getIdRefParserRuleCall_0());
+ }
+ this_IdRef_0=ruleIdRef
+ {
+ $current = $this_IdRef_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuperClassAccess().getPropertyParserRuleCall_1());
+ }
+ this_Property_1=ruleProperty
+ {
+ $current = $this_Property_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleClassDeclaration
+entryRuleClassDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
+ iv_ruleClassDeclaration=ruleClassDeclaration
+ { $current=$iv_ruleClassDeclaration.current; }
+ EOF
+;
+
+// Rule ClassDeclaration
+ruleClassDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0(),
+ $current);
+ }
+)this_CLASS_1=RULE_CLASS
+ {
+ newLeafNode(this_CLASS_1, grammarAccess.getClassDeclarationAccess().getCLASSTerminalRuleCall_1());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_0());
+ }
+ lv_body_2_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_2_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_EXTENDS_3=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_3, grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_0());
+ }
+ lv_extend_4_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_4_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0());
+ }
+ lv_body_5_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_5_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+ |((
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdParserRuleCall_2_2_0_0_0());
+ }
+ lv_name_6_1=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_6_1,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+ | {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getNamePropertyParserRuleCall_2_2_0_0_1());
+ }
+ lv_name_6_2=ruleProperty {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_6_2,
+ "Property");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+
+)
+)(this_EXTENDS_7=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_7, grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_2_1_1_0());
+ }
+ lv_extend_8_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_8_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_2_2_0());
+ }
+ lv_body_9_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_9_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignedClassDeclaration
+entryRuleAssignedClassDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignedClassDeclarationRule()); }
+ iv_ruleAssignedClassDeclaration=ruleAssignedClassDeclaration
+ { $current=$iv_ruleAssignedClassDeclaration.current; }
+ EOF
+;
+
+// Rule AssignedClassDeclaration
+ruleAssignedClassDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0(),
+ $current);
+ }
+)this_CLASS_1=RULE_CLASS
+ {
+ newLeafNode(this_CLASS_1, grammarAccess.getAssignedClassDeclarationAccess().getCLASSTerminalRuleCall_1());
+ }
+((this_EXTENDS_2=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_2, grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_0_1_0());
+ }
+ lv_extend_3_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_3_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_2_0());
+ }
+ lv_body_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getNameIdParserRuleCall_2_1_0_0_0());
+ }
+ lv_name_5_1=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_5_1,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+ | {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getNamePropertyParserRuleCall_2_1_0_0_1());
+ }
+ lv_name_5_2=ruleProperty {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_5_2,
+ "Property");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+
+)
+)(this_EXTENDS_6=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_6, grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_1_0());
+ }
+ lv_extend_7_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_7_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0());
+ }
+ lv_body_8_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_8_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExpressionRule()); }
+ iv_ruleExpression=ruleExpression
+ { $current=$iv_ruleExpression.current; }
+ EOF
+;
+
+// Rule Expression
+ruleExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getExpressionAccess().getPostfixParserRuleCall());
+ }
+ this_Postfix_0=rulePostfix
+ {
+ $current = $this_Postfix_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRulePostfix
+entryRulePostfix returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPostfixRule()); }
+ iv_rulePostfix=rulePostfix
+ { $current=$iv_rulePostfix.current; }
+ EOF
+;
+
+// Rule Postfix
+rulePostfix returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getAssignmentParserRuleCall_0());
+ }
+ this_Assignment_0=ruleAssignment
+ {
+ $current = $this_Assignment_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((( RULE_POST_IF)=>this_POST_IF_1=RULE_POST_IF
+ {
+ newLeafNode(this_POST_IF_1, grammarAccess.getPostfixAccess().getPOST_IFTerminalRuleCall_1_0_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getConditionExpressionParserRuleCall_1_0_2_0());
+ }
+ lv_condition_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((( RULE_FOR)=>this_FOR_4=RULE_FOR
+ {
+ newLeafNode(this_FOR_4, grammarAccess.getPostfixAccess().getFORTerminalRuleCall_1_1_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getForDummyAction_1_1_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getBodyForBodyParserRuleCall_1_1_2_0());
+ }
+ lv_body_6_0=ruleForBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_6_0,
+ "ForBody");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((( RULE_WHILE)=>this_WHILE_7=RULE_WHILE
+ {
+ newLeafNode(this_WHILE_7, grammarAccess.getPostfixAccess().getWHILETerminalRuleCall_1_2_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_2_2_0());
+ }
+ lv_body_9_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_9_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_10=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_10, grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_2_3_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_2_3_1_0());
+ }
+ lv_when_11_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_11_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((( RULE_UNTIL)=>this_UNTIL_12=RULE_UNTIL
+ {
+ newLeafNode(this_UNTIL_12, grammarAccess.getPostfixAccess().getUNTILTerminalRuleCall_1_3_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_3_2_0());
+ }
+ lv_body_14_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_14_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_15=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_15, grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_3_3_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_3_3_1_0());
+ }
+ lv_when_16_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_16_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?))?)
+;
+
+
+
+
+
+// Entry rule entryRuleForBody
+entryRuleForBody returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForBodyRule()); }
+ iv_ruleForBody=ruleForBody
+ { $current=$iv_ruleForBody.current; }
+ EOF
+;
+
+// Rule ForBody
+ruleForBody returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((this_OWN_0=RULE_OWN
+ {
+ newLeafNode(this_OWN_0, grammarAccess.getForBodyAccess().getOWNTerminalRuleCall_0());
+ }
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_1_0());
+ }
+ lv_indexes_1_0=ruleForValue {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForBodyRule());
+ }
+ add(
+ $current,
+ "indexes",
+ lv_indexes_1_0,
+ "ForValue");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_2=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_2, grammarAccess.getForBodyAccess().getCOMMATerminalRuleCall_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_2_1_0());
+ }
+ lv_indexes_3_0=ruleForValue {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForBodyRule());
+ }
+ add(
+ $current,
+ "indexes",
+ lv_indexes_3_0,
+ "ForValue");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(
+(
+ {
+ newCompositeNode(grammarAccess.getForBodyAccess().getSourceForSourceParserRuleCall_3_0());
+ }
+ lv_source_4_0=ruleForSource {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForBodyRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_4_0,
+ "ForSource");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleForValue
+entryRuleForValue returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForValueRule()); }
+ iv_ruleForValue=ruleForValue
+ { $current=$iv_ruleForValue.current; }
+ EOF
+;
+
+// Rule ForValue
+ruleForValue returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getForValueAccess().getIdParserRuleCall());
+ }
+ this_Id_0=ruleId
+ {
+ $current = $this_Id_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRuleForSource
+entryRuleForSource returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForSourceRule()); }
+ iv_ruleForSource=ruleForSource
+ { $current=$iv_ruleForSource.current; }
+ EOF
+;
+
+// Rule ForSource
+ruleForSource returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getForSourceAccess().getForSourceAction_0(),
+ $current);
+ }
+)(((( RULE_FOROF)=>this_FOROF_1=RULE_FOROF
+ {
+ newLeafNode(this_FOROF_1, grammarAccess.getForSourceAccess().getFOROFTerminalRuleCall_1_0_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_0_1_0());
+ }
+ lv_source_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_3=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_3, grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_0_2_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_0_2_1_0());
+ }
+ lv_when_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((( RULE_FORIN)=>this_FORIN_5=RULE_FORIN
+ {
+ newLeafNode(this_FORIN_5, grammarAccess.getForSourceAccess().getFORINTerminalRuleCall_1_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_1_1_0());
+ }
+ lv_source_6_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_6_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(((( RULE_WHEN)=>this_WHEN_7=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_7, grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_0_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_0_1_0());
+ }
+ lv_when_8_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_8_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_BY)=>this_BY_9=RULE_BY
+ {
+ newLeafNode(this_BY_9, grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_0_2_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_0_2_1_0());
+ }
+ lv_by_10_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "by",
+ lv_by_10_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((( RULE_BY)=>this_BY_11=RULE_BY
+ {
+ newLeafNode(this_BY_11, grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_1_1_0());
+ }
+ lv_by_12_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "by",
+ lv_by_12_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_13=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_13, grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_1_2_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_1_2_1_0());
+ }
+ lv_when_14_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_14_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?))?)))
+;
+
+
+
+
+
+// Entry rule entryRuleRange
+entryRuleRange returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRangeRule()); }
+ iv_ruleRange=ruleRange
+ { $current=$iv_ruleRange.current; }
+ EOF
+;
+
+// Rule Range
+ruleRange returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((( RULE_LBRACKET(
+(
+ruleExpression
+)
+)( RULE_DOT_DOT
+ | RULE_ELLIPSIS)))=>(this_LBRACKET_0=RULE_LBRACKET
+ {
+ newLeafNode(this_LBRACKET_0, grammarAccess.getRangeAccess().getLBRACKETTerminalRuleCall_0_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getRangeAccess().getStartExpressionParserRuleCall_0_0_1_0());
+ }
+ lv_start_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRangeRule());
+ }
+ set(
+ $current,
+ "start",
+ lv_start_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_DOT_DOT_2=RULE_DOT_DOT
+ {
+ newLeafNode(this_DOT_DOT_2, grammarAccess.getRangeAccess().getDOT_DOTTerminalRuleCall_0_0_2_0());
+ }
+
+ |this_ELLIPSIS_3=RULE_ELLIPSIS
+ {
+ newLeafNode(this_ELLIPSIS_3, grammarAccess.getRangeAccess().getELLIPSISTerminalRuleCall_0_0_2_1());
+ }
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getRangeAccess().getEndExpressionParserRuleCall_1_0());
+ }
+ lv_end_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRangeRule());
+ }
+ set(
+ $current,
+ "end",
+ lv_end_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_RBRACKET_5=RULE_RBRACKET
+ {
+ newLeafNode(this_RBRACKET_5, grammarAccess.getRangeAccess().getRBRACKETTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignment
+entryRuleAssignment returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignmentRule()); }
+ iv_ruleAssignment=ruleAssignment
+ { $current=$iv_ruleAssignment.current; }
+ EOF
+;
+
+// Rule Assignment
+ruleAssignment returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((((
+(
+ruleAssignable
+)
+)(
+(
+(
+RULE_EQUAL
+
+ | RULE_COMPOUND_ASSIGN
+
+)
+
+)
+)))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignmentAccess().getLeftAssignableParserRuleCall_0_0_0_0_0());
+ }
+ lv_left_0_0=ruleAssignable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignmentRule());
+ }
+ set(
+ $current,
+ "left",
+ lv_left_0_0,
+ "Assignable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+(
+ lv_operator_1_1=RULE_EQUAL
+ {
+ newLeafNode(lv_operator_1_1, grammarAccess.getAssignmentAccess().getOperatorEQUALTerminalRuleCall_0_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAssignmentRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_1_1,
+ "EQUAL");
+ }
+
+ | lv_operator_1_2=RULE_COMPOUND_ASSIGN
+ {
+ newLeafNode(lv_operator_1_2, grammarAccess.getAssignmentAccess().getOperatorCOMPOUND_ASSIGNTerminalRuleCall_0_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAssignmentRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_1_2,
+ "COMPOUND_ASSIGN");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignmentAccess().getRightAssignedParserRuleCall_0_1_0());
+ }
+ lv_right_2_0=ruleAssigned {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignmentRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_2_0,
+ "Assigned");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |
+ {
+ newCompositeNode(grammarAccess.getAssignmentAccess().getLogicOpParserRuleCall_1());
+ }
+ this_LogicOp_3=ruleLogicOp
+ {
+ $current = $this_LogicOp_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssigned
+entryRuleAssigned returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignedRule()); }
+ iv_ruleAssigned=ruleAssigned
+ { $current=$iv_ruleAssigned.current; }
+ EOF
+;
+
+// Rule Assigned
+ruleAssigned returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedAccess().getExpressionParserRuleCall_0());
+ }
+ this_Expression_0=ruleExpression
+ {
+ $current = $this_Expression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(this_INDENT_1=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_1, grammarAccess.getAssignedAccess().getINDENTTerminalRuleCall_1_0());
+ }
+
+ {
+ newCompositeNode(grammarAccess.getAssignedAccess().getExpressionParserRuleCall_1_1());
+ }
+ this_Expression_2=ruleExpression
+ {
+ $current = $this_Expression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+this_OUTDENT_3=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_3, grammarAccess.getAssignedAccess().getOUTDENTTerminalRuleCall_1_2());
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getAssignedAccess().getAssignedClassDeclarationParserRuleCall_2());
+ }
+ this_AssignedClassDeclaration_4=ruleAssignedClassDeclaration
+ {
+ $current = $this_AssignedClassDeclaration_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLogicOp
+entryRuleLogicOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLogicOpRule()); }
+ iv_ruleLogicOp=ruleLogicOp
+ { $current=$iv_ruleLogicOp.current; }
+ EOF
+;
+
+// Rule LogicOp
+ruleLogicOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLogicOpAccess().getCompareOpParserRuleCall_0());
+ }
+ this_CompareOp_0=ruleCompareOp
+ {
+ $current = $this_CompareOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_LOGIC
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_LOGIC
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getLogicOpAccess().getOperatorLOGICTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLogicOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "LOGIC");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getLogicOpAccess().getRightCompareOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleCompareOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLogicOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "CompareOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleCompareOp
+entryRuleCompareOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCompareOpRule()); }
+ iv_ruleCompareOp=ruleCompareOp
+ { $current=$iv_ruleCompareOp.current; }
+ EOF
+;
+
+// Rule CompareOp
+ruleCompareOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getCompareOpAccess().getRelationOpParserRuleCall_0());
+ }
+ this_RelationOp_0=ruleRelationOp
+ {
+ $current = $this_RelationOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_COMPARE
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_COMPARE
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getCompareOpAccess().getOperatorCOMPARETerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompareOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "COMPARE");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getCompareOpAccess().getRightRelationOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleRelationOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompareOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "RelationOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleRelationOp
+entryRuleRelationOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRelationOpRule()); }
+ iv_ruleRelationOp=ruleRelationOp
+ { $current=$iv_ruleRelationOp.current; }
+ EOF
+;
+
+// Rule RelationOp
+ruleRelationOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getRelationOpAccess().getShiftOpParserRuleCall_0());
+ }
+ this_ShiftOp_0=ruleShiftOp
+ {
+ $current = $this_ShiftOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_RELATION
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_RELATION
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getRelationOpAccess().getOperatorRELATIONTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRelationOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "RELATION");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getRelationOpAccess().getRightShiftOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleShiftOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRelationOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "ShiftOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleShiftOp
+entryRuleShiftOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getShiftOpRule()); }
+ iv_ruleShiftOp=ruleShiftOp
+ { $current=$iv_ruleShiftOp.current; }
+ EOF
+;
+
+// Rule ShiftOp
+ruleShiftOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getShiftOpAccess().getAdditiveOpParserRuleCall_0());
+ }
+ this_AdditiveOp_0=ruleAdditiveOp
+ {
+ $current = $this_AdditiveOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_SHIFT
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_SHIFT
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getShiftOpAccess().getOperatorSHIFTTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShiftOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "SHIFT");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getShiftOpAccess().getRightAdditiveOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleAdditiveOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getShiftOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "AdditiveOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleAdditiveOp
+entryRuleAdditiveOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAdditiveOpRule()); }
+ iv_ruleAdditiveOp=ruleAdditiveOp
+ { $current=$iv_ruleAdditiveOp.current; }
+ EOF
+;
+
+// Rule AdditiveOp
+ruleAdditiveOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getAdditiveOpAccess().getMathOpParserRuleCall_0());
+ }
+ this_MathOp_0=ruleMathOp
+ {
+ $current = $this_MathOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+(
+RULE_PLUS
+
+ | RULE_MINUS
+
+)
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+(
+ lv_operator_2_1=RULE_PLUS
+ {
+ newLeafNode(lv_operator_2_1, grammarAccess.getAdditiveOpAccess().getOperatorPLUSTerminalRuleCall_1_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAdditiveOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_1,
+ "PLUS");
+ }
+
+ | lv_operator_2_2=RULE_MINUS
+ {
+ newLeafNode(lv_operator_2_2, grammarAccess.getAdditiveOpAccess().getOperatorMINUSTerminalRuleCall_1_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAdditiveOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_2,
+ "MINUS");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getAdditiveOpAccess().getRightMathOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleMathOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAdditiveOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "MathOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleMathOp
+entryRuleMathOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getMathOpRule()); }
+ iv_ruleMathOp=ruleMathOp
+ { $current=$iv_ruleMathOp.current; }
+ EOF
+;
+
+// Rule MathOp
+ruleMathOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getMathOpAccess().getUnaryOpParserRuleCall_0());
+ }
+ this_UnaryOp_0=ruleUnaryOp
+ {
+ $current = $this_UnaryOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_MATH
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_MATH
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getMathOpAccess().getOperatorMATHTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getMathOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "MATH");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getMathOpAccess().getRightUnaryOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleUnaryOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getMathOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "UnaryOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleUnaryOp
+entryRuleUnaryOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getUnaryOpRule()); }
+ iv_ruleUnaryOp=ruleUnaryOp
+ { $current=$iv_ruleUnaryOp.current; }
+ EOF
+;
+
+// Rule UnaryOp
+ruleUnaryOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((this_UNARY_0=RULE_UNARY
+ {
+ newLeafNode(this_UNARY_0, grammarAccess.getUnaryOpAccess().getUNARYTerminalRuleCall_0_0_0());
+ }
+
+ |this_PLUS_1=RULE_PLUS
+ {
+ newLeafNode(this_PLUS_1, grammarAccess.getUnaryOpAccess().getPLUSTerminalRuleCall_0_0_1());
+ }
+
+ |this_MINUS_2=RULE_MINUS
+ {
+ newLeafNode(this_MINUS_2, grammarAccess.getUnaryOpAccess().getMINUSTerminalRuleCall_0_0_2());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getUnaryOpAccess().getExpressionParserRuleCall_0_1());
+ }
+ this_Expression_3=ruleExpression
+ {
+ $current = $this_Expression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |((this_PLUS_PLUS_4=RULE_PLUS_PLUS
+ {
+ newLeafNode(this_PLUS_PLUS_4, grammarAccess.getUnaryOpAccess().getPLUS_PLUSTerminalRuleCall_1_0_0());
+ }
+
+ |this_MINUS_MINUS_5=RULE_MINUS_MINUS
+ {
+ newLeafNode(this_MINUS_MINUS_5, grammarAccess.getUnaryOpAccess().getMINUS_MINUSTerminalRuleCall_1_0_1());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getUnaryOpAccess().getVariableParserRuleCall_1_1());
+ }
+ this_Variable_6=ruleVariable
+ {
+ $current = $this_Variable_6.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(
+ {
+ newCompositeNode(grammarAccess.getUnaryOpAccess().getApplicationParserRuleCall_2_0());
+ }
+ this_Application_7=ruleApplication
+ {
+ $current = $this_Application_7.current;
+ afterParserOrEnumRuleCall();
+ }
+(this_QUESTION_8=RULE_QUESTION
+ {
+ newLeafNode(this_QUESTION_8, grammarAccess.getUnaryOpAccess().getQUESTIONTerminalRuleCall_2_1());
+ }
+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleApplication
+entryRuleApplication returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getApplicationRule()); }
+ iv_ruleApplication=ruleApplication
+ { $current=$iv_ruleApplication.current; }
+ EOF
+;
+
+// Rule Application
+ruleApplication returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getApplicationAccess().getSuperCallAction_0_0(),
+ $current);
+ }
+)(this_SUPER_1=RULE_SUPER
+ {
+ newLeafNode(this_SUPER_1, grammarAccess.getApplicationAccess().getSUPERTerminalRuleCall_0_1_0());
+ }
+(this_CALL_START_2=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_2, grammarAccess.getApplicationAccess().getCALL_STARTTerminalRuleCall_0_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getApplicationAccess().getArgsArgListParserRuleCall_0_1_1_1_0());
+ }
+ lv_args_3_0=ruleArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getApplicationRule());
+ }
+ set(
+ $current,
+ "args",
+ lv_args_3_0,
+ "ArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_CALL_END_4=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_4, grammarAccess.getApplicationAccess().getCALL_ENDTerminalRuleCall_0_1_1_2());
+ }
+)?))
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getApplicationAccess().getValuePrimaryExpressionParserRuleCall_1_0_0());
+ }
+ lv_value_5_0=rulePrimaryExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getApplicationRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_5_0,
+ "PrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getApplicationAccess().getFeaturesFeatureCallParserRuleCall_1_1_0());
+ }
+ lv_features_6_0=ruleFeatureCall {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getApplicationRule());
+ }
+ add(
+ $current,
+ "features",
+ lv_features_6_0,
+ "FeatureCall");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*))
+;
+
+
+
+
+
+// Entry rule entryRuleFeatureCall
+entryRuleFeatureCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFeatureCallRule()); }
+ iv_ruleFeatureCall=ruleFeatureCall
+ { $current=$iv_ruleFeatureCall.current; }
+ EOF
+;
+
+// Rule FeatureCall
+ruleFeatureCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getFeatureCallAccess().getFunctionCallParserRuleCall_0());
+ }
+ this_FunctionCall_0=ruleFunctionCall
+ {
+ $current = $this_FunctionCall_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getFeatureCallAccess().getPropertyAccessParserRuleCall_1());
+ }
+ this_PropertyAccess_1=rulePropertyAccess
+ {
+ $current = $this_PropertyAccess_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFunctionCall
+entryRuleFunctionCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFunctionCallRule()); }
+ iv_ruleFunctionCall=ruleFunctionCall
+ { $current=$iv_ruleFunctionCall.current; }
+ EOF
+;
+
+// Rule FunctionCall
+ruleFunctionCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getFunctionCallAccess().getFunctionCallAction_0(),
+ $current);
+ }
+)(this_FUNC_EXIST_1=RULE_FUNC_EXIST
+ {
+ newLeafNode(this_FUNC_EXIST_1, grammarAccess.getFunctionCallAccess().getFUNC_EXISTTerminalRuleCall_1());
+ }
+)?this_CALL_START_2=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_2, grammarAccess.getFunctionCallAccess().getCALL_STARTTerminalRuleCall_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFunctionCallAccess().getArgsArgListParserRuleCall_3_0());
+ }
+ lv_args_3_0=ruleArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFunctionCallRule());
+ }
+ set(
+ $current,
+ "args",
+ lv_args_3_0,
+ "ArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_CALL_END_4=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_4, grammarAccess.getFunctionCallAccess().getCALL_ENDTerminalRuleCall_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePropertyAccess
+entryRulePropertyAccess returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyAccessRule()); }
+ iv_rulePropertyAccess=rulePropertyAccess
+ { $current=$iv_rulePropertyAccess.current; }
+ EOF
+;
+
+// Rule PropertyAccess
+rulePropertyAccess returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccessAccess().getNamedPropertyAccessParserRuleCall_0());
+ }
+ this_NamedPropertyAccess_0=ruleNamedPropertyAccess
+ {
+ $current = $this_NamedPropertyAccess_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPropertyAccessAccess().getIndexedPropertyAccessParserRuleCall_1());
+ }
+ this_IndexedPropertyAccess_1=ruleIndexedPropertyAccess
+ {
+ $current = $this_IndexedPropertyAccess_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleThisProperty
+entryRuleThisProperty returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getThisPropertyRule()); }
+ iv_ruleThisProperty=ruleThisProperty
+ { $current=$iv_ruleThisProperty.current; }
+ EOF
+;
+
+// Rule ThisProperty
+ruleThisProperty returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_AT_SIGIL_0=RULE_AT_SIGIL
+ {
+ newLeafNode(this_AT_SIGIL_0, grammarAccess.getThisPropertyAccess().getAT_SIGILTerminalRuleCall_0());
+ }
+
+ {
+ newCompositeNode(grammarAccess.getThisPropertyAccess().getIdParserRuleCall_1());
+ }
+ this_Id_1=ruleId
+ {
+ $current = $this_Id_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNamedPropertyAccess
+entryRuleNamedPropertyAccess returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNamedPropertyAccessRule()); }
+ iv_ruleNamedPropertyAccess=ruleNamedPropertyAccess
+ { $current=$iv_ruleNamedPropertyAccess.current; }
+ EOF
+;
+
+// Rule NamedPropertyAccess
+ruleNamedPropertyAccess returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+(
+ lv_accessor_0_1=RULE_DOT
+ {
+ newLeafNode(lv_accessor_0_1, grammarAccess.getNamedPropertyAccessAccess().getAccessorDOTTerminalRuleCall_0_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedPropertyAccessRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_0_1,
+ "DOT");
+ }
+
+ | lv_accessor_0_2=RULE_QUESTION_DOT
+ {
+ newLeafNode(lv_accessor_0_2, grammarAccess.getNamedPropertyAccessAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedPropertyAccessRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_0_2,
+ "QUESTION_DOT");
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_0_1_0());
+ }
+ lv_name_1_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNamedPropertyAccessRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((
+(
+ lv_accessor_2_0=RULE_DOUBLE_COLON
+ {
+ newLeafNode(lv_accessor_2_0, grammarAccess.getNamedPropertyAccessAccess().getAccessorDOUBLE_COLONTerminalRuleCall_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedPropertyAccessRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_2_0,
+ "DOUBLE_COLON");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_1_1_0());
+ }
+ lv_name_3_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNamedPropertyAccessRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_3_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleIndexedPropertyAccess
+entryRuleIndexedPropertyAccess returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIndexedPropertyAccessRule()); }
+ iv_ruleIndexedPropertyAccess=ruleIndexedPropertyAccess
+ { $current=$iv_ruleIndexedPropertyAccess.current; }
+ EOF
+;
+
+// Rule IndexedPropertyAccess
+ruleIndexedPropertyAccess returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_INDEX_START_0=RULE_INDEX_START
+ {
+ newLeafNode(this_INDEX_START_0, grammarAccess.getIndexedPropertyAccessAccess().getINDEX_STARTTerminalRuleCall_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexedPropertyAccessAccess().getIndexIndexParserRuleCall_1_0());
+ }
+ lv_index_1_0=ruleIndex {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexedPropertyAccessRule());
+ }
+ set(
+ $current,
+ "index",
+ lv_index_1_0,
+ "Index");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_INDEX_END_2=RULE_INDEX_END
+ {
+ newLeafNode(this_INDEX_END_2, grammarAccess.getIndexedPropertyAccessAccess().getINDEX_ENDTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleIndex
+entryRuleIndex returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIndexRule()); }
+ iv_ruleIndex=ruleIndex
+ { $current=$iv_ruleIndex.current; }
+ EOF
+;
+
+// Rule Index
+ruleIndex returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((
+(
+(
+RULE_DOT_DOT
+
+ | RULE_ELLIPSIS
+
+)
+
+)
+)=>
+(
+(
+ lv_dots_0_1=RULE_DOT_DOT
+ {
+ newLeafNode(lv_dots_0_1, grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_0_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_0_1,
+ "DOT_DOT");
+ }
+
+ | lv_dots_0_2=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_dots_0_2, grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_0_0_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_0_2,
+ "ELLIPSIS");
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_0_1_0());
+ }
+ lv_end_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "end",
+ lv_end_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((((
+(
+ruleExpression
+)
+)(
+(
+(
+RULE_DOT_DOT
+
+ | RULE_ELLIPSIS
+
+)
+
+)
+)))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getStartExpressionParserRuleCall_1_0_0_0_0());
+ }
+ lv_start_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "start",
+ lv_start_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+(
+ lv_dots_3_1=RULE_DOT_DOT
+ {
+ newLeafNode(lv_dots_3_1, grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_1_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_3_1,
+ "DOT_DOT");
+ }
+
+ | lv_dots_3_2=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_dots_3_2, grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_1_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_3_2,
+ "ELLIPSIS");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_1_1_0());
+ }
+ lv_end_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "end",
+ lv_end_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getExpExpressionParserRuleCall_2_0());
+ }
+ lv_exp_5_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRulePrimaryExpression
+entryRulePrimaryExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPrimaryExpressionRule()); }
+ iv_rulePrimaryExpression=rulePrimaryExpression
+ { $current=$iv_rulePrimaryExpression.current; }
+ EOF
+;
+
+// Rule PrimaryExpression
+rulePrimaryExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getIfExpParserRuleCall_0());
+ }
+ this_IfExp_0=ruleIfExp
+ {
+ $current = $this_IfExp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getParentheticalParserRuleCall_1());
+ }
+ this_Parenthetical_1=ruleParenthetical
+ {
+ $current = $this_Parenthetical_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLiteralParserRuleCall_2());
+ }
+ this_Literal_2=ruleLiteral
+ {
+ $current = $this_Literal_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((( RULE_LBRACKET(
+(
+ruleExpression
+)
+)( RULE_DOT_DOT
+ | RULE_ELLIPSIS)))=>
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getRangeParserRuleCall_3());
+ }
+ this_Range_3=ruleRange
+ {
+ $current = $this_Range_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LBRACKET)=>
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArrayParserRuleCall_4());
+ }
+ this_Array_4=ruleArray
+ {
+ $current = $this_Array_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LCURLY)=>
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getDictionaryParserRuleCall_5());
+ }
+ this_Dictionary_5=ruleDictionary
+ {
+ $current = $this_Dictionary_5.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLambdaParserRuleCall_6());
+ }
+ this_Lambda_6=ruleLambda
+ {
+ $current = $this_Lambda_6.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getThisPropertyParserRuleCall_7());
+ }
+ this_ThisProperty_7=ruleThisProperty
+ {
+ $current = $this_ThisProperty_7.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0(),
+ $current);
+ }
+)this_THIS_9=RULE_THIS
+ {
+ newLeafNode(this_THIS_9, grammarAccess.getPrimaryExpressionAccess().getTHISTerminalRuleCall_8_1());
+ }
+)
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getForAction_9_0(),
+ $current);
+ }
+)(this_FOR_11=RULE_FOR
+ {
+ newLeafNode(this_FOR_11, grammarAccess.getPrimaryExpressionAccess().getFORTerminalRuleCall_9_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLoopForBodyParserRuleCall_9_1_1_0());
+ }
+ lv_loop_12_0=ruleForBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "loop",
+ lv_loop_12_0,
+ "ForBody");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_9_1_2_0());
+ }
+ lv_body_13_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_13_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0(),
+ $current);
+ }
+)(this_WHILE_15=RULE_WHILE
+ {
+ newLeafNode(this_WHILE_15, grammarAccess.getPrimaryExpressionAccess().getWHILETerminalRuleCall_10_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_10_1_1_0());
+ }
+ lv_loop_16_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "loop",
+ lv_loop_16_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_WHEN_17=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_17, grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_10_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_10_1_2_1_0());
+ }
+ lv_when_18_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_18_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_10_1_3_0());
+ }
+ lv_body_19_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_19_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0(),
+ $current);
+ }
+)(this_UNTIL_21=RULE_UNTIL
+ {
+ newLeafNode(this_UNTIL_21, grammarAccess.getPrimaryExpressionAccess().getUNTILTerminalRuleCall_11_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_11_1_1_0());
+ }
+ lv_loop_22_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "loop",
+ lv_loop_22_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_WHEN_23=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_23, grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_11_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_11_1_2_1_0());
+ }
+ lv_when_24_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_24_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_11_1_3_0());
+ }
+ lv_body_25_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_25_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0(),
+ $current);
+ }
+)(this_LOOP_27=RULE_LOOP
+ {
+ newLeafNode(this_LOOP_27, grammarAccess.getPrimaryExpressionAccess().getLOOPTerminalRuleCall_12_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_12_1_1_0());
+ }
+ lv_body_28_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_28_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0(),
+ $current);
+ }
+)(this_TRY_30=RULE_TRY
+ {
+ newLeafNode(this_TRY_30, grammarAccess.getPrimaryExpressionAccess().getTRYTerminalRuleCall_13_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_13_1_1_0());
+ }
+ lv_body_31_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_31_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((this_CATCH_32=RULE_CATCH
+ {
+ newLeafNode(this_CATCH_32, grammarAccess.getPrimaryExpressionAccess().getCATCHTerminalRuleCall_13_1_2_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExceptionIdParserRuleCall_13_1_2_0_1_0());
+ }
+ lv_exception_33_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "exception",
+ lv_exception_33_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getCatchBlockBlockParserRuleCall_13_1_2_0_2_0());
+ }
+ lv_catchBlock_34_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "catchBlock",
+ lv_catchBlock_34_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_FINALLY_35=RULE_FINALLY
+ {
+ newLeafNode(this_FINALLY_35, grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_0_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_0_3_1_0());
+ }
+ lv_finallyBlock_36_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "finallyBlock",
+ lv_finallyBlock_36_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |(this_FINALLY_37=RULE_FINALLY
+ {
+ newLeafNode(this_FINALLY_37, grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_1_1_0());
+ }
+ lv_finallyBlock_38_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "finallyBlock",
+ lv_finallyBlock_38_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0(),
+ $current);
+ }
+)(this_SWITCH_40=RULE_SWITCH
+ {
+ newLeafNode(this_SWITCH_40, grammarAccess.getPrimaryExpressionAccess().getSWITCHTerminalRuleCall_14_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_14_1_1_0());
+ }
+ lv_exp_41_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_41_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?this_INDENT_42=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_42, grammarAccess.getPrimaryExpressionAccess().getINDENTTerminalRuleCall_14_1_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getCasesCaseParserRuleCall_14_1_3_0());
+ }
+ lv_cases_43_0=ruleCase {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ add(
+ $current,
+ "cases",
+ lv_cases_43_0,
+ "Case");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(this_ELSE_44=RULE_ELSE
+ {
+ newLeafNode(this_ELSE_44, grammarAccess.getPrimaryExpressionAccess().getELSETerminalRuleCall_14_1_4_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getElseBlockBlockParserRuleCall_14_1_4_1_0());
+ }
+ lv_elseBlock_45_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "elseBlock",
+ lv_elseBlock_45_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?this_OUTDENT_46=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_46, grammarAccess.getPrimaryExpressionAccess().getOUTDENTTerminalRuleCall_14_1_5());
+ }
+))
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getIdRefParserRuleCall_15());
+ }
+ this_IdRef_47=ruleIdRef
+ {
+ $current = $this_IdRef_47.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBlock
+entryRuleBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBlockRule()); }
+ iv_ruleBlock=ruleBlock
+ { $current=$iv_ruleBlock.current; }
+ EOF
+;
+
+// Rule Block
+ruleBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getBlockAccess().getBlockAction_0(),
+ $current);
+ }
+)this_INDENT_1=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_1, grammarAccess.getBlockAccess().getINDENTTerminalRuleCall_1());
+ }
+(
+ {
+ newCompositeNode(grammarAccess.getBlockAccess().getBodyParserRuleCall_2());
+ }
+ this_Body_2=ruleBody
+ {
+ $current = $this_Body_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)?this_OUTDENT_3=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_3, grammarAccess.getBlockAccess().getOUTDENTTerminalRuleCall_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCase
+entryRuleCase returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCaseRule()); }
+ iv_ruleCase=ruleCase
+ { $current=$iv_ruleCase.current; }
+ EOF
+;
+
+// Rule Case
+ruleCase returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_LEADING_WHEN_0=RULE_LEADING_WHEN
+ {
+ newLeafNode(this_LEADING_WHEN_0, grammarAccess.getCaseAccess().getLEADING_WHENTerminalRuleCall_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_1_0());
+ }
+ lv_whens_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCaseRule());
+ }
+ add(
+ $current,
+ "whens",
+ lv_whens_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_2=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_2, grammarAccess.getCaseAccess().getCOMMATerminalRuleCall_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_2_1_0());
+ }
+ lv_whens_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCaseRule());
+ }
+ add(
+ $current,
+ "whens",
+ lv_whens_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(
+(
+ {
+ newCompositeNode(grammarAccess.getCaseAccess().getThenBlockParserRuleCall_3_0());
+ }
+ lv_then_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCaseRule());
+ }
+ set(
+ $current,
+ "then",
+ lv_then_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_TERMINATOR_5=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_5, grammarAccess.getCaseAccess().getTERMINATORTerminalRuleCall_4());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleIfExp
+entryRuleIfExp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIfExpRule()); }
+ iv_ruleIfExp=ruleIfExp
+ { $current=$iv_ruleIfExp.current; }
+ EOF
+;
+
+// Rule IfExp
+ruleIfExp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_0_0());
+ }
+ lv_blocks_0_0=ruleCondBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfExpRule());
+ }
+ add(
+ $current,
+ "blocks",
+ lv_blocks_0_0,
+ "CondBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_ELSE_1=RULE_ELSE
+ {
+ newLeafNode(this_ELSE_1, grammarAccess.getIfExpAccess().getELSETerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_1_1_0());
+ }
+ lv_blocks_2_0=ruleCondBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfExpRule());
+ }
+ add(
+ $current,
+ "blocks",
+ lv_blocks_2_0,
+ "CondBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(this_ELSE_3=RULE_ELSE
+ {
+ newLeafNode(this_ELSE_3, grammarAccess.getIfExpAccess().getELSETerminalRuleCall_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIfExpAccess().getDefaultBlockBlockParserRuleCall_2_1_0());
+ }
+ lv_defaultBlock_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfExpRule());
+ }
+ set(
+ $current,
+ "defaultBlock",
+ lv_defaultBlock_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleCondBlock
+entryRuleCondBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCondBlockRule()); }
+ iv_ruleCondBlock=ruleCondBlock
+ { $current=$iv_ruleCondBlock.current; }
+ EOF
+;
+
+// Rule CondBlock
+ruleCondBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_operator_0_0=RULE_IF
+ {
+ newLeafNode(lv_operator_0_0, grammarAccess.getCondBlockAccess().getOperatorIFTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCondBlockRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_0_0,
+ "IF");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getCondBlockAccess().getConditionExpressionParserRuleCall_1_0());
+ }
+ lv_condition_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCondBlockRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getCondBlockAccess().getActionBlockParserRuleCall_2_0());
+ }
+ lv_action_2_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCondBlockRule());
+ }
+ set(
+ $current,
+ "action",
+ lv_action_2_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleIdRef
+entryRuleIdRef returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIdRefRule()); }
+ iv_ruleIdRef=ruleIdRef
+ { $current=$iv_ruleIdRef.current; }
+ EOF
+;
+
+// Rule IdRef
+ruleIdRef returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIdRefRule());
+ }
+ }
+ otherlv_0=RULE_IDENTIFIER
+ {
+ newLeafNode(otherlv_0, grammarAccess.getIdRefAccess().getValIdCrossReference_0());
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleId
+entryRuleId returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIdRule()); }
+ iv_ruleId=ruleId
+ { $current=$iv_ruleId.current; }
+ EOF
+;
+
+// Rule Id
+ruleId returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_name_0_0=RULE_IDENTIFIER
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getIdAccess().getNameIDENTIFIERTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIdRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "IDENTIFIER");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleProperty
+entryRuleProperty returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyRule()); }
+ iv_ruleProperty=ruleProperty
+ { $current=$iv_ruleProperty.current; }
+ EOF
+;
+
+// Rule Property
+ruleProperty returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((( ruleIdRef(
+(
+(
+RULE_DOT
+
+ | RULE_DOUBLE_COLON
+
+ | RULE_QUESTION_DOT
+
+)
+
+)
+)))=>(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getIdRefParserRuleCall_0_0_0_0());
+ }
+ this_IdRef_0=ruleIdRef
+ {
+ $current = $this_IdRef_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(
+(
+(
+ lv_accessor_1_1=RULE_DOT
+ {
+ newLeafNode(lv_accessor_1_1, grammarAccess.getPropertyAccess().getAccessorDOTTerminalRuleCall_0_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_1_1,
+ "DOT");
+ }
+
+ | lv_accessor_1_2=RULE_DOUBLE_COLON
+ {
+ newLeafNode(lv_accessor_1_2, grammarAccess.getPropertyAccess().getAccessorDOUBLE_COLONTerminalRuleCall_0_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_1_2,
+ "DOUBLE_COLON");
+ }
+
+ | lv_accessor_1_3=RULE_QUESTION_DOT
+ {
+ newLeafNode(lv_accessor_1_3, grammarAccess.getPropertyAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1_0_2());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_1_3,
+ "QUESTION_DOT");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getPropIdParserRuleCall_0_1_0());
+ }
+ lv_prop_2_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyRule());
+ }
+ set(
+ $current,
+ "prop",
+ lv_prop_2_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((( ruleIdRef RULE_INDEX_START))=>(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getIdRefParserRuleCall_1_0_0_0());
+ }
+ this_IdRef_3=ruleIdRef
+ {
+ $current = $this_IdRef_3.current;
+ afterParserOrEnumRuleCall();
+ }
+this_INDEX_START_4=RULE_INDEX_START
+ {
+ newLeafNode(this_INDEX_START_4, grammarAccess.getPropertyAccess().getINDEX_STARTTerminalRuleCall_1_0_0_1());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getIndexIndexParserRuleCall_1_1_0());
+ }
+ lv_index_5_0=ruleIndex {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyRule());
+ }
+ set(
+ $current,
+ "index",
+ lv_index_5_0,
+ "Index");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_INDEX_END_6=RULE_INDEX_END
+ {
+ newLeafNode(this_INDEX_END_6, grammarAccess.getPropertyAccess().getINDEX_ENDTerminalRuleCall_1_2());
+ }
+))
+;
+
+
+
+
+
+// Entry rule entryRuleVariable
+entryRuleVariable returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getVariableRule()); }
+ iv_ruleVariable=ruleVariable
+ { $current=$iv_ruleVariable.current; }
+ EOF
+;
+
+// Rule Variable
+ruleVariable returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getIdParserRuleCall_0());
+ }
+ this_Id_0=ruleId
+ {
+ $current = $this_Id_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((this_AT_SIGIL_1=RULE_AT_SIGIL
+ {
+ newLeafNode(this_AT_SIGIL_1, grammarAccess.getVariableAccess().getAT_SIGILTerminalRuleCall_1_0_0());
+ }
+
+ |(this_THIS_2=RULE_THIS
+ {
+ newLeafNode(this_THIS_2, grammarAccess.getVariableAccess().getTHISTerminalRuleCall_1_0_1_0());
+ }
+this_DOT_3=RULE_DOT
+ {
+ newLeafNode(this_DOT_3, grammarAccess.getVariableAccess().getDOTTerminalRuleCall_1_0_1_1());
+ }
+))
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getIdParserRuleCall_1_1());
+ }
+ this_Id_4=ruleId
+ {
+ $current = $this_Id_4.current;
+ afterParserOrEnumRuleCall();
+ }
+(this_DOT_5=RULE_DOT
+ {
+ newLeafNode(this_DOT_5, grammarAccess.getVariableAccess().getDOTTerminalRuleCall_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getPropsIdParserRuleCall_1_2_1_0());
+ }
+ lv_props_6_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVariableRule());
+ }
+ add(
+ $current,
+ "props",
+ lv_props_6_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+ |
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getPropertyParserRuleCall_2());
+ }
+ this_Property_7=ruleProperty
+ {
+ $current = $this_Property_7.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignableArray
+entryRuleAssignableArray returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableArrayRule()); }
+ iv_ruleAssignableArray=ruleAssignableArray
+ { $current=$iv_ruleAssignableArray.current; }
+ EOF
+;
+
+// Rule AssignableArray
+ruleAssignableArray returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( RULE_LBRACKET)=>this_LBRACKET_0=RULE_LBRACKET
+ {
+ newLeafNode(this_LBRACKET_0, grammarAccess.getAssignableArrayAccess().getLBRACKETTerminalRuleCall_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getAssignableArrayAccess().getAssignableArgListParserRuleCall_1());
+ }
+ this_AssignableArgList_1=ruleAssignableArgList
+ {
+ $current = $this_AssignableArgList_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_RBRACKET_2=RULE_RBRACKET
+ {
+ newLeafNode(this_RBRACKET_2, grammarAccess.getAssignableArrayAccess().getRBRACKETTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignableArgList
+entryRuleAssignableArgList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableArgListRule()); }
+ iv_ruleAssignableArgList=ruleAssignableArgList
+ { $current=$iv_ruleAssignableArgList.current; }
+ EOF
+;
+
+// Rule AssignableArgList
+ruleAssignableArgList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_0_0());
+ }
+ lv_args_0_0=ruleAssignableArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignableArgListRule());
+ }
+ add(
+ $current,
+ "args",
+ lv_args_0_0,
+ "AssignableArg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_1=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_1, grammarAccess.getAssignableArgListAccess().getCOMMATerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_1_1_0());
+ }
+ lv_args_2_0=ruleAssignableArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignableArgListRule());
+ }
+ add(
+ $current,
+ "args",
+ lv_args_2_0,
+ "AssignableArg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignableArg
+entryRuleAssignableArg returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableArgRule()); }
+ iv_ruleAssignableArg=ruleAssignableArg
+ { $current=$iv_ruleAssignableArg.current; }
+ EOF
+;
+
+// Rule AssignableArg
+ruleAssignableArg returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableArgAccess().getArgAssignableParserRuleCall_0_0());
+ }
+ lv_arg_0_0=ruleAssignable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignableArgRule());
+ }
+ set(
+ $current,
+ "arg",
+ lv_arg_0_0,
+ "Assignable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_splat_1_0=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_splat_1_0, grammarAccess.getAssignableArgAccess().getSplatELLIPSISTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAssignableArgRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "splat",
+ true,
+ "ELLIPSIS");
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignable
+entryRuleAssignable returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableRule()); }
+ iv_ruleAssignable=ruleAssignable
+ { $current=$iv_ruleAssignable.current; }
+ EOF
+;
+
+// Rule Assignable
+ruleAssignable returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableAccess().getVariableParserRuleCall_0());
+ }
+ this_Variable_0=ruleVariable
+ {
+ $current = $this_Variable_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(( RULE_LCURLY)=>
+ {
+ newCompositeNode(grammarAccess.getAssignableAccess().getDictionaryParserRuleCall_1());
+ }
+ this_Dictionary_1=ruleDictionary
+ {
+ $current = $this_Dictionary_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LBRACKET)=>
+ {
+ newCompositeNode(grammarAccess.getAssignableAccess().getAssignableArrayParserRuleCall_2());
+ }
+ this_AssignableArray_2=ruleAssignableArray
+ {
+ $current = $this_AssignableArray_2.current;
+ afterParserOrEnumRuleCall();
+ }
+))
+;
+
+
+
+
+
+// Entry rule entryRuleArg
+entryRuleArg returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArgRule()); }
+ iv_ruleArg=ruleArg
+ { $current=$iv_ruleArg.current; }
+ EOF
+;
+
+// Rule Arg
+ruleArg returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getArgAccess().getExpExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_splat_1_0=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_splat_1_0, grammarAccess.getArgAccess().getSplatELLIPSISTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getArgRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "splat",
+ true,
+ "ELLIPSIS");
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleArgLine
+entryRuleArgLine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArgLineRule()); }
+ iv_ruleArgLine=ruleArgLine
+ { $current=$iv_ruleArgLine.current; }
+ EOF
+;
+
+// Rule ArgLine
+ruleArgLine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getArgLineAccess().getHeadArgParserRuleCall_0_0());
+ }
+ lv_head_0_0=ruleArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgLineRule());
+ }
+ set(
+ $current,
+ "head",
+ lv_head_0_0,
+ "Arg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_1=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_1, grammarAccess.getArgLineAccess().getCOMMATerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getArgLineAccess().getTailArgParserRuleCall_1_1_0());
+ }
+ lv_tail_2_0=ruleArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgLineRule());
+ }
+ add(
+ $current,
+ "tail",
+ lv_tail_2_0,
+ "Arg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(this_COMMA_3=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_3, grammarAccess.getArgLineAccess().getCOMMATerminalRuleCall_2());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleExplicitArgList
+entryRuleExplicitArgList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExplicitArgListRule()); }
+ iv_ruleExplicitArgList=ruleExplicitArgList
+ { $current=$iv_ruleExplicitArgList.current; }
+ EOF
+;
+
+// Rule ExplicitArgList
+ruleExplicitArgList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_0_0());
+ }
+ lv_lines_0_0=ruleArgLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitArgListRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_0_0,
+ "ArgLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((this_TERMINATOR_1=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_1, grammarAccess.getExplicitArgListAccess().getTERMINATORTerminalRuleCall_1_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_0_1_0());
+ }
+ lv_lines_2_0=ruleArgLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitArgListRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_2_0,
+ "ArgLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(this_INDENT_3=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_3, grammarAccess.getExplicitArgListAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_1_1_0());
+ }
+ lv_lines_4_0=ruleArgLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitArgListRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_4_0,
+ "ArgLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_5=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_5, grammarAccess.getExplicitArgListAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleArgList
+entryRuleArgList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArgListRule()); }
+ iv_ruleArgList=ruleArgList
+ { $current=$iv_ruleArgList.current; }
+ EOF
+;
+
+// Rule ArgList
+ruleArgList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getArgListAccess().getArgListAction_0(),
+ $current);
+ }
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_0_0());
+ }
+ lv_dummy_1_0=ruleExplicitArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgListRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_1_0,
+ "ExplicitArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_INDENT_2=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_2, grammarAccess.getArgListAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_1_1_0());
+ }
+ lv_dummy_3_0=ruleExplicitArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgListRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_3_0,
+ "ExplicitArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_4=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_4, grammarAccess.getArgListAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleArray
+entryRuleArray returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArrayRule()); }
+ iv_ruleArray=ruleArray
+ { $current=$iv_ruleArray.current; }
+ EOF
+;
+
+// Rule Array
+ruleArray returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( RULE_LBRACKET)=>this_LBRACKET_0=RULE_LBRACKET
+ {
+ newLeafNode(this_LBRACKET_0, grammarAccess.getArrayAccess().getLBRACKETTerminalRuleCall_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getArrayAccess().getArgListParserRuleCall_1());
+ }
+ this_ArgList_1=ruleArgList
+ {
+ $current = $this_ArgList_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_RBRACKET_2=RULE_RBRACKET
+ {
+ newLeafNode(this_RBRACKET_2, grammarAccess.getArrayAccess().getRBRACKETTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDictionary
+entryRuleDictionary returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictionaryRule()); }
+ iv_ruleDictionary=ruleDictionary
+ { $current=$iv_ruleDictionary.current; }
+ EOF
+;
+
+// Rule Dictionary
+ruleDictionary returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( RULE_LCURLY)=>this_LCURLY_0=RULE_LCURLY
+ {
+ newLeafNode(this_LCURLY_0, grammarAccess.getDictionaryAccess().getLCURLYTerminalRuleCall_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getDictionaryAccess().getDictItemsParserRuleCall_1());
+ }
+ this_DictItems_1=ruleDictItems
+ {
+ $current = $this_DictItems_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_RCURLY_2=RULE_RCURLY
+ {
+ newLeafNode(this_RCURLY_2, grammarAccess.getDictionaryAccess().getRCURLYTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDictItems
+entryRuleDictItems returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictItemsRule()); }
+ iv_ruleDictItems=ruleDictItems
+ { $current=$iv_ruleDictItems.current; }
+ EOF
+;
+
+// Rule DictItems
+ruleDictItems returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getDictItemsAccess().getDictItemsAction_0(),
+ $current);
+ }
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_0_0());
+ }
+ lv_dummy_1_0=ruleExplicitDictItems {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemsRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_1_0,
+ "ExplicitDictItems");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_INDENT_2=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_2, grammarAccess.getDictItemsAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_1_1_0());
+ }
+ lv_dummy_3_0=ruleExplicitDictItems {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemsRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_3_0,
+ "ExplicitDictItems");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_4=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_4, grammarAccess.getDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleExplicitDictItems
+entryRuleExplicitDictItems returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExplicitDictItemsRule()); }
+ iv_ruleExplicitDictItems=ruleExplicitDictItems
+ { $current=$iv_ruleExplicitDictItems.current; }
+ EOF
+;
+
+// Rule ExplicitDictItems
+ruleExplicitDictItems returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_0_0());
+ }
+ lv_lines_0_0=ruleDictLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitDictItemsRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_0_0,
+ "DictLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((this_TERMINATOR_1=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_1, grammarAccess.getExplicitDictItemsAccess().getTERMINATORTerminalRuleCall_1_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_0_1_0());
+ }
+ lv_lines_2_0=ruleDictLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitDictItemsRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_2_0,
+ "DictLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(this_INDENT_3=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_3, grammarAccess.getExplicitDictItemsAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_1_1_0());
+ }
+ lv_lines_4_0=ruleDictLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitDictItemsRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_4_0,
+ "DictLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_5=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_5, grammarAccess.getExplicitDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleDictLine
+entryRuleDictLine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictLineRule()); }
+ iv_ruleDictLine=ruleDictLine
+ { $current=$iv_ruleDictLine.current; }
+ EOF
+;
+
+// Rule DictLine
+ruleDictLine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getDictLineAccess().getHeadDictItemParserRuleCall_0_0());
+ }
+ lv_head_0_0=ruleDictItem {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictLineRule());
+ }
+ set(
+ $current,
+ "head",
+ lv_head_0_0,
+ "DictItem");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_1=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_1, grammarAccess.getDictLineAccess().getCOMMATerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDictLineAccess().getTailDictItemParserRuleCall_1_1_0());
+ }
+ lv_tail_2_0=ruleDictItem {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictLineRule());
+ }
+ add(
+ $current,
+ "tail",
+ lv_tail_2_0,
+ "DictItem");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(this_COMMA_3=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_3, grammarAccess.getDictLineAccess().getCOMMATerminalRuleCall_2());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleDictItem
+entryRuleDictItem returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictItemRule()); }
+ iv_ruleDictItem=ruleDictItem
+ { $current=$iv_ruleDictItem.current; }
+ EOF
+;
+
+// Rule DictItem
+ruleDictItem returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getDictItemAccess().getDictItemAction_0(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemAccess().getKeyDictKeyParserRuleCall_1_0());
+ }
+ lv_key_1_0=ruleDictKey {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemRule());
+ }
+ set(
+ $current,
+ "key",
+ lv_key_1_0,
+ "DictKey");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COLON_2=RULE_COLON
+ {
+ newLeafNode(this_COLON_2, grammarAccess.getDictItemAccess().getCOLONTerminalRuleCall_2_0());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_0_0());
+ }
+ lv_value_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_INDENT_4=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_4, grammarAccess.getDictItemAccess().getINDENTTerminalRuleCall_2_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_1_1_0());
+ }
+ lv_value_5_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_6=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_6, grammarAccess.getDictItemAccess().getOUTDENTTerminalRuleCall_2_1_1_2());
+ }
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleDictKey
+entryRuleDictKey returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictKeyRule()); }
+ iv_ruleDictKey=ruleDictKey
+ { $current=$iv_ruleDictKey.current; }
+ EOF
+;
+
+// Rule DictKey
+ruleDictKey returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getDictKeyAccess().getLiteralParserRuleCall_0());
+ }
+ this_Literal_0=ruleLiteral
+ {
+ $current = $this_Literal_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getDictKeyAccess().getIdParserRuleCall_1());
+ }
+ this_Id_1=ruleId
+ {
+ $current = $this_Id_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLambda
+entryRuleLambda returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLambdaRule()); }
+ iv_ruleLambda=ruleLambda
+ { $current=$iv_ruleLambda.current; }
+ EOF
+;
+
+// Rule Lambda
+ruleLambda returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((this_PARAM_START_0=RULE_PARAM_START
+ {
+ newLeafNode(this_PARAM_START_0, grammarAccess.getLambdaAccess().getPARAM_STARTTerminalRuleCall_0_0());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_0_0());
+ }
+ lv_params_1_0=ruleParam {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaRule());
+ }
+ add(
+ $current,
+ "params",
+ lv_params_1_0,
+ "Param");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_2=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_2, grammarAccess.getLambdaAccess().getCOMMATerminalRuleCall_0_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_1_1_0());
+ }
+ lv_params_3_0=ruleParam {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaRule());
+ }
+ add(
+ $current,
+ "params",
+ lv_params_3_0,
+ "Param");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)?this_PARAM_END_4=RULE_PARAM_END
+ {
+ newLeafNode(this_PARAM_END_4, grammarAccess.getLambdaAccess().getPARAM_ENDTerminalRuleCall_0_2());
+ }
+)?(this_FUNC_ARROW_5=RULE_FUNC_ARROW
+ {
+ newLeafNode(this_FUNC_ARROW_5, grammarAccess.getLambdaAccess().getFUNC_ARROWTerminalRuleCall_1_0());
+ }
+
+ |this_BOUND_FUNC_ARROW_6=RULE_BOUND_FUNC_ARROW
+ {
+ newLeafNode(this_BOUND_FUNC_ARROW_6, grammarAccess.getLambdaAccess().getBOUND_FUNC_ARROWTerminalRuleCall_1_1());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getLambdaAccess().getBodyBlockParserRuleCall_2_0());
+ }
+ lv_body_7_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_7_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleParam
+entryRuleParam returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getParamRule()); }
+ iv_ruleParam=ruleParam
+ { $current=$iv_ruleParam.current; }
+ EOF
+;
+
+// Rule Param
+ruleParam returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getIdParserRuleCall_0_0());
+ }
+ this_Id_0=ruleId
+ {
+ $current = $this_Id_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(( RULE_LBRACKET)=>
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getArrayParserRuleCall_0_1());
+ }
+ this_Array_1=ruleArray
+ {
+ $current = $this_Array_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LCURLY)=>
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getDictionaryParserRuleCall_0_2());
+ }
+ this_Dictionary_2=ruleDictionary
+ {
+ $current = $this_Dictionary_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getThisPropertyParserRuleCall_0_3());
+ }
+ this_ThisProperty_3=ruleThisProperty
+ {
+ $current = $this_ThisProperty_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)((
+(
+ lv_splat_4_0=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_splat_4_0, grammarAccess.getParamAccess().getSplatELLIPSISTerminalRuleCall_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getParamRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "splat",
+ true,
+ "ELLIPSIS");
+ }
+
+)
+)
+ |(this_EQUAL_5=RULE_EQUAL
+ {
+ newLeafNode(this_EQUAL_5, grammarAccess.getParamAccess().getEQUALTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getDefaultValueExpressionParserRuleCall_1_1_1_0());
+ }
+ lv_defaultValue_6_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParamRule());
+ }
+ set(
+ $current,
+ "defaultValue",
+ lv_defaultValue_6_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleNumberLiteral
+entryRuleNumberLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNumberLiteralRule()); }
+ iv_ruleNumberLiteral=ruleNumberLiteral
+ { $current=$iv_ruleNumberLiteral.current; }
+ EOF
+;
+
+// Rule NumberLiteral
+ruleNumberLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0(),
+ $current);
+ }
+)this_NUMBER_1=RULE_NUMBER
+ {
+ newLeafNode(this_NUMBER_1, grammarAccess.getNumberLiteralAccess().getNUMBERTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStringLiteral
+entryRuleStringLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStringLiteralRule()); }
+ iv_ruleStringLiteral=ruleStringLiteral
+ { $current=$iv_ruleStringLiteral.current; }
+ EOF
+;
+
+// Rule StringLiteral
+ruleStringLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getStringLiteralAccess().getStringLiteralAction_0(),
+ $current);
+ }
+)this_STRING_1=RULE_STRING
+ {
+ newLeafNode(this_STRING_1, grammarAccess.getStringLiteralAccess().getSTRINGTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBoolLiteral
+entryRuleBoolLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBoolLiteralRule()); }
+ iv_ruleBoolLiteral=ruleBoolLiteral
+ { $current=$iv_ruleBoolLiteral.current; }
+ EOF
+;
+
+// Rule BoolLiteral
+ruleBoolLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0(),
+ $current);
+ }
+)this_BOOL_1=RULE_BOOL
+ {
+ newLeafNode(this_BOOL_1, grammarAccess.getBoolLiteralAccess().getBOOLTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleJSLiteral
+entryRuleJSLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJSLiteralRule()); }
+ iv_ruleJSLiteral=ruleJSLiteral
+ { $current=$iv_ruleJSLiteral.current; }
+ EOF
+;
+
+// Rule JSLiteral
+ruleJSLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getJSLiteralAccess().getJSLiteralAction_0(),
+ $current);
+ }
+)this_JS_1=RULE_JS
+ {
+ newLeafNode(this_JS_1, grammarAccess.getJSLiteralAccess().getJSTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleRegexLiteral
+entryRuleRegexLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRegexLiteralRule()); }
+ iv_ruleRegexLiteral=ruleRegexLiteral
+ { $current=$iv_ruleRegexLiteral.current; }
+ EOF
+;
+
+// Rule RegexLiteral
+ruleRegexLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0(),
+ $current);
+ }
+)this_REGEX_1=RULE_REGEX
+ {
+ newLeafNode(this_REGEX_1, grammarAccess.getRegexLiteralAccess().getREGEXTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLiteral
+entryRuleLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLiteralRule()); }
+ iv_ruleLiteral=ruleLiteral
+ { $current=$iv_ruleLiteral.current; }
+ EOF
+;
+
+// Rule Literal
+ruleLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getNumberLiteralParserRuleCall_0());
+ }
+ this_NumberLiteral_0=ruleNumberLiteral
+ {
+ $current = $this_NumberLiteral_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_1());
+ }
+ this_StringLiteral_1=ruleStringLiteral
+ {
+ $current = $this_StringLiteral_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getBoolLiteralParserRuleCall_2());
+ }
+ this_BoolLiteral_2=ruleBoolLiteral
+ {
+ $current = $this_BoolLiteral_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getJSLiteralParserRuleCall_3());
+ }
+ this_JSLiteral_3=ruleJSLiteral
+ {
+ $current = $this_JSLiteral_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getRegexLiteralParserRuleCall_4());
+ }
+ this_RegexLiteral_4=ruleRegexLiteral
+ {
+ $current = $this_RegexLiteral_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleParenthetical
+entryRuleParenthetical returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getParentheticalRule()); }
+ iv_ruleParenthetical=ruleParenthetical
+ { $current=$iv_ruleParenthetical.current; }
+ EOF
+;
+
+// Rule Parenthetical
+ruleParenthetical returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((( RULE_LPAREN RULE_INDENT))=>(this_LPAREN_0=RULE_LPAREN
+ {
+ newLeafNode(this_LPAREN_0, grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_0_0_0_0());
+ }
+this_INDENT_1=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_1, grammarAccess.getParentheticalAccess().getINDENTTerminalRuleCall_0_0_0_1());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_0_1_0());
+ }
+ lv_content_2_0=ruleBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParentheticalRule());
+ }
+ set(
+ $current,
+ "content",
+ lv_content_2_0,
+ "Body");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_3=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_3, grammarAccess.getParentheticalAccess().getOUTDENTTerminalRuleCall_0_2());
+ }
+this_RPAREN_4=RULE_RPAREN
+ {
+ newLeafNode(this_RPAREN_4, grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_0_3());
+ }
+)
+ |((( RULE_LPAREN)=>this_LPAREN_5=RULE_LPAREN
+ {
+ newLeafNode(this_LPAREN_5, grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_1_1_0());
+ }
+ lv_content_6_0=ruleBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParentheticalRule());
+ }
+ set(
+ $current,
+ "content",
+ lv_content_6_0,
+ "Body");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_RPAREN_7=RULE_RPAREN
+ {
+ newLeafNode(this_RPAREN_7, grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_1_2());
+ }
+))
+;
+
+
+
+
+
+RULE_ELLIPSIS : '...';
+
+RULE_DOT_DOT : '..';
+
+RULE_DOUBLE_COLON : '::';
+
+RULE_SHIFT : ('<<'|'>>');
+
+RULE_BOUND_FUNC_ARROW : '=>';
+
+RULE_FUNC_ARROW : '->';
+
+RULE_COMPARE : ('<'|'=='|'>'|'<='|'>='|'!=');
+
+RULE_COMPOUND_ASSIGN : ('+='|'-=');
+
+RULE_PLUS_PLUS : '++';
+
+RULE_MINUS_MINUS : '--';
+
+RULE_PARAM_END : '**)';
+
+RULE_PARAM_START : '(**';
+
+RULE_AT_SIGIL : '@';
+
+RULE_BOOL : ('true'|'false'|'undefined'|'null'|'on'|'no'|'yes'|'off');
+
+RULE_BY : 'by';
+
+RULE_CALL_END : '*)';
+
+RULE_CALL_START : '(*';
+
+RULE_CATCH : 'catch';
+
+RULE_CLASS : 'class';
+
+RULE_COLON : ':';
+
+RULE_COLON_SLASH : 'dummy COLON_SLASH';
+
+RULE_COMMA : ',';
+
+RULE_DOT : '.';
+
+RULE_ELSE : 'else';
+
+RULE_EQUAL : '=';
+
+RULE_EXTENDS : 'extends';
+
+RULE_FINALLY : 'finally';
+
+RULE_FOR : 'for';
+
+RULE_FORIN : 'in';
+
+RULE_FOROF : 'of';
+
+RULE_FUNC_EXIST : 'dummy FUNC_EXIST';
+
+RULE_HERECOMMENT : 'dummy HERECOMMENT';
+
+RULE_IF : ('if'|'unless');
+
+RULE_INDENT : '{*';
+
+RULE_INDEX_END : '*]';
+
+RULE_INDEX_PROTO : 'dummy INDEX_PROTO';
+
+RULE_INDEX_SOAK : 'dummy INDEX_SOAK';
+
+RULE_INDEX_START : '[*';
+
+RULE_JS : 'dummy JS';
+
+RULE_LBRACKET : '[';
+
+RULE_LCURLY : 'dummy LCURLY';
+
+RULE_LEADING_WHEN : 'dummy LEADING_WHEN';
+
+RULE_LOGIC : ('&&'|'||');
+
+RULE_LOOP : 'loop';
+
+RULE_LPAREN : '(';
+
+RULE_MATH : ('*'|'/');
+
+RULE_MINUS : '-';
+
+RULE_NEW : 'new';
+
+RULE_NUMBER : ('0'..'9')+;
+
+RULE_OUTDENT : '*}';
+
+RULE_OWN : 'own';
+
+RULE_PLUS : '+';
+
+RULE_POST_IF : 'dummy POST_IF';
+
+RULE_QUESTION : '?';
+
+RULE_QUESTION_DOT : '?.';
+
+RULE_RBRACKET : ']';
+
+RULE_RCURLY : 'dummy RCURLY';
+
+RULE_REGEX : '///' ( options {greedy=false;} : . )*'///';
+
+RULE_RELATION : ('in'|'of'|'instanceof');
+
+RULE_RETURN : 'return';
+
+RULE_RPAREN : ')';
+
+RULE_STATEMENT : ('break'|'continue'|'debugger');
+
+RULE_STRING : ('\'\'\'' ( options {greedy=false;} : . )*'\'\'\''|'\'' (~('\'') ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))*)? '\''|'"""' ( options {greedy=false;} : . )*'"""'|'"' (~('"') ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))*)? '"');
+
+RULE_SUPER : 'super';
+
+RULE_SWITCH : 'switch';
+
+RULE_TERMINATOR : '\n'+;
+
+RULE_THEN : 'then';
+
+RULE_THIS : 'this';
+
+RULE_THROW : 'throw';
+
+RULE_TRY : 'try';
+
+RULE_UNARY : ('!'|'~');
+
+RULE_UNTIL : 'until';
+
+RULE_WHEN : 'when';
+
+RULE_WHILE : 'while';
+
+RULE_LOGIC_WORD : ('and'|'or');
+
+RULE_COMPARE_WORD : ('isnt'|'is');
+
+RULE_UNARY_WORD : ('new'|'do'|'not');
+
+RULE_ML_COMMENT : '###' ~('#') ( options {greedy=false;} : . )*'###';
+
+RULE_SL_COMMENT : '#' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t')+;
+
+RULE_IDENTIFIER : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+
diff --git a/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.tokens b/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.tokens
new file mode 100644
index 0000000..6317da8
--- /dev/null
+++ b/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.tokens
@@ -0,0 +1,83 @@
+RULE_BOUND_FUNC_ARROW=67
+RULE_SWITCH=56
+RULE_THROW=13
+RULE_PARAM_START=64
+RULE_TERMINATOR=4
+RULE_CALL_END=10
+RULE_RETURN=11
+RULE_FOR=16
+RULE_BOOL=69
+RULE_LBRACKET=25
+RULE_DOUBLE_COLON=48
+RULE_MINUS_MINUS=41
+RULE_COMPARE_WORD=80
+RULE_OUTDENT=31
+RULE_RELATION=34
+RULE_REGEX=71
+RULE_CLASS=14
+RULE_WHILE=17
+RULE_COLON_SLASH=74
+RULE_FUNC_EXIST=44
+RULE_DOT=46
+RULE_POST_IF=12
+RULE_PLUS_PLUS=40
+RULE_OWN=20
+RULE_NUMBER=68
+RULE_LOOP=52
+RULE_LPAREN=72
+RULE_FUNC_ARROW=66
+RULE_AT_SIGIL=45
+RULE_EXTENDS=15
+RULE_SHIFT=35
+RULE_INDEX_END=50
+RULE_COMPARE=33
+RULE_QUESTION_DOT=47
+RULE_RBRACKET=28
+RULE_COMPOUND_ASSIGN=29
+RULE_SUPER=43
+RULE_THEN=78
+RULE_UNARY_WORD=81
+RULE_LEADING_WHEN=58
+RULE_DOT_DOT=26
+RULE_STATEMENT=5
+RULE_PLUS=36
+RULE_BY=24
+RULE_INDEX_SOAK=76
+RULE_CATCH=54
+RULE_CALL_START=8
+RULE_INDEX_PROTO=75
+RULE_IDENTIFIER=60
+RULE_COMMA=21
+RULE_TRY=53
+RULE_JS=70
+RULE_EQUAL=7
+RULE_INDENT=30
+RULE_HERECOMMENT=6
+RULE_FORIN=23
+RULE_ELLIPSIS=27
+T__85=85
+RULE_SL_COMMENT=83
+RULE_PARAM_END=65
+RULE_ML_COMMENT=82
+RULE_WHEN=18
+RULE_INDEX_START=49
+RULE_COLON=63
+RULE_MINUS=37
+RULE_STRING=9
+RULE_NEW=77
+RULE_LOGIC_WORD=79
+RULE_LOGIC=32
+RULE_RPAREN=73
+RULE_WS=84
+RULE_FOROF=22
+RULE_IF=59
+RULE_THIS=51
+RULE_UNARY=39
+RULE_RCURLY=62
+RULE_ELSE=57
+RULE_FINALLY=55
+RULE_MATH=38
+RULE_LCURLY=61
+RULE_UNTIL=19
+RULE_QUESTION=42
+'require'=85
diff --git a/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScriptLexer.java b/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScriptLexer.java
new file mode 100644
index 0000000..0a5e3b9
--- /dev/null
+++ b/csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScriptLexer.java
@@ -0,0 +1,4227 @@
+package csep.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalCoffeeScriptLexer extends Lexer {
+ public static final int RULE_BOUND_FUNC_ARROW=67;
+ public static final int RULE_SWITCH=56;
+ public static final int RULE_THROW=13;
+ public static final int RULE_PARAM_START=64;
+ public static final int RULE_TERMINATOR=4;
+ public static final int RULE_CALL_END=10;
+ public static final int RULE_RETURN=11;
+ public static final int RULE_FOR=16;
+ public static final int RULE_BOOL=69;
+ public static final int RULE_LBRACKET=25;
+ public static final int RULE_DOUBLE_COLON=48;
+ public static final int RULE_MINUS_MINUS=41;
+ public static final int RULE_COMPARE_WORD=80;
+ public static final int RULE_OUTDENT=31;
+ public static final int EOF=-1;
+ public static final int RULE_RELATION=34;
+ public static final int RULE_REGEX=71;
+ public static final int RULE_CLASS=14;
+ public static final int RULE_WHILE=17;
+ public static final int RULE_COLON_SLASH=74;
+ public static final int RULE_FUNC_EXIST=44;
+ public static final int RULE_DOT=46;
+ public static final int RULE_POST_IF=12;
+ public static final int RULE_PLUS_PLUS=40;
+ public static final int RULE_OWN=20;
+ public static final int RULE_NUMBER=68;
+ public static final int RULE_LOOP=52;
+ public static final int RULE_LPAREN=72;
+ public static final int RULE_FUNC_ARROW=66;
+ public static final int RULE_AT_SIGIL=45;
+ public static final int RULE_EXTENDS=15;
+ public static final int RULE_SHIFT=35;
+ public static final int RULE_INDEX_END=50;
+ public static final int RULE_COMPARE=33;
+ public static final int RULE_QUESTION_DOT=47;
+ public static final int RULE_RBRACKET=28;
+ public static final int RULE_COMPOUND_ASSIGN=29;
+ public static final int RULE_SUPER=43;
+ public static final int RULE_THEN=78;
+ public static final int RULE_UNARY_WORD=81;
+ public static final int RULE_LEADING_WHEN=58;
+ public static final int RULE_DOT_DOT=26;
+ public static final int RULE_STATEMENT=5;
+ public static final int RULE_PLUS=36;
+ public static final int RULE_BY=24;
+ public static final int RULE_CATCH=54;
+ public static final int RULE_INDEX_SOAK=76;
+ public static final int RULE_CALL_START=8;
+ public static final int RULE_COMMA=21;
+ public static final int RULE_IDENTIFIER=60;
+ public static final int RULE_INDEX_PROTO=75;
+ public static final int RULE_TRY=53;
+ public static final int RULE_INDENT=30;
+ public static final int RULE_EQUAL=7;
+ public static final int RULE_JS=70;
+ public static final int RULE_HERECOMMENT=6;
+ public static final int RULE_ELLIPSIS=27;
+ public static final int RULE_FORIN=23;
+ public static final int T__85=85;
+ public static final int RULE_SL_COMMENT=83;
+ public static final int RULE_PARAM_END=65;
+ public static final int RULE_WHEN=18;
+ public static final int RULE_ML_COMMENT=82;
+ public static final int RULE_INDEX_START=49;
+ public static final int RULE_MINUS=37;
+ public static final int RULE_COLON=63;
+ public static final int RULE_STRING=9;
+ public static final int RULE_NEW=77;
+ public static final int RULE_LOGIC_WORD=79;
+ public static final int RULE_LOGIC=32;
+ public static final int RULE_RPAREN=73;
+ public static final int RULE_WS=84;
+ public static final int RULE_FOROF=22;
+ public static final int RULE_UNARY=39;
+ public static final int RULE_THIS=51;
+ public static final int RULE_IF=59;
+ public static final int RULE_ELSE=57;
+ public static final int RULE_RCURLY=62;
+ public static final int RULE_MATH=38;
+ public static final int RULE_FINALLY=55;
+ public static final int RULE_QUESTION=42;
+ public static final int RULE_UNTIL=19;
+ public static final int RULE_LCURLY=61;
+
+ // delegates
+ // delegators
+
+ public InternalCoffeeScriptLexer() {;}
+ public InternalCoffeeScriptLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalCoffeeScriptLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g"; }
+
+ // $ANTLR start "T__85"
+ public final void mT__85() throws RecognitionException {
+ try {
+ int _type = T__85;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:11:7: ( 'require' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:11:9: 'require'
+ {
+ match("require");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__85"
+
+ // $ANTLR start "RULE_ELLIPSIS"
+ public final void mRULE_ELLIPSIS() throws RecognitionException {
+ try {
+ int _type = RULE_ELLIPSIS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5395:15: ( '...' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5395:17: '...'
+ {
+ match("...");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ELLIPSIS"
+
+ // $ANTLR start "RULE_DOT_DOT"
+ public final void mRULE_DOT_DOT() throws RecognitionException {
+ try {
+ int _type = RULE_DOT_DOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5397:14: ( '..' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5397:16: '..'
+ {
+ match("..");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DOT_DOT"
+
+ // $ANTLR start "RULE_DOUBLE_COLON"
+ public final void mRULE_DOUBLE_COLON() throws RecognitionException {
+ try {
+ int _type = RULE_DOUBLE_COLON;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5399:19: ( '::' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5399:21: '::'
+ {
+ match("::");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DOUBLE_COLON"
+
+ // $ANTLR start "RULE_SHIFT"
+ public final void mRULE_SHIFT() throws RecognitionException {
+ try {
+ int _type = RULE_SHIFT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5401:12: ( ( '<<' | '>>' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5401:14: ( '<<' | '>>' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5401:14: ( '<<' | '>>' )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='<') ) {
+ alt1=1;
+ }
+ else if ( (LA1_0=='>') ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5401:15: '<<'
+ {
+ match("<<");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5401:20: '>>'
+ {
+ match(">>");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SHIFT"
+
+ // $ANTLR start "RULE_BOUND_FUNC_ARROW"
+ public final void mRULE_BOUND_FUNC_ARROW() throws RecognitionException {
+ try {
+ int _type = RULE_BOUND_FUNC_ARROW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5403:23: ( '=>' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5403:25: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_BOUND_FUNC_ARROW"
+
+ // $ANTLR start "RULE_FUNC_ARROW"
+ public final void mRULE_FUNC_ARROW() throws RecognitionException {
+ try {
+ int _type = RULE_FUNC_ARROW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5405:17: ( '->' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5405:19: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FUNC_ARROW"
+
+ // $ANTLR start "RULE_COMPARE"
+ public final void mRULE_COMPARE() throws RecognitionException {
+ try {
+ int _type = RULE_COMPARE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:14: ( ( '<' | '==' | '>' | '<=' | '>=' | '!=' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:16: ( '<' | '==' | '>' | '<=' | '>=' | '!=' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:16: ( '<' | '==' | '>' | '<=' | '>=' | '!=' )
+ int alt2=6;
+ switch ( input.LA(1) ) {
+ case '<':
+ {
+ int LA2_1 = input.LA(2);
+
+ if ( (LA2_1=='=') ) {
+ alt2=4;
+ }
+ else {
+ alt2=1;}
+ }
+ break;
+ case '=':
+ {
+ alt2=2;
+ }
+ break;
+ case '>':
+ {
+ int LA2_3 = input.LA(2);
+
+ if ( (LA2_3=='=') ) {
+ alt2=5;
+ }
+ else {
+ alt2=3;}
+ }
+ break;
+ case '!':
+ {
+ alt2=6;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt2) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:17: '<'
+ {
+ match('<');
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:21: '=='
+ {
+ match("==");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:26: '>'
+ {
+ match('>');
+
+ }
+ break;
+ case 4 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:30: '<='
+ {
+ match("<=");
+
+
+ }
+ break;
+ case 5 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:35: '>='
+ {
+ match(">=");
+
+
+ }
+ break;
+ case 6 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5407:40: '!='
+ {
+ match("!=");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMPARE"
+
+ // $ANTLR start "RULE_COMPOUND_ASSIGN"
+ public final void mRULE_COMPOUND_ASSIGN() throws RecognitionException {
+ try {
+ int _type = RULE_COMPOUND_ASSIGN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5409:22: ( ( '+=' | '-=' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5409:24: ( '+=' | '-=' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5409:24: ( '+=' | '-=' )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='+') ) {
+ alt3=1;
+ }
+ else if ( (LA3_0=='-') ) {
+ alt3=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5409:25: '+='
+ {
+ match("+=");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5409:30: '-='
+ {
+ match("-=");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMPOUND_ASSIGN"
+
+ // $ANTLR start "RULE_PLUS_PLUS"
+ public final void mRULE_PLUS_PLUS() throws RecognitionException {
+ try {
+ int _type = RULE_PLUS_PLUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5411:16: ( '++' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5411:18: '++'
+ {
+ match("++");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PLUS_PLUS"
+
+ // $ANTLR start "RULE_MINUS_MINUS"
+ public final void mRULE_MINUS_MINUS() throws RecognitionException {
+ try {
+ int _type = RULE_MINUS_MINUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5413:18: ( '--' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5413:20: '--'
+ {
+ match("--");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_MINUS_MINUS"
+
+ // $ANTLR start "RULE_PARAM_END"
+ public final void mRULE_PARAM_END() throws RecognitionException {
+ try {
+ int _type = RULE_PARAM_END;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5415:16: ( '**)' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5415:18: '**)'
+ {
+ match("**)");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PARAM_END"
+
+ // $ANTLR start "RULE_PARAM_START"
+ public final void mRULE_PARAM_START() throws RecognitionException {
+ try {
+ int _type = RULE_PARAM_START;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5417:18: ( '(**' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5417:20: '(**'
+ {
+ match("(**");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PARAM_START"
+
+ // $ANTLR start "RULE_AT_SIGIL"
+ public final void mRULE_AT_SIGIL() throws RecognitionException {
+ try {
+ int _type = RULE_AT_SIGIL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5419:15: ( '@' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5419:17: '@'
+ {
+ match('@');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_AT_SIGIL"
+
+ // $ANTLR start "RULE_BOOL"
+ public final void mRULE_BOOL() throws RecognitionException {
+ try {
+ int _type = RULE_BOOL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:11: ( ( 'true' | 'false' | 'undefined' | 'null' | 'on' | 'no' | 'yes' | 'off' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:13: ( 'true' | 'false' | 'undefined' | 'null' | 'on' | 'no' | 'yes' | 'off' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:13: ( 'true' | 'false' | 'undefined' | 'null' | 'on' | 'no' | 'yes' | 'off' )
+ int alt4=8;
+ alt4 = dfa4.predict(input);
+ switch (alt4) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:14: 'true'
+ {
+ match("true");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:21: 'false'
+ {
+ match("false");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:29: 'undefined'
+ {
+ match("undefined");
+
+
+ }
+ break;
+ case 4 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:41: 'null'
+ {
+ match("null");
+
+
+ }
+ break;
+ case 5 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:48: 'on'
+ {
+ match("on");
+
+
+ }
+ break;
+ case 6 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:53: 'no'
+ {
+ match("no");
+
+
+ }
+ break;
+ case 7 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:58: 'yes'
+ {
+ match("yes");
+
+
+ }
+ break;
+ case 8 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5421:64: 'off'
+ {
+ match("off");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_BOOL"
+
+ // $ANTLR start "RULE_BY"
+ public final void mRULE_BY() throws RecognitionException {
+ try {
+ int _type = RULE_BY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5423:9: ( 'by' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5423:11: 'by'
+ {
+ match("by");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_BY"
+
+ // $ANTLR start "RULE_CALL_END"
+ public final void mRULE_CALL_END() throws RecognitionException {
+ try {
+ int _type = RULE_CALL_END;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5425:15: ( '*)' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5425:17: '*)'
+ {
+ match("*)");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CALL_END"
+
+ // $ANTLR start "RULE_CALL_START"
+ public final void mRULE_CALL_START() throws RecognitionException {
+ try {
+ int _type = RULE_CALL_START;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5427:17: ( '(*' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5427:19: '(*'
+ {
+ match("(*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CALL_START"
+
+ // $ANTLR start "RULE_CATCH"
+ public final void mRULE_CATCH() throws RecognitionException {
+ try {
+ int _type = RULE_CATCH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5429:12: ( 'catch' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5429:14: 'catch'
+ {
+ match("catch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CATCH"
+
+ // $ANTLR start "RULE_CLASS"
+ public final void mRULE_CLASS() throws RecognitionException {
+ try {
+ int _type = RULE_CLASS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5431:12: ( 'class' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5431:14: 'class'
+ {
+ match("class");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CLASS"
+
+ // $ANTLR start "RULE_COLON"
+ public final void mRULE_COLON() throws RecognitionException {
+ try {
+ int _type = RULE_COLON;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5433:12: ( ':' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5433:14: ':'
+ {
+ match(':');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COLON"
+
+ // $ANTLR start "RULE_COLON_SLASH"
+ public final void mRULE_COLON_SLASH() throws RecognitionException {
+ try {
+ int _type = RULE_COLON_SLASH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5435:18: ( 'dummy COLON_SLASH' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5435:20: 'dummy COLON_SLASH'
+ {
+ match("dummy COLON_SLASH");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COLON_SLASH"
+
+ // $ANTLR start "RULE_COMMA"
+ public final void mRULE_COMMA() throws RecognitionException {
+ try {
+ int _type = RULE_COMMA;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5437:12: ( ',' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5437:14: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMMA"
+
+ // $ANTLR start "RULE_DOT"
+ public final void mRULE_DOT() throws RecognitionException {
+ try {
+ int _type = RULE_DOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5439:10: ( '.' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5439:12: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DOT"
+
+ // $ANTLR start "RULE_ELSE"
+ public final void mRULE_ELSE() throws RecognitionException {
+ try {
+ int _type = RULE_ELSE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5441:11: ( 'else' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5441:13: 'else'
+ {
+ match("else");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ELSE"
+
+ // $ANTLR start "RULE_EQUAL"
+ public final void mRULE_EQUAL() throws RecognitionException {
+ try {
+ int _type = RULE_EQUAL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5443:12: ( '=' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5443:14: '='
+ {
+ match('=');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_EQUAL"
+
+ // $ANTLR start "RULE_EXTENDS"
+ public final void mRULE_EXTENDS() throws RecognitionException {
+ try {
+ int _type = RULE_EXTENDS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5445:14: ( 'extends' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5445:16: 'extends'
+ {
+ match("extends");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_EXTENDS"
+
+ // $ANTLR start "RULE_FINALLY"
+ public final void mRULE_FINALLY() throws RecognitionException {
+ try {
+ int _type = RULE_FINALLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5447:14: ( 'finally' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5447:16: 'finally'
+ {
+ match("finally");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FINALLY"
+
+ // $ANTLR start "RULE_FOR"
+ public final void mRULE_FOR() throws RecognitionException {
+ try {
+ int _type = RULE_FOR;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5449:10: ( 'for' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5449:12: 'for'
+ {
+ match("for");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FOR"
+
+ // $ANTLR start "RULE_FORIN"
+ public final void mRULE_FORIN() throws RecognitionException {
+ try {
+ int _type = RULE_FORIN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5451:12: ( 'in' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5451:14: 'in'
+ {
+ match("in");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FORIN"
+
+ // $ANTLR start "RULE_FOROF"
+ public final void mRULE_FOROF() throws RecognitionException {
+ try {
+ int _type = RULE_FOROF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5453:12: ( 'of' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5453:14: 'of'
+ {
+ match("of");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FOROF"
+
+ // $ANTLR start "RULE_FUNC_EXIST"
+ public final void mRULE_FUNC_EXIST() throws RecognitionException {
+ try {
+ int _type = RULE_FUNC_EXIST;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5455:17: ( 'dummy FUNC_EXIST' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5455:19: 'dummy FUNC_EXIST'
+ {
+ match("dummy FUNC_EXIST");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FUNC_EXIST"
+
+ // $ANTLR start "RULE_HERECOMMENT"
+ public final void mRULE_HERECOMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_HERECOMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5457:18: ( 'dummy HERECOMMENT' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5457:20: 'dummy HERECOMMENT'
+ {
+ match("dummy HERECOMMENT");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HERECOMMENT"
+
+ // $ANTLR start "RULE_IF"
+ public final void mRULE_IF() throws RecognitionException {
+ try {
+ int _type = RULE_IF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5459:9: ( ( 'if' | 'unless' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5459:11: ( 'if' | 'unless' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5459:11: ( 'if' | 'unless' )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='i') ) {
+ alt5=1;
+ }
+ else if ( (LA5_0=='u') ) {
+ alt5=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5459:12: 'if'
+ {
+ match("if");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5459:17: 'unless'
+ {
+ match("unless");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IF"
+
+ // $ANTLR start "RULE_INDENT"
+ public final void mRULE_INDENT() throws RecognitionException {
+ try {
+ int _type = RULE_INDENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5461:13: ( '{*' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5461:15: '{*'
+ {
+ match("{*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDENT"
+
+ // $ANTLR start "RULE_INDEX_END"
+ public final void mRULE_INDEX_END() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_END;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5463:16: ( '*]' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5463:18: '*]'
+ {
+ match("*]");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_END"
+
+ // $ANTLR start "RULE_INDEX_PROTO"
+ public final void mRULE_INDEX_PROTO() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_PROTO;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5465:18: ( 'dummy INDEX_PROTO' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5465:20: 'dummy INDEX_PROTO'
+ {
+ match("dummy INDEX_PROTO");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_PROTO"
+
+ // $ANTLR start "RULE_INDEX_SOAK"
+ public final void mRULE_INDEX_SOAK() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_SOAK;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5467:17: ( 'dummy INDEX_SOAK' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5467:19: 'dummy INDEX_SOAK'
+ {
+ match("dummy INDEX_SOAK");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_SOAK"
+
+ // $ANTLR start "RULE_INDEX_START"
+ public final void mRULE_INDEX_START() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_START;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5469:18: ( '[*' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5469:20: '[*'
+ {
+ match("[*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_START"
+
+ // $ANTLR start "RULE_JS"
+ public final void mRULE_JS() throws RecognitionException {
+ try {
+ int _type = RULE_JS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5471:9: ( 'dummy JS' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5471:11: 'dummy JS'
+ {
+ match("dummy JS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_JS"
+
+ // $ANTLR start "RULE_LBRACKET"
+ public final void mRULE_LBRACKET() throws RecognitionException {
+ try {
+ int _type = RULE_LBRACKET;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5473:15: ( '[' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5473:17: '['
+ {
+ match('[');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LBRACKET"
+
+ // $ANTLR start "RULE_LCURLY"
+ public final void mRULE_LCURLY() throws RecognitionException {
+ try {
+ int _type = RULE_LCURLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5475:13: ( 'dummy LCURLY' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5475:15: 'dummy LCURLY'
+ {
+ match("dummy LCURLY");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LCURLY"
+
+ // $ANTLR start "RULE_LEADING_WHEN"
+ public final void mRULE_LEADING_WHEN() throws RecognitionException {
+ try {
+ int _type = RULE_LEADING_WHEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5477:19: ( 'dummy LEADING_WHEN' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5477:21: 'dummy LEADING_WHEN'
+ {
+ match("dummy LEADING_WHEN");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LEADING_WHEN"
+
+ // $ANTLR start "RULE_LOGIC"
+ public final void mRULE_LOGIC() throws RecognitionException {
+ try {
+ int _type = RULE_LOGIC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5479:12: ( ( '&&' | '||' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5479:14: ( '&&' | '||' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5479:14: ( '&&' | '||' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='&') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='|') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5479:15: '&&'
+ {
+ match("&&");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5479:20: '||'
+ {
+ match("||");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LOGIC"
+
+ // $ANTLR start "RULE_LOOP"
+ public final void mRULE_LOOP() throws RecognitionException {
+ try {
+ int _type = RULE_LOOP;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5481:11: ( 'loop' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5481:13: 'loop'
+ {
+ match("loop");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LOOP"
+
+ // $ANTLR start "RULE_LPAREN"
+ public final void mRULE_LPAREN() throws RecognitionException {
+ try {
+ int _type = RULE_LPAREN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5483:13: ( '(' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5483:15: '('
+ {
+ match('(');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LPAREN"
+
+ // $ANTLR start "RULE_MATH"
+ public final void mRULE_MATH() throws RecognitionException {
+ try {
+ int _type = RULE_MATH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5485:11: ( ( '*' | '/' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5485:13: ( '*' | '/' )
+ {
+ if ( input.LA(1)=='*'||input.LA(1)=='/' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_MATH"
+
+ // $ANTLR start "RULE_MINUS"
+ public final void mRULE_MINUS() throws RecognitionException {
+ try {
+ int _type = RULE_MINUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5487:12: ( '-' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5487:14: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_MINUS"
+
+ // $ANTLR start "RULE_NEW"
+ public final void mRULE_NEW() throws RecognitionException {
+ try {
+ int _type = RULE_NEW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5489:10: ( 'new' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5489:12: 'new'
+ {
+ match("new");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_NEW"
+
+ // $ANTLR start "RULE_NUMBER"
+ public final void mRULE_NUMBER() throws RecognitionException {
+ try {
+ int _type = RULE_NUMBER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5491:13: ( ( '0' .. '9' )+ )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5491:15: ( '0' .. '9' )+
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5491:15: ( '0' .. '9' )+
+ int cnt7=0;
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>='0' && LA7_0<='9')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5491:16: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt7 >= 1 ) break loop7;
+ EarlyExitException eee =
+ new EarlyExitException(7, input);
+ throw eee;
+ }
+ cnt7++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_NUMBER"
+
+ // $ANTLR start "RULE_OUTDENT"
+ public final void mRULE_OUTDENT() throws RecognitionException {
+ try {
+ int _type = RULE_OUTDENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5493:14: ( '*}' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5493:16: '*}'
+ {
+ match("*}");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_OUTDENT"
+
+ // $ANTLR start "RULE_OWN"
+ public final void mRULE_OWN() throws RecognitionException {
+ try {
+ int _type = RULE_OWN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5495:10: ( 'own' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5495:12: 'own'
+ {
+ match("own");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_OWN"
+
+ // $ANTLR start "RULE_PLUS"
+ public final void mRULE_PLUS() throws RecognitionException {
+ try {
+ int _type = RULE_PLUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5497:11: ( '+' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5497:13: '+'
+ {
+ match('+');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PLUS"
+
+ // $ANTLR start "RULE_POST_IF"
+ public final void mRULE_POST_IF() throws RecognitionException {
+ try {
+ int _type = RULE_POST_IF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5499:14: ( 'dummy POST_IF' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5499:16: 'dummy POST_IF'
+ {
+ match("dummy POST_IF");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_POST_IF"
+
+ // $ANTLR start "RULE_QUESTION"
+ public final void mRULE_QUESTION() throws RecognitionException {
+ try {
+ int _type = RULE_QUESTION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5501:15: ( '?' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5501:17: '?'
+ {
+ match('?');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_QUESTION"
+
+ // $ANTLR start "RULE_QUESTION_DOT"
+ public final void mRULE_QUESTION_DOT() throws RecognitionException {
+ try {
+ int _type = RULE_QUESTION_DOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5503:19: ( '?.' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5503:21: '?.'
+ {
+ match("?.");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_QUESTION_DOT"
+
+ // $ANTLR start "RULE_RBRACKET"
+ public final void mRULE_RBRACKET() throws RecognitionException {
+ try {
+ int _type = RULE_RBRACKET;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5505:15: ( ']' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5505:17: ']'
+ {
+ match(']');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RBRACKET"
+
+ // $ANTLR start "RULE_RCURLY"
+ public final void mRULE_RCURLY() throws RecognitionException {
+ try {
+ int _type = RULE_RCURLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5507:13: ( 'dummy RCURLY' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5507:15: 'dummy RCURLY'
+ {
+ match("dummy RCURLY");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RCURLY"
+
+ // $ANTLR start "RULE_REGEX"
+ public final void mRULE_REGEX() throws RecognitionException {
+ try {
+ int _type = RULE_REGEX;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5509:12: ( '///' ( options {greedy=false; } : . )* '///' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5509:14: '///' ( options {greedy=false; } : . )* '///'
+ {
+ match("///");
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5509:20: ( options {greedy=false; } : . )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='/') ) {
+ int LA8_1 = input.LA(2);
+
+ if ( (LA8_1=='/') ) {
+ int LA8_3 = input.LA(3);
+
+ if ( (LA8_3=='/') ) {
+ alt8=2;
+ }
+ else if ( ((LA8_3>='\u0000' && LA8_3<='.')||(LA8_3>='0' && LA8_3<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ }
+ else if ( ((LA8_1>='\u0000' && LA8_1<='.')||(LA8_1>='0' && LA8_1<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ }
+ else if ( ((LA8_0>='\u0000' && LA8_0<='.')||(LA8_0>='0' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5509:48: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ match("///");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_REGEX"
+
+ // $ANTLR start "RULE_RELATION"
+ public final void mRULE_RELATION() throws RecognitionException {
+ try {
+ int _type = RULE_RELATION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5511:15: ( ( 'in' | 'of' | 'instanceof' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5511:17: ( 'in' | 'of' | 'instanceof' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5511:17: ( 'in' | 'of' | 'instanceof' )
+ int alt9=3;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='i') ) {
+ int LA9_1 = input.LA(2);
+
+ if ( (LA9_1=='n') ) {
+ int LA9_3 = input.LA(3);
+
+ if ( (LA9_3=='s') ) {
+ alt9=3;
+ }
+ else {
+ alt9=1;}
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA9_0=='o') ) {
+ alt9=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5511:18: 'in'
+ {
+ match("in");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5511:23: 'of'
+ {
+ match("of");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5511:28: 'instanceof'
+ {
+ match("instanceof");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RELATION"
+
+ // $ANTLR start "RULE_RETURN"
+ public final void mRULE_RETURN() throws RecognitionException {
+ try {
+ int _type = RULE_RETURN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5513:13: ( 'return' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5513:15: 'return'
+ {
+ match("return");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RETURN"
+
+ // $ANTLR start "RULE_RPAREN"
+ public final void mRULE_RPAREN() throws RecognitionException {
+ try {
+ int _type = RULE_RPAREN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5515:13: ( ')' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5515:15: ')'
+ {
+ match(')');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RPAREN"
+
+ // $ANTLR start "RULE_STATEMENT"
+ public final void mRULE_STATEMENT() throws RecognitionException {
+ try {
+ int _type = RULE_STATEMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5517:16: ( ( 'break' | 'continue' | 'debugger' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5517:18: ( 'break' | 'continue' | 'debugger' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5517:18: ( 'break' | 'continue' | 'debugger' )
+ int alt10=3;
+ switch ( input.LA(1) ) {
+ case 'b':
+ {
+ alt10=1;
+ }
+ break;
+ case 'c':
+ {
+ alt10=2;
+ }
+ break;
+ case 'd':
+ {
+ alt10=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt10) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5517:19: 'break'
+ {
+ match("break");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5517:27: 'continue'
+ {
+ match("continue");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5517:38: 'debugger'
+ {
+ match("debugger");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STATEMENT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:13: ( ( '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\'' | '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\'' | '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"' | '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:15: ( '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\'' | '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\'' | '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"' | '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:15: ( '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\'' | '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\'' | '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"' | '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"' )
+ int alt17=4;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='\'') ) {
+ int LA17_1 = input.LA(2);
+
+ if ( (LA17_1=='\'') ) {
+ int LA17_3 = input.LA(3);
+
+ if ( (LA17_3=='\'') ) {
+ alt17=1;
+ }
+ else {
+ alt17=2;}
+ }
+ else if ( ((LA17_1>='\u0000' && LA17_1<='&')||(LA17_1>='(' && LA17_1<='\uFFFF')) ) {
+ alt17=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA17_0=='\"') ) {
+ int LA17_2 = input.LA(2);
+
+ if ( (LA17_2=='\"') ) {
+ int LA17_5 = input.LA(3);
+
+ if ( (LA17_5=='\"') ) {
+ alt17=3;
+ }
+ else {
+ alt17=4;}
+ }
+ else if ( ((LA17_2>='\u0000' && LA17_2<='!')||(LA17_2>='#' && LA17_2<='\uFFFF')) ) {
+ alt17=4;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+
+ throw nvae;
+ }
+ switch (alt17) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:16: '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\''
+ {
+ match("'''");
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:25: ( options {greedy=false; } : . )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\'') ) {
+ int LA11_1 = input.LA(2);
+
+ if ( (LA11_1=='\'') ) {
+ int LA11_3 = input.LA(3);
+
+ if ( (LA11_3=='\'') ) {
+ alt11=2;
+ }
+ else if ( ((LA11_3>='\u0000' && LA11_3<='&')||(LA11_3>='(' && LA11_3<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ }
+ else if ( ((LA11_1>='\u0000' && LA11_1<='&')||(LA11_1>='(' && LA11_1<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ }
+ else if ( ((LA11_0>='\u0000' && LA11_0<='&')||(LA11_0>='(' && LA11_0<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:53: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ match("'''");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:66: '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\''
+ {
+ match('\'');
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:71: (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='\uFFFF')) ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:72: ~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:80: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop12:
+ do {
+ int alt12=3;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\\') ) {
+ alt12=1;
+ }
+ else if ( ((LA12_0>='\u0000' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='[')||(LA12_0>=']' && LA12_0<='\uFFFF')) ) {
+ alt12=2;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:81: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:126: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ match('\'');
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:150: '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"'
+ {
+ match("\"\"\"");
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:156: ( options {greedy=false; } : . )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='\"') ) {
+ int LA14_1 = input.LA(2);
+
+ if ( (LA14_1=='\"') ) {
+ int LA14_3 = input.LA(3);
+
+ if ( (LA14_3=='\"') ) {
+ alt14=2;
+ }
+ else if ( ((LA14_3>='\u0000' && LA14_3<='!')||(LA14_3>='#' && LA14_3<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_1>='\u0000' && LA14_1<='!')||(LA14_1>='#' && LA14_1<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_0>='\u0000' && LA14_0<='!')||(LA14_0>='#' && LA14_0<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:184: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ match("\"\"\"");
+
+
+ }
+ break;
+ case 4 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:194: '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"'
+ {
+ match('\"');
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:198: (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( ((LA16_0>='\u0000' && LA16_0<='!')||(LA16_0>='#' && LA16_0<='\uFFFF')) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:199: ~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:206: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop15:
+ do {
+ int alt15=3;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0=='\\') ) {
+ alt15=1;
+ }
+ else if ( ((LA15_0>='\u0000' && LA15_0<='!')||(LA15_0>='#' && LA15_0<='[')||(LA15_0>=']' && LA15_0<='\uFFFF')) ) {
+ alt15=2;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:207: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5519:252: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ match('\"');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_SUPER"
+ public final void mRULE_SUPER() throws RecognitionException {
+ try {
+ int _type = RULE_SUPER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5521:12: ( 'super' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5521:14: 'super'
+ {
+ match("super");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SUPER"
+
+ // $ANTLR start "RULE_SWITCH"
+ public final void mRULE_SWITCH() throws RecognitionException {
+ try {
+ int _type = RULE_SWITCH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5523:13: ( 'switch' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5523:15: 'switch'
+ {
+ match("switch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SWITCH"
+
+ // $ANTLR start "RULE_TERMINATOR"
+ public final void mRULE_TERMINATOR() throws RecognitionException {
+ try {
+ int _type = RULE_TERMINATOR;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5525:17: ( ( '\\n' )+ )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5525:19: ( '\\n' )+
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5525:19: ( '\\n' )+
+ int cnt18=0;
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0=='\n') ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5525:19: '\\n'
+ {
+ match('\n');
+
+ }
+ break;
+
+ default :
+ if ( cnt18 >= 1 ) break loop18;
+ EarlyExitException eee =
+ new EarlyExitException(18, input);
+ throw eee;
+ }
+ cnt18++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_TERMINATOR"
+
+ // $ANTLR start "RULE_THEN"
+ public final void mRULE_THEN() throws RecognitionException {
+ try {
+ int _type = RULE_THEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5527:11: ( 'then' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5527:13: 'then'
+ {
+ match("then");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_THEN"
+
+ // $ANTLR start "RULE_THIS"
+ public final void mRULE_THIS() throws RecognitionException {
+ try {
+ int _type = RULE_THIS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5529:11: ( 'this' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5529:13: 'this'
+ {
+ match("this");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_THIS"
+
+ // $ANTLR start "RULE_THROW"
+ public final void mRULE_THROW() throws RecognitionException {
+ try {
+ int _type = RULE_THROW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5531:12: ( 'throw' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5531:14: 'throw'
+ {
+ match("throw");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_THROW"
+
+ // $ANTLR start "RULE_TRY"
+ public final void mRULE_TRY() throws RecognitionException {
+ try {
+ int _type = RULE_TRY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5533:10: ( 'try' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5533:12: 'try'
+ {
+ match("try");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_TRY"
+
+ // $ANTLR start "RULE_UNARY"
+ public final void mRULE_UNARY() throws RecognitionException {
+ try {
+ int _type = RULE_UNARY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5535:12: ( ( '!' | '~' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5535:14: ( '!' | '~' )
+ {
+ if ( input.LA(1)=='!'||input.LA(1)=='~' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNARY"
+
+ // $ANTLR start "RULE_UNTIL"
+ public final void mRULE_UNTIL() throws RecognitionException {
+ try {
+ int _type = RULE_UNTIL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5537:12: ( 'until' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5537:14: 'until'
+ {
+ match("until");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNTIL"
+
+ // $ANTLR start "RULE_WHEN"
+ public final void mRULE_WHEN() throws RecognitionException {
+ try {
+ int _type = RULE_WHEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5539:11: ( 'when' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5539:13: 'when'
+ {
+ match("when");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WHEN"
+
+ // $ANTLR start "RULE_WHILE"
+ public final void mRULE_WHILE() throws RecognitionException {
+ try {
+ int _type = RULE_WHILE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5541:12: ( 'while' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5541:14: 'while'
+ {
+ match("while");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WHILE"
+
+ // $ANTLR start "RULE_LOGIC_WORD"
+ public final void mRULE_LOGIC_WORD() throws RecognitionException {
+ try {
+ int _type = RULE_LOGIC_WORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5543:17: ( ( 'and' | 'or' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5543:19: ( 'and' | 'or' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5543:19: ( 'and' | 'or' )
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0=='a') ) {
+ alt19=1;
+ }
+ else if ( (LA19_0=='o') ) {
+ alt19=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+
+ throw nvae;
+ }
+ switch (alt19) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5543:20: 'and'
+ {
+ match("and");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5543:26: 'or'
+ {
+ match("or");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LOGIC_WORD"
+
+ // $ANTLR start "RULE_COMPARE_WORD"
+ public final void mRULE_COMPARE_WORD() throws RecognitionException {
+ try {
+ int _type = RULE_COMPARE_WORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5545:19: ( ( 'isnt' | 'is' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5545:21: ( 'isnt' | 'is' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5545:21: ( 'isnt' | 'is' )
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0=='i') ) {
+ int LA20_1 = input.LA(2);
+
+ if ( (LA20_1=='s') ) {
+ int LA20_2 = input.LA(3);
+
+ if ( (LA20_2=='n') ) {
+ alt20=1;
+ }
+ else {
+ alt20=2;}
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+
+ throw nvae;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5545:22: 'isnt'
+ {
+ match("isnt");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5545:29: 'is'
+ {
+ match("is");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMPARE_WORD"
+
+ // $ANTLR start "RULE_UNARY_WORD"
+ public final void mRULE_UNARY_WORD() throws RecognitionException {
+ try {
+ int _type = RULE_UNARY_WORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5547:17: ( ( 'new' | 'do' | 'not' ) )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5547:19: ( 'new' | 'do' | 'not' )
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5547:19: ( 'new' | 'do' | 'not' )
+ int alt21=3;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0=='n') ) {
+ int LA21_1 = input.LA(2);
+
+ if ( (LA21_1=='e') ) {
+ alt21=1;
+ }
+ else if ( (LA21_1=='o') ) {
+ alt21=3;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA21_0=='d') ) {
+ alt21=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 0, input);
+
+ throw nvae;
+ }
+ switch (alt21) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5547:20: 'new'
+ {
+ match("new");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5547:26: 'do'
+ {
+ match("do");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5547:31: 'not'
+ {
+ match("not");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNARY_WORD"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5549:17: ( '###' ~ ( '#' ) ( options {greedy=false; } : . )* '###' )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5549:19: '###' ~ ( '#' ) ( options {greedy=false; } : . )* '###'
+ {
+ match("###");
+
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\"')||(input.LA(1)>='$' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5549:32: ( options {greedy=false; } : . )*
+ loop22:
+ do {
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0=='#') ) {
+ int LA22_1 = input.LA(2);
+
+ if ( (LA22_1=='#') ) {
+ int LA22_3 = input.LA(3);
+
+ if ( (LA22_3=='#') ) {
+ alt22=2;
+ }
+ else if ( ((LA22_3>='\u0000' && LA22_3<='\"')||(LA22_3>='$' && LA22_3<='\uFFFF')) ) {
+ alt22=1;
+ }
+
+
+ }
+ else if ( ((LA22_1>='\u0000' && LA22_1<='\"')||(LA22_1>='$' && LA22_1<='\uFFFF')) ) {
+ alt22=1;
+ }
+
+
+ }
+ else if ( ((LA22_0>='\u0000' && LA22_0<='\"')||(LA22_0>='$' && LA22_0<='\uFFFF')) ) {
+ alt22=1;
+ }
+
+
+ switch (alt22) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5549:60: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop22;
+ }
+ } while (true);
+
+ match("###");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:17: ( '#' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:19: '#' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match('#');
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:23: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( ((LA23_0>='\u0000' && LA23_0<='\t')||(LA23_0>='\u000B' && LA23_0<='\f')||(LA23_0>='\u000E' && LA23_0<='\uFFFF')) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:23: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ } while (true);
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:39: ( ( '\\r' )? '\\n' )?
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0=='\n'||LA25_0=='\r') ) {
+ alt25=1;
+ }
+ switch (alt25) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:40: ( '\\r' )? '\\n'
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:40: ( '\\r' )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0=='\r') ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5551:40: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5553:9: ( ( ' ' | '\\t' )+ )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5553:11: ( ' ' | '\\t' )+
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5553:11: ( ' ' | '\\t' )+
+ int cnt26=0;
+ loop26:
+ do {
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0=='\t'||LA26_0==' ') ) {
+ alt26=1;
+ }
+
+
+ switch (alt26) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:
+ {
+ if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt26 >= 1 ) break loop26;
+ EarlyExitException eee =
+ new EarlyExitException(26, input);
+ throw eee;
+ }
+ cnt26++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_IDENTIFIER"
+ public final void mRULE_IDENTIFIER() throws RecognitionException {
+ try {
+ int _type = RULE_IDENTIFIER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5555:17: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5555:19: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5555:19: ( '^' )?
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0=='^') ) {
+ alt27=1;
+ }
+ switch (alt27) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5555:19: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:5555:48: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop28:
+ do {
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( ((LA28_0>='0' && LA28_0<='9')||(LA28_0>='A' && LA28_0<='Z')||LA28_0=='_'||(LA28_0>='a' && LA28_0<='z')) ) {
+ alt28=1;
+ }
+
+
+ switch (alt28) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop28;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER"
+
+ public void mTokens() throws RecognitionException {
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:8: ( T__85 | RULE_ELLIPSIS | RULE_DOT_DOT | RULE_DOUBLE_COLON | RULE_SHIFT | RULE_BOUND_FUNC_ARROW | RULE_FUNC_ARROW | RULE_COMPARE | RULE_COMPOUND_ASSIGN | RULE_PLUS_PLUS | RULE_MINUS_MINUS | RULE_PARAM_END | RULE_PARAM_START | RULE_AT_SIGIL | RULE_BOOL | RULE_BY | RULE_CALL_END | RULE_CALL_START | RULE_CATCH | RULE_CLASS | RULE_COLON | RULE_COLON_SLASH | RULE_COMMA | RULE_DOT | RULE_ELSE | RULE_EQUAL | RULE_EXTENDS | RULE_FINALLY | RULE_FOR | RULE_FORIN | RULE_FOROF | RULE_FUNC_EXIST | RULE_HERECOMMENT | RULE_IF | RULE_INDENT | RULE_INDEX_END | RULE_INDEX_PROTO | RULE_INDEX_SOAK | RULE_INDEX_START | RULE_JS | RULE_LBRACKET | RULE_LCURLY | RULE_LEADING_WHEN | RULE_LOGIC | RULE_LOOP | RULE_LPAREN | RULE_MATH | RULE_MINUS | RULE_NEW | RULE_NUMBER | RULE_OUTDENT | RULE_OWN | RULE_PLUS | RULE_POST_IF | RULE_QUESTION | RULE_QUESTION_DOT | RULE_RBRACKET | RULE_RCURLY | RULE_REGEX | RULE_RELATION | RULE_RETURN | RULE_RPAREN | RULE_STATEMENT | RULE_STRING | RULE_SUPER | RULE_SWITCH | RULE_TERMINATOR | RULE_THEN | RULE_THIS | RULE_THROW | RULE_TRY | RULE_UNARY | RULE_UNTIL | RULE_WHEN | RULE_WHILE | RULE_LOGIC_WORD | RULE_COMPARE_WORD | RULE_UNARY_WORD | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_IDENTIFIER )
+ int alt29=82;
+ alt29 = dfa29.predict(input);
+ switch (alt29) {
+ case 1 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:10: T__85
+ {
+ mT__85();
+
+ }
+ break;
+ case 2 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:16: RULE_ELLIPSIS
+ {
+ mRULE_ELLIPSIS();
+
+ }
+ break;
+ case 3 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:30: RULE_DOT_DOT
+ {
+ mRULE_DOT_DOT();
+
+ }
+ break;
+ case 4 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:43: RULE_DOUBLE_COLON
+ {
+ mRULE_DOUBLE_COLON();
+
+ }
+ break;
+ case 5 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:61: RULE_SHIFT
+ {
+ mRULE_SHIFT();
+
+ }
+ break;
+ case 6 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:72: RULE_BOUND_FUNC_ARROW
+ {
+ mRULE_BOUND_FUNC_ARROW();
+
+ }
+ break;
+ case 7 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:94: RULE_FUNC_ARROW
+ {
+ mRULE_FUNC_ARROW();
+
+ }
+ break;
+ case 8 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:110: RULE_COMPARE
+ {
+ mRULE_COMPARE();
+
+ }
+ break;
+ case 9 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:123: RULE_COMPOUND_ASSIGN
+ {
+ mRULE_COMPOUND_ASSIGN();
+
+ }
+ break;
+ case 10 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:144: RULE_PLUS_PLUS
+ {
+ mRULE_PLUS_PLUS();
+
+ }
+ break;
+ case 11 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:159: RULE_MINUS_MINUS
+ {
+ mRULE_MINUS_MINUS();
+
+ }
+ break;
+ case 12 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:176: RULE_PARAM_END
+ {
+ mRULE_PARAM_END();
+
+ }
+ break;
+ case 13 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:191: RULE_PARAM_START
+ {
+ mRULE_PARAM_START();
+
+ }
+ break;
+ case 14 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:208: RULE_AT_SIGIL
+ {
+ mRULE_AT_SIGIL();
+
+ }
+ break;
+ case 15 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:222: RULE_BOOL
+ {
+ mRULE_BOOL();
+
+ }
+ break;
+ case 16 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:232: RULE_BY
+ {
+ mRULE_BY();
+
+ }
+ break;
+ case 17 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:240: RULE_CALL_END
+ {
+ mRULE_CALL_END();
+
+ }
+ break;
+ case 18 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:254: RULE_CALL_START
+ {
+ mRULE_CALL_START();
+
+ }
+ break;
+ case 19 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:270: RULE_CATCH
+ {
+ mRULE_CATCH();
+
+ }
+ break;
+ case 20 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:281: RULE_CLASS
+ {
+ mRULE_CLASS();
+
+ }
+ break;
+ case 21 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:292: RULE_COLON
+ {
+ mRULE_COLON();
+
+ }
+ break;
+ case 22 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:303: RULE_COLON_SLASH
+ {
+ mRULE_COLON_SLASH();
+
+ }
+ break;
+ case 23 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:320: RULE_COMMA
+ {
+ mRULE_COMMA();
+
+ }
+ break;
+ case 24 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:331: RULE_DOT
+ {
+ mRULE_DOT();
+
+ }
+ break;
+ case 25 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:340: RULE_ELSE
+ {
+ mRULE_ELSE();
+
+ }
+ break;
+ case 26 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:350: RULE_EQUAL
+ {
+ mRULE_EQUAL();
+
+ }
+ break;
+ case 27 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:361: RULE_EXTENDS
+ {
+ mRULE_EXTENDS();
+
+ }
+ break;
+ case 28 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:374: RULE_FINALLY
+ {
+ mRULE_FINALLY();
+
+ }
+ break;
+ case 29 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:387: RULE_FOR
+ {
+ mRULE_FOR();
+
+ }
+ break;
+ case 30 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:396: RULE_FORIN
+ {
+ mRULE_FORIN();
+
+ }
+ break;
+ case 31 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:407: RULE_FOROF
+ {
+ mRULE_FOROF();
+
+ }
+ break;
+ case 32 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:418: RULE_FUNC_EXIST
+ {
+ mRULE_FUNC_EXIST();
+
+ }
+ break;
+ case 33 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:434: RULE_HERECOMMENT
+ {
+ mRULE_HERECOMMENT();
+
+ }
+ break;
+ case 34 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:451: RULE_IF
+ {
+ mRULE_IF();
+
+ }
+ break;
+ case 35 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:459: RULE_INDENT
+ {
+ mRULE_INDENT();
+
+ }
+ break;
+ case 36 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:471: RULE_INDEX_END
+ {
+ mRULE_INDEX_END();
+
+ }
+ break;
+ case 37 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:486: RULE_INDEX_PROTO
+ {
+ mRULE_INDEX_PROTO();
+
+ }
+ break;
+ case 38 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:503: RULE_INDEX_SOAK
+ {
+ mRULE_INDEX_SOAK();
+
+ }
+ break;
+ case 39 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:519: RULE_INDEX_START
+ {
+ mRULE_INDEX_START();
+
+ }
+ break;
+ case 40 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:536: RULE_JS
+ {
+ mRULE_JS();
+
+ }
+ break;
+ case 41 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:544: RULE_LBRACKET
+ {
+ mRULE_LBRACKET();
+
+ }
+ break;
+ case 42 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:558: RULE_LCURLY
+ {
+ mRULE_LCURLY();
+
+ }
+ break;
+ case 43 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:570: RULE_LEADING_WHEN
+ {
+ mRULE_LEADING_WHEN();
+
+ }
+ break;
+ case 44 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:588: RULE_LOGIC
+ {
+ mRULE_LOGIC();
+
+ }
+ break;
+ case 45 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:599: RULE_LOOP
+ {
+ mRULE_LOOP();
+
+ }
+ break;
+ case 46 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:609: RULE_LPAREN
+ {
+ mRULE_LPAREN();
+
+ }
+ break;
+ case 47 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:621: RULE_MATH
+ {
+ mRULE_MATH();
+
+ }
+ break;
+ case 48 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:631: RULE_MINUS
+ {
+ mRULE_MINUS();
+
+ }
+ break;
+ case 49 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:642: RULE_NEW
+ {
+ mRULE_NEW();
+
+ }
+ break;
+ case 50 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:651: RULE_NUMBER
+ {
+ mRULE_NUMBER();
+
+ }
+ break;
+ case 51 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:663: RULE_OUTDENT
+ {
+ mRULE_OUTDENT();
+
+ }
+ break;
+ case 52 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:676: RULE_OWN
+ {
+ mRULE_OWN();
+
+ }
+ break;
+ case 53 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:685: RULE_PLUS
+ {
+ mRULE_PLUS();
+
+ }
+ break;
+ case 54 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:695: RULE_POST_IF
+ {
+ mRULE_POST_IF();
+
+ }
+ break;
+ case 55 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:708: RULE_QUESTION
+ {
+ mRULE_QUESTION();
+
+ }
+ break;
+ case 56 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:722: RULE_QUESTION_DOT
+ {
+ mRULE_QUESTION_DOT();
+
+ }
+ break;
+ case 57 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:740: RULE_RBRACKET
+ {
+ mRULE_RBRACKET();
+
+ }
+ break;
+ case 58 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:754: RULE_RCURLY
+ {
+ mRULE_RCURLY();
+
+ }
+ break;
+ case 59 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:766: RULE_REGEX
+ {
+ mRULE_REGEX();
+
+ }
+ break;
+ case 60 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:777: RULE_RELATION
+ {
+ mRULE_RELATION();
+
+ }
+ break;
+ case 61 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:791: RULE_RETURN
+ {
+ mRULE_RETURN();
+
+ }
+ break;
+ case 62 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:803: RULE_RPAREN
+ {
+ mRULE_RPAREN();
+
+ }
+ break;
+ case 63 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:815: RULE_STATEMENT
+ {
+ mRULE_STATEMENT();
+
+ }
+ break;
+ case 64 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:830: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 65 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:842: RULE_SUPER
+ {
+ mRULE_SUPER();
+
+ }
+ break;
+ case 66 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:853: RULE_SWITCH
+ {
+ mRULE_SWITCH();
+
+ }
+ break;
+ case 67 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:865: RULE_TERMINATOR
+ {
+ mRULE_TERMINATOR();
+
+ }
+ break;
+ case 68 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:881: RULE_THEN
+ {
+ mRULE_THEN();
+
+ }
+ break;
+ case 69 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:891: RULE_THIS
+ {
+ mRULE_THIS();
+
+ }
+ break;
+ case 70 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:901: RULE_THROW
+ {
+ mRULE_THROW();
+
+ }
+ break;
+ case 71 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:912: RULE_TRY
+ {
+ mRULE_TRY();
+
+ }
+ break;
+ case 72 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:921: RULE_UNARY
+ {
+ mRULE_UNARY();
+
+ }
+ break;
+ case 73 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:932: RULE_UNTIL
+ {
+ mRULE_UNTIL();
+
+ }
+ break;
+ case 74 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:943: RULE_WHEN
+ {
+ mRULE_WHEN();
+
+ }
+ break;
+ case 75 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:953: RULE_WHILE
+ {
+ mRULE_WHILE();
+
+ }
+ break;
+ case 76 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:964: RULE_LOGIC_WORD
+ {
+ mRULE_LOGIC_WORD();
+
+ }
+ break;
+ case 77 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:980: RULE_COMPARE_WORD
+ {
+ mRULE_COMPARE_WORD();
+
+ }
+ break;
+ case 78 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:998: RULE_UNARY_WORD
+ {
+ mRULE_UNARY_WORD();
+
+ }
+ break;
+ case 79 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:1014: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 80 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:1030: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 81 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:1046: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 82 :
+ // ../csep/src-gen/csep/parser/antlr/internal/InternalCoffeeScript.g:1:1054: RULE_IDENTIFIER
+ {
+ mRULE_IDENTIFIER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA4 dfa4 = new DFA4(this);
+ protected DFA29 dfa29 = new DFA29(this);
+ static final String DFA4_eotS =
+ "\13\uffff";
+ static final String DFA4_eofS =
+ "\13\uffff";
+ static final String DFA4_minS =
+ "\1\146\3\uffff\1\157\1\146\5\uffff";
+ static final String DFA4_maxS =
+ "\1\171\3\uffff\1\165\1\156\5\uffff";
+ static final String DFA4_acceptS =
+ "\1\uffff\1\1\1\2\1\3\2\uffff\1\7\1\4\1\6\1\5\1\10";
+ static final String DFA4_specialS =
+ "\13\uffff}>";
+ static final String[] DFA4_transitionS = {
+ "\1\2\7\uffff\1\4\1\5\4\uffff\1\1\1\3\3\uffff\1\6",
+ "",
+ "",
+ "",
+ "\1\10\5\uffff\1\7",
+ "\1\12\7\uffff\1\11",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
+ static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
+ static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
+ static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
+ static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
+ static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
+ static final short[][] DFA4_transition;
+
+ static {
+ int numStates = DFA4_transitionS.length;
+ DFA4_transition = new short[numStates][];
+ for (int i=0; i+ * The following features are supported: + *
+ * If the meaning of the 'Tasks' containment reference list isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Tasks' containment reference list. + * @see csep.example.cake.cakefile.CakefilePackage#getCakefile_Tasks() + * @model containment="true" + * @generated + */ + EList+ * The following features are supported: + *
+ * If the meaning of the 'Name' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Name' containment reference. + * @see #setName(StringLiteral) + * @see csep.example.cake.cakefile.CakefilePackage#getTaskDeclaration_Name() + * @model containment="true" + * @generated + */ + StringLiteral getName(); + + /** + * Sets the value of the '{@link csep.example.cake.cakefile.TaskDeclaration#getName Name}' containment reference. + * + * + * @param value the new value of the 'Name' containment reference. + * @see #getName() + * @generated + */ + void setName(StringLiteral value); + + /** + * Returns the value of the 'Description' containment reference. + * + *+ * If the meaning of the 'Description' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Description' containment reference. + * @see #setDescription(StringLiteral) + * @see csep.example.cake.cakefile.CakefilePackage#getTaskDeclaration_Description() + * @model containment="true" + * @generated + */ + StringLiteral getDescription(); + + /** + * Sets the value of the '{@link csep.example.cake.cakefile.TaskDeclaration#getDescription Description}' containment reference. + * + * + * @param value the new value of the 'Description' containment reference. + * @see #getDescription() + * @generated + */ + void setDescription(StringLiteral value); + + /** + * Returns the value of the 'Options' containment reference. + * + *+ * If the meaning of the 'Options' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Options' containment reference. + * @see #setOptions(Id) + * @see csep.example.cake.cakefile.CakefilePackage#getTaskDeclaration_Options() + * @model containment="true" + * @generated + */ + Id getOptions(); + + /** + * Sets the value of the '{@link csep.example.cake.cakefile.TaskDeclaration#getOptions Options}' containment reference. + * + * + * @param value the new value of the 'Options' containment reference. + * @see #getOptions() + * @generated + */ + void setOptions(Id value); + + /** + * Returns the value of the 'Body' containment reference. + * + *+ * If the meaning of the 'Body' containment reference isn't clear, + * there really should be more of a description here... + *
+ * + * @return the value of the 'Body' containment reference. + * @see #setBody(Block) + * @see csep.example.cake.cakefile.CakefilePackage#getTaskDeclaration_Body() + * @model containment="true" + * @generated + */ + Block getBody(); + + /** + * Sets the value of the '{@link csep.example.cake.cakefile.TaskDeclaration#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Block value); + +} // TaskDeclaration diff --git a/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/CakefileFactoryImpl.java b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/CakefileFactoryImpl.java new file mode 100644 index 0000000..9bd6033 --- /dev/null +++ b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/CakefileFactoryImpl.java @@ -0,0 +1,118 @@ +/** + */ +package csep.example.cake.cakefile.impl; + +import csep.example.cake.cakefile.*; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class CakefileFactoryImpl extends EFactoryImpl implements CakefileFactory +{ + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static CakefileFactory init() + { + try + { + CakefileFactory theCakefileFactory = (CakefileFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.example.csep/cake/Cakefile"); + if (theCakefileFactory != null) + { + return theCakefileFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new CakefileFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public CakefileFactoryImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case CakefilePackage.CAKEFILE: return createCakefile(); + case CakefilePackage.TASK_DECLARATION: return createTaskDeclaration(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public Cakefile createCakefile() + { + CakefileImpl cakefile = new CakefileImpl(); + return cakefile; + } + + /** + * + * + * @generated + */ + public TaskDeclaration createTaskDeclaration() + { + TaskDeclarationImpl taskDeclaration = new TaskDeclarationImpl(); + return taskDeclaration; + } + + /** + * + * + * @generated + */ + public CakefilePackage getCakefilePackage() + { + return (CakefilePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static CakefilePackage getPackage() + { + return CakefilePackage.eINSTANCE; + } + +} //CakefileFactoryImpl diff --git a/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/CakefileImpl.java b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/CakefileImpl.java new file mode 100644 index 0000000..ffa5779 --- /dev/null +++ b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/CakefileImpl.java @@ -0,0 +1,167 @@ +/** + */ +package csep.example.cake.cakefile.impl; + +import csep.example.cake.cakefile.Cakefile; +import csep.example.cake.cakefile.CakefilePackage; +import csep.example.cake.cakefile.TaskDeclaration; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Cakefile'. + * + *+ * The following features are implemented: + *
Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see csep.example.cake.cakefile.CakefilePackage#eNS_URI + * @see #init() + * @generated + */ + private CakefilePackageImpl() + { + super(eNS_URI, CakefileFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *
This method is used to initialize {@link CakefilePackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static CakefilePackage init() + { + if (isInited) return (CakefilePackage)EPackage.Registry.INSTANCE.getEPackage(CakefilePackage.eNS_URI); + + // Obtain or create and register package + CakefilePackageImpl theCakefilePackage = (CakefilePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CakefilePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CakefilePackageImpl()); + + isInited = true; + + // Initialize simple dependencies + CoffeeScriptPackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theCakefilePackage.createPackageContents(); + + // Initialize created meta-data + theCakefilePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theCakefilePackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(CakefilePackage.eNS_URI, theCakefilePackage); + return theCakefilePackage; + } + + /** + * + * + * @generated + */ + public EClass getCakefile() + { + return cakefileEClass; + } + + /** + * + * + * @generated + */ + public EReference getCakefile_Tasks() + { + return (EReference)cakefileEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTaskDeclaration() + { + return taskDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getTaskDeclaration_Name() + { + return (EReference)taskDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getTaskDeclaration_Description() + { + return (EReference)taskDeclarationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getTaskDeclaration_Options() + { + return (EReference)taskDeclarationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getTaskDeclaration_Body() + { + return (EReference)taskDeclarationEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public CakefileFactory getCakefileFactory() + { + return (CakefileFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + cakefileEClass = createEClass(CAKEFILE); + createEReference(cakefileEClass, CAKEFILE__TASKS); + + taskDeclarationEClass = createEClass(TASK_DECLARATION); + createEReference(taskDeclarationEClass, TASK_DECLARATION__NAME); + createEReference(taskDeclarationEClass, TASK_DECLARATION__DESCRIPTION); + createEReference(taskDeclarationEClass, TASK_DECLARATION__OPTIONS); + createEReference(taskDeclarationEClass, TASK_DECLARATION__BODY); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + CoffeeScriptPackage theCoffeeScriptPackage = (CoffeeScriptPackage)EPackage.Registry.INSTANCE.getEPackage(CoffeeScriptPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + + // Initialize classes and features; add operations and parameters + initEClass(cakefileEClass, Cakefile.class, "Cakefile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCakefile_Tasks(), this.getTaskDeclaration(), null, "tasks", null, 0, -1, Cakefile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(taskDeclarationEClass, TaskDeclaration.class, "TaskDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTaskDeclaration_Name(), theCoffeeScriptPackage.getStringLiteral(), null, "name", null, 0, 1, TaskDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTaskDeclaration_Description(), theCoffeeScriptPackage.getStringLiteral(), null, "description", null, 0, 1, TaskDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTaskDeclaration_Options(), theCoffeeScriptPackage.getId(), null, "options", null, 0, 1, TaskDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTaskDeclaration_Body(), theCoffeeScriptPackage.getBlock(), null, "body", null, 0, 1, TaskDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //CakefilePackageImpl diff --git a/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/TaskDeclarationImpl.java b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/TaskDeclarationImpl.java new file mode 100644 index 0000000..8cbf6fa --- /dev/null +++ b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/impl/TaskDeclarationImpl.java @@ -0,0 +1,410 @@ +/** + */ +package csep.example.cake.cakefile.impl; + +import csep.coffeeScript.Block; +import csep.coffeeScript.Id; +import csep.coffeeScript.StringLiteral; + +import csep.example.cake.cakefile.CakefilePackage; +import csep.example.cake.cakefile.TaskDeclaration; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +/** + * + * An implementation of the model object 'Task Declaration'. + * + *
+ * The following features are implemented: + *
createXXX
method for each class of the model.
+ *
+ * @see csep.example.cake.cakefile.CakefilePackage
+ * @generated
+ */
+public class CakefileAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ *
+ *
+ * @generated
+ */
+ protected static CakefilePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ *
+ *
+ * @generated
+ */
+ public CakefileAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = CakefilePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ *
+ * This implementation returns true
if the object is either the model's package or is an instance object of the model.
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the createXXX
methods.
+ *
+ *
+ * @generated
+ */
+ protected CakefileSwitchtarget
.
+ *
+ *
+ * @param target the object to adapt.
+ * @return the adapter for the target
.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.example.cake.cakefile.Cakefile Cakefile}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.example.cake.cakefile.Cakefile
+ * @generated
+ */
+ public Adapter createCakefileAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link csep.example.cake.cakefile.TaskDeclaration Task Declaration}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see csep.example.cake.cakefile.TaskDeclaration
+ * @generated
+ */
+ public Adapter createTaskDeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ *
+ * This default implementation returns null.
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //CakefileAdapterFactory
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/cakefile/util/CakefileSwitch.java b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/util/CakefileSwitch.java
new file mode 100644
index 0000000..3151c4e
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/cakefile/util/CakefileSwitch.java
@@ -0,0 +1,142 @@
+/**
+ */
+package csep.example.cake.cakefile.util;
+
+import csep.example.cake.cakefile.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ *
+ * The Switch for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the caseXXX
method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ *
+ * @see csep.example.cake.cakefile.CakefilePackage
+ * @generated
+ */
+public class CakefileSwitchcaseXXX
for each class of the model until one returns a non null result; it yields that result.
+ *
+ *
+ * @return the first non-null result returned by a caseXXX
call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case CakefilePackage.CAKEFILE:
+ {
+ Cakefile cakefile = (Cakefile)theEObject;
+ T result = caseCakefile(cakefile);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CakefilePackage.TASK_DECLARATION:
+ {
+ TaskDeclaration taskDeclaration = (TaskDeclaration)theEObject;
+ T result = caseTaskDeclaration(taskDeclaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Cakefile'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Cakefile'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCakefile(Cakefile object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Task Declaration'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Task Declaration'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTaskDeclaration(TaskDeclaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'EObject'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'EObject'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //CakefileSwitch
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/parseTreeConstruction/CakefileParsetreeConstructor.java b/example/csep.example.cake/src-gen/csep/example/cake/parseTreeConstruction/CakefileParsetreeConstructor.java
new file mode 100644
index 0000000..29339ac
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/parseTreeConstruction/CakefileParsetreeConstructor.java
@@ -0,0 +1,17925 @@
+/*
+* generated by Xtext
+*/
+package csep.example.cake.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+
+import csep.example.cake.services.CakefileGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class CakefileParsetreeConstructor extends org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor {
+
+ @Inject
+ private CakefileGrammarAccess grammarAccess;
+
+ @Override
+ protected AbstractToken getRootToken(IEObjectConsumer inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IEObjectConsumer inst) {
+ super(inst);
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Cakefile_TasksAssignment(this, this, 0, inst);
+ case 1: return new TaskDeclaration_Group(this, this, 1, inst);
+ case 2: return new Root_Alternatives(this, this, 2, inst);
+ case 3: return new Body_Group(this, this, 3, inst);
+ case 4: return new Line_Alternatives(this, this, 4, inst);
+ case 5: return new Stmt_Alternatives(this, this, 5, inst);
+ case 6: return new Comment_CommentAssignment(this, this, 6, inst);
+ case 7: return new RequireStmt_Group(this, this, 7, inst);
+ case 8: return new ReturnStmt_Group(this, this, 8, inst);
+ case 9: return new ThrowStmt_Group(this, this, 9, inst);
+ case 10: return new SuperClass_Alternatives(this, this, 10, inst);
+ case 11: return new ClassDeclaration_Group(this, this, 11, inst);
+ case 12: return new AssignedClassDeclaration_Group(this, this, 12, inst);
+ case 13: return new Expression_PostfixParserRuleCall(this, this, 13, inst);
+ case 14: return new Postfix_Group(this, this, 14, inst);
+ case 15: return new ForBody_Group(this, this, 15, inst);
+ case 16: return new ForValue_IdParserRuleCall(this, this, 16, inst);
+ case 17: return new ForSource_Group(this, this, 17, inst);
+ case 18: return new Range_Group(this, this, 18, inst);
+ case 19: return new Assignment_Alternatives(this, this, 19, inst);
+ case 20: return new Assigned_Alternatives(this, this, 20, inst);
+ case 21: return new LogicOp_Group(this, this, 21, inst);
+ case 22: return new CompareOp_Group(this, this, 22, inst);
+ case 23: return new RelationOp_Group(this, this, 23, inst);
+ case 24: return new ShiftOp_Group(this, this, 24, inst);
+ case 25: return new AdditiveOp_Group(this, this, 25, inst);
+ case 26: return new MathOp_Group(this, this, 26, inst);
+ case 27: return new UnaryOp_Alternatives(this, this, 27, inst);
+ case 28: return new Application_Alternatives(this, this, 28, inst);
+ case 29: return new FeatureCall_Alternatives(this, this, 29, inst);
+ case 30: return new FunctionCall_Group(this, this, 30, inst);
+ case 31: return new PropertyAccess_Alternatives(this, this, 31, inst);
+ case 32: return new ThisProperty_Group(this, this, 32, inst);
+ case 33: return new NamedPropertyAccess_Alternatives(this, this, 33, inst);
+ case 34: return new IndexedPropertyAccess_Group(this, this, 34, inst);
+ case 35: return new Index_Alternatives(this, this, 35, inst);
+ case 36: return new PrimaryExpression_Alternatives(this, this, 36, inst);
+ case 37: return new Block_Group(this, this, 37, inst);
+ case 38: return new Case_Group(this, this, 38, inst);
+ case 39: return new IfExp_Group(this, this, 39, inst);
+ case 40: return new CondBlock_Group(this, this, 40, inst);
+ case 41: return new IdRef_ValAssignment(this, this, 41, inst);
+ case 42: return new Id_NameAssignment(this, this, 42, inst);
+ case 43: return new Property_Alternatives(this, this, 43, inst);
+ case 44: return new Variable_Alternatives(this, this, 44, inst);
+ case 45: return new AssignableArray_Group(this, this, 45, inst);
+ case 46: return new AssignableArgList_Group(this, this, 46, inst);
+ case 47: return new AssignableArg_Group(this, this, 47, inst);
+ case 48: return new Assignable_Alternatives(this, this, 48, inst);
+ case 49: return new Arg_Group(this, this, 49, inst);
+ case 50: return new ArgLine_Group(this, this, 50, inst);
+ case 51: return new ExplicitArgList_Group(this, this, 51, inst);
+ case 52: return new ArgList_Group(this, this, 52, inst);
+ case 53: return new Array_Group(this, this, 53, inst);
+ case 54: return new Dictionary_Group(this, this, 54, inst);
+ case 55: return new DictItems_Group(this, this, 55, inst);
+ case 56: return new ExplicitDictItems_Group(this, this, 56, inst);
+ case 57: return new DictLine_Group(this, this, 57, inst);
+ case 58: return new DictItem_Group(this, this, 58, inst);
+ case 59: return new DictKey_Alternatives(this, this, 59, inst);
+ case 60: return new Lambda_Group(this, this, 60, inst);
+ case 61: return new Param_Group(this, this, 61, inst);
+ case 62: return new NumberLiteral_Group(this, this, 62, inst);
+ case 63: return new StringLiteral_Group(this, this, 63, inst);
+ case 64: return new BoolLiteral_Group(this, this, 64, inst);
+ case 65: return new JSLiteral_Group(this, this, 65, inst);
+ case 66: return new RegexLiteral_Group(this, this, 66, inst);
+ case 67: return new Literal_Alternatives(this, this, 67, inst);
+ case 68: return new Parenthetical_Alternatives(this, this, 68, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule Cakefile ****************
+ *
+ * Cakefile:
+ * tasks+=TaskDeclaration*;
+ *
+ **/
+
+// tasks+=TaskDeclaration*
+protected class Cakefile_TasksAssignment extends AssignmentToken {
+
+ public Cakefile_TasksAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCakefileAccess().getTasksAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tasks",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tasks");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTaskDeclarationRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCakefileAccess().getTasksTaskDeclarationParserRuleCall_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Cakefile_TasksAssignment(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+/************ end Rule Cakefile ****************/
+
+
+/************ begin Rule TaskDeclaration ****************
+ *
+ * / **
+ * * This grammar may look a bit weird. It accepts two kinds of task declaration:
+ * * - task "foo", "Just foo", -> ...
+ * * - task "foo", "Just foo", (opts) -> ...
+ * *
+ * * They are actually calls of the "task" function with a lambda as its last argument.
+ * * The lambda has no parameter in the first case, and a single parameter ("opts") in the second case.
+ * * So the lexer inserts extra parens
+ * * (CALL_START and CALL_END tokens) to make it a function call.
+ * * / TaskDeclaration:
+ * TASK CALL_START name=StringLiteral COMMA description=StringLiteral COMMA (PARAM_START options=Id PARAM_END)?
+ * FUNC_ARROW body=Block CALL_END TERMINATOR;
+ *
+ **/
+
+// TASK CALL_START name=StringLiteral COMMA description=StringLiteral COMMA (PARAM_START options=Id PARAM_END)? FUNC_ARROW
+// body=Block CALL_END TERMINATOR
+protected class TaskDeclaration_Group extends GroupToken {
+
+ public TaskDeclaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_TERMINATORTerminalRuleCall_10(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTaskDeclarationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// TASK
+protected class TaskDeclaration_TASKTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public TaskDeclaration_TASKTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getTASKTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// CALL_START
+protected class TaskDeclaration_CALL_STARTTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public TaskDeclaration_CALL_STARTTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getCALL_STARTTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_TASKTerminalRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=StringLiteral
+protected class TaskDeclaration_NameAssignment_2 extends AssignmentToken {
+
+ public TaskDeclaration_NameAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getNameAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStringLiteralRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTaskDeclarationAccess().getNameStringLiteralParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new TaskDeclaration_CALL_STARTTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// COMMA
+protected class TaskDeclaration_COMMATerminalRuleCall_3 extends UnassignedTextToken {
+
+ public TaskDeclaration_COMMATerminalRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getCOMMATerminalRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_NameAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// description=StringLiteral
+protected class TaskDeclaration_DescriptionAssignment_4 extends AssignmentToken {
+
+ public TaskDeclaration_DescriptionAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getDescriptionAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("description",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("description");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getStringLiteralRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTaskDeclarationAccess().getDescriptionStringLiteralParserRuleCall_4_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new TaskDeclaration_COMMATerminalRuleCall_3(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// COMMA
+protected class TaskDeclaration_COMMATerminalRuleCall_5 extends UnassignedTextToken {
+
+ public TaskDeclaration_COMMATerminalRuleCall_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getCOMMATerminalRuleCall_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_DescriptionAssignment_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (PARAM_START options=Id PARAM_END)?
+protected class TaskDeclaration_Group_6 extends GroupToken {
+
+ public TaskDeclaration_Group_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getGroup_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_PARAM_ENDTerminalRuleCall_6_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// PARAM_START
+protected class TaskDeclaration_PARAM_STARTTerminalRuleCall_6_0 extends UnassignedTextToken {
+
+ public TaskDeclaration_PARAM_STARTTerminalRuleCall_6_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getPARAM_STARTTerminalRuleCall_6_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_COMMATerminalRuleCall_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// options=Id
+protected class TaskDeclaration_OptionsAssignment_6_1 extends AssignmentToken {
+
+ public TaskDeclaration_OptionsAssignment_6_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getOptionsAssignment_6_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("options",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("options");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTaskDeclarationAccess().getOptionsIdParserRuleCall_6_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new TaskDeclaration_PARAM_STARTTerminalRuleCall_6_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// PARAM_END
+protected class TaskDeclaration_PARAM_ENDTerminalRuleCall_6_2 extends UnassignedTextToken {
+
+ public TaskDeclaration_PARAM_ENDTerminalRuleCall_6_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getPARAM_ENDTerminalRuleCall_6_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_OptionsAssignment_6_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// FUNC_ARROW
+protected class TaskDeclaration_FUNC_ARROWTerminalRuleCall_7 extends UnassignedTextToken {
+
+ public TaskDeclaration_FUNC_ARROWTerminalRuleCall_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getFUNC_ARROWTerminalRuleCall_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_Group_6(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new TaskDeclaration_COMMATerminalRuleCall_5(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class TaskDeclaration_BodyAssignment_8 extends AssignmentToken {
+
+ public TaskDeclaration_BodyAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getBodyAssignment_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTaskDeclarationAccess().getBodyBlockParserRuleCall_8_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new TaskDeclaration_FUNC_ARROWTerminalRuleCall_7(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// CALL_END
+protected class TaskDeclaration_CALL_ENDTerminalRuleCall_9 extends UnassignedTextToken {
+
+ public TaskDeclaration_CALL_ENDTerminalRuleCall_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getCALL_ENDTerminalRuleCall_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_BodyAssignment_8(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class TaskDeclaration_TERMINATORTerminalRuleCall_10 extends UnassignedTextToken {
+
+ public TaskDeclaration_TERMINATORTerminalRuleCall_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getTaskDeclarationAccess().getTERMINATORTerminalRuleCall_10();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new TaskDeclaration_CALL_ENDTerminalRuleCall_9(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule TaskDeclaration ****************/
+
+
+/************ begin Rule Root ****************
+ *
+ * Root:
+ * (Body | Block TERMINATOR)?;
+ *
+ **/
+
+// (Body | Block TERMINATOR)?
+protected class Root_Alternatives extends AlternativesToken {
+
+ public Root_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getRootAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_BodyParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Root_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockAccess().getBlockAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Body
+protected class Root_BodyParserRuleCall_0 extends RuleCallToken {
+
+ public Root_BodyParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRootAccess().getBodyParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Body_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Block TERMINATOR
+protected class Root_Group_1 extends GroupToken {
+
+ public Root_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRootAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_TERMINATORTerminalRuleCall_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// Block
+protected class Root_BlockParserRuleCall_1_0 extends RuleCallToken {
+
+ public Root_BlockParserRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRootAccess().getBlockParserRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Block_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// TERMINATOR
+protected class Root_TERMINATORTerminalRuleCall_1_1 extends UnassignedTextToken {
+
+ public Root_TERMINATORTerminalRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRootAccess().getTERMINATORTerminalRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Root_BlockParserRuleCall_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Root ****************/
+
+
+/************ begin Rule Body ****************
+ *
+ * Body:
+ * lines+=Line (TERMINATOR lines+=Line?)*;
+ *
+ **/
+
+// lines+=Line (TERMINATOR lines+=Line?)*
+protected class Body_Group extends GroupToken {
+
+ public Body_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBodyAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Body_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// lines+=Line
+protected class Body_LinesAssignment_0 extends AssignmentToken {
+
+ public Body_LinesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBodyAccess().getLinesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Line_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getBodyAccess().getLinesLineParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (TERMINATOR lines+=Line?)*
+protected class Body_Group_1 extends GroupToken {
+
+ public Body_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBodyAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_LinesAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class Body_TERMINATORTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Body_TERMINATORTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBodyAccess().getTERMINATORTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Body_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=Line?
+protected class Body_LinesAssignment_1_1 extends AssignmentToken {
+
+ public Body_LinesAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getBodyAccess().getLinesAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Line_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getBodyAccess().getLinesLineParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Body_TERMINATORTerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule Body ****************/
+
+
+/************ begin Rule Line ****************
+ *
+ * Line:
+ * Stmt | Expression;
+ *
+ **/
+
+// Stmt | Expression
+protected class Line_Alternatives extends AlternativesToken {
+
+ public Line_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLineAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Line_StmtParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Line_ExpressionParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Stmt
+protected class Line_StmtParserRuleCall_0 extends RuleCallToken {
+
+ public Line_StmtParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLineAccess().getStmtParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Stmt_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Stmt_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Expression
+protected class Line_ExpressionParserRuleCall_1 extends RuleCallToken {
+
+ public Line_ExpressionParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLineAccess().getExpressionParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Line ****************/
+
+
+/************ begin Rule Stmt ****************
+ *
+ * Stmt:
+ * ReturnStmt | ThrowStmt | RequireStmt | Comment | ClassDeclaration | statement=STATEMENT;
+ *
+ **/
+
+// ReturnStmt | ThrowStmt | RequireStmt | Comment | ClassDeclaration | statement=STATEMENT
+protected class Stmt_Alternatives extends AlternativesToken {
+
+ public Stmt_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getStmtAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Stmt_ReturnStmtParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Stmt_ThrowStmtParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Stmt_RequireStmtParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Stmt_CommentParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new Stmt_ClassDeclarationParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new Stmt_StatementAssignment_5(lastRuleCallOrigin, this, 5, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// ReturnStmt
+protected class Stmt_ReturnStmtParserRuleCall_0 extends RuleCallToken {
+
+ public Stmt_ReturnStmtParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getReturnStmtParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ReturnStmt_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThrowStmt
+protected class Stmt_ThrowStmtParserRuleCall_1 extends RuleCallToken {
+
+ public Stmt_ThrowStmtParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getThrowStmtParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThrowStmt_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThrowStmt_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// RequireStmt
+protected class Stmt_RequireStmtParserRuleCall_2 extends RuleCallToken {
+
+ public Stmt_RequireStmtParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getRequireStmtParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(RequireStmt_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Comment
+protected class Stmt_CommentParserRuleCall_3 extends RuleCallToken {
+
+ public Stmt_CommentParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getCommentParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Comment_CommentAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Comment_CommentAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ClassDeclaration
+protected class Stmt_ClassDeclarationParserRuleCall_4 extends RuleCallToken {
+
+ public Stmt_ClassDeclarationParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStmtAccess().getClassDeclarationParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ClassDeclaration_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// statement=STATEMENT
+protected class Stmt_StatementAssignment_5 extends AssignmentToken {
+
+ public Stmt_StatementAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStmtAccess().getStatementAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStmtRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("statement",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("statement");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStmtAccess().getStatementSTATEMENTTerminalRuleCall_5_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStmtAccess().getStatementSTATEMENTTerminalRuleCall_5_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule Stmt ****************/
+
+
+/************ begin Rule Comment ****************
+ *
+ * Comment:
+ * comment=HERECOMMENT;
+ *
+ **/
+
+// comment=HERECOMMENT
+protected class Comment_CommentAssignment extends AssignmentToken {
+
+ public Comment_CommentAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCommentAccess().getCommentAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCommentRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("comment",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("comment");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCommentAccess().getCommentHERECOMMENTTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCommentAccess().getCommentHERECOMMENTTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule Comment ****************/
+
+
+/************ begin Rule RequireStmt ****************
+ *
+ * / **
+ * * Treat it a special way, because it takes care of import
+ * * / RequireStmt:
+ * => (importedNamespace=Id EQUAL "require") CALL_START uri=STRING CALL_END;
+ *
+ **/
+
+// => (importedNamespace=Id EQUAL "require") CALL_START uri=STRING CALL_END
+protected class RequireStmt_Group extends GroupToken {
+
+ public RequireStmt_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_CALL_ENDTerminalRuleCall_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRequireStmtRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (importedNamespace=Id EQUAL "require")
+protected class RequireStmt_Group_0 extends GroupToken {
+
+ public RequireStmt_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_Group_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// importedNamespace=Id EQUAL "require"
+protected class RequireStmt_Group_0_0 extends GroupToken {
+
+ public RequireStmt_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_RequireKeyword_0_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// importedNamespace=Id
+protected class RequireStmt_ImportedNamespaceAssignment_0_0_0 extends AssignmentToken {
+
+ public RequireStmt_ImportedNamespaceAssignment_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getImportedNamespaceAssignment_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("importedNamespace",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("importedNamespace");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRequireStmtAccess().getImportedNamespaceIdParserRuleCall_0_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// EQUAL
+protected class RequireStmt_EQUALTerminalRuleCall_0_0_1 extends UnassignedTextToken {
+
+ public RequireStmt_EQUALTerminalRuleCall_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getEQUALTerminalRuleCall_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_ImportedNamespaceAssignment_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "require"
+protected class RequireStmt_RequireKeyword_0_0_2 extends KeywordToken {
+
+ public RequireStmt_RequireKeyword_0_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getRequireKeyword_0_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_EQUALTerminalRuleCall_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// CALL_START
+protected class RequireStmt_CALL_STARTTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public RequireStmt_CALL_STARTTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getCALL_STARTTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_Group_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// uri=STRING
+protected class RequireStmt_UriAssignment_2 extends AssignmentToken {
+
+ public RequireStmt_UriAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getUriAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_CALL_STARTTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("uri",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("uri");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRequireStmtAccess().getUriSTRINGTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getRequireStmtAccess().getUriSTRINGTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// CALL_END
+protected class RequireStmt_CALL_ENDTerminalRuleCall_3 extends UnassignedTextToken {
+
+ public RequireStmt_CALL_ENDTerminalRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRequireStmtAccess().getCALL_ENDTerminalRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RequireStmt_UriAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule RequireStmt ****************/
+
+
+/************ begin Rule ReturnStmt ****************
+ *
+ * ReturnStmt:
+ * {ReturnStmt} RETURN expression=Expression? (POST_IF condition=Expression)?;
+ *
+ **/
+
+// {ReturnStmt} RETURN expression=Expression? (POST_IF condition=Expression)?
+protected class ReturnStmt_Group extends GroupToken {
+
+ public ReturnStmt_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_Group_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ReturnStmt_ExpressionAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new ReturnStmt_RETURNTerminalRuleCall_1(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getReturnStmtAccess().getReturnStmtAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ReturnStmt}
+protected class ReturnStmt_ReturnStmtAction_0 extends ActionToken {
+
+ public ReturnStmt_ReturnStmtAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getReturnStmtAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// RETURN
+protected class ReturnStmt_RETURNTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public ReturnStmt_RETURNTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getRETURNTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_ReturnStmtAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expression=Expression?
+protected class ReturnStmt_ExpressionAssignment_2 extends AssignmentToken {
+
+ public ReturnStmt_ExpressionAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getExpressionAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expression",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expression");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getReturnStmtAccess().getExpressionExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ReturnStmt_RETURNTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (POST_IF condition=Expression)?
+protected class ReturnStmt_Group_3 extends GroupToken {
+
+ public ReturnStmt_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getGroup_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_ConditionAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// POST_IF
+protected class ReturnStmt_POST_IFTerminalRuleCall_3_0 extends UnassignedTextToken {
+
+ public ReturnStmt_POST_IFTerminalRuleCall_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getPOST_IFTerminalRuleCall_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ReturnStmt_ExpressionAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ReturnStmt_RETURNTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// condition=Expression
+protected class ReturnStmt_ConditionAssignment_3_1 extends AssignmentToken {
+
+ public ReturnStmt_ConditionAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getReturnStmtAccess().getConditionAssignment_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getReturnStmtAccess().getConditionExpressionParserRuleCall_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ReturnStmt_POST_IFTerminalRuleCall_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ReturnStmt ****************/
+
+
+/************ begin Rule ThrowStmt ****************
+ *
+ * ThrowStmt:
+ * THROW exp=Expression;
+ *
+ **/
+
+// THROW exp=Expression
+protected class ThrowStmt_Group extends GroupToken {
+
+ public ThrowStmt_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getThrowStmtAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThrowStmt_ExpAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getThrowStmtRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// THROW
+protected class ThrowStmt_THROWTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public ThrowStmt_THROWTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getThrowStmtAccess().getTHROWTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// exp=Expression
+protected class ThrowStmt_ExpAssignment_1 extends AssignmentToken {
+
+ public ThrowStmt_ExpAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getThrowStmtAccess().getExpAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getThrowStmtAccess().getExpExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ThrowStmt_THROWTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ThrowStmt ****************/
+
+
+/************ begin Rule SuperClass ****************
+ *
+ * / **
+ * * Coffeescript is permissive, it can be any expression, but we want to be able to check it as crossref
+ * * / SuperClass:
+ * IdRef | Property;
+ *
+ **/
+
+// IdRef | Property
+protected class SuperClass_Alternatives extends AlternativesToken {
+
+ public SuperClass_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSuperClassAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_IdRefParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new SuperClass_PropertyParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// IdRef
+protected class SuperClass_IdRefParserRuleCall_0 extends RuleCallToken {
+
+ public SuperClass_IdRefParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuperClassAccess().getIdRefParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Property
+protected class SuperClass_PropertyParserRuleCall_1 extends RuleCallToken {
+
+ public SuperClass_PropertyParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSuperClassAccess().getPropertyParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Property_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule SuperClass ****************/
+
+
+/************ begin Rule ClassDeclaration ****************
+ *
+ * ClassDeclaration:
+ * {ClassDeclaration} CLASS (body=Block | EXTENDS extend=SuperClass body=Block? | name=(Id | Property) (EXTENDS
+ * extend=SuperClass)? body=Block)?;
+ *
+ **/
+
+// {ClassDeclaration} CLASS (body=Block | EXTENDS extend=SuperClass body=Block? | name=(Id | Property) (EXTENDS
+// extend=SuperClass)? body=Block)?
+protected class ClassDeclaration_Group extends GroupToken {
+
+ public ClassDeclaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_Alternatives_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ClassDeclaration}
+protected class ClassDeclaration_ClassDeclarationAction_0 extends ActionToken {
+
+ public ClassDeclaration_ClassDeclarationAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// CLASS
+protected class ClassDeclaration_CLASSTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public ClassDeclaration_CLASSTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getCLASSTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_ClassDeclarationAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (body=Block | EXTENDS extend=SuperClass body=Block? | name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block)?
+protected class ClassDeclaration_Alternatives_2 extends AlternativesToken {
+
+ public ClassDeclaration_Alternatives_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getAlternatives_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_BodyAssignment_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassDeclaration_Group_2_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new ClassDeclaration_Group_2_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class ClassDeclaration_BodyAssignment_2_0 extends AssignmentToken {
+
+ public ClassDeclaration_BodyAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getBodyAssignment_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// EXTENDS extend=SuperClass body=Block?
+protected class ClassDeclaration_Group_2_1 extends GroupToken {
+
+ public ClassDeclaration_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_BodyAssignment_2_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ClassDeclaration_ExtendAssignment_2_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class ClassDeclaration_EXTENDSTerminalRuleCall_2_1_0 extends UnassignedTextToken {
+
+ public ClassDeclaration_EXTENDSTerminalRuleCall_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class ClassDeclaration_ExtendAssignment_2_1_1 extends AssignmentToken {
+
+ public ClassDeclaration_ExtendAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getExtendAssignment_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_EXTENDSTerminalRuleCall_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// body=Block?
+protected class ClassDeclaration_BodyAssignment_2_1_2 extends AssignmentToken {
+
+ public ClassDeclaration_BodyAssignment_2_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getBodyAssignment_2_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_ExtendAssignment_2_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block
+protected class ClassDeclaration_Group_2_2 extends GroupToken {
+
+ public ClassDeclaration_Group_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_BodyAssignment_2_2_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=(Id | Property)
+protected class ClassDeclaration_NameAssignment_2_2_0 extends AssignmentToken {
+
+ public ClassDeclaration_NameAssignment_2_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getNameAssignment_2_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ case 1: return new Property_Alternatives(this, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getNameIdParserRuleCall_2_2_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPropertyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getNamePropertyParserRuleCall_2_2_0_0_1();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (EXTENDS extend=SuperClass)?
+protected class ClassDeclaration_Group_2_2_1 extends GroupToken {
+
+ public ClassDeclaration_Group_2_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getGroup_2_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_ExtendAssignment_2_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class ClassDeclaration_EXTENDSTerminalRuleCall_2_2_1_0 extends UnassignedTextToken {
+
+ public ClassDeclaration_EXTENDSTerminalRuleCall_2_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ClassDeclaration_NameAssignment_2_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class ClassDeclaration_ExtendAssignment_2_2_1_1 extends AssignmentToken {
+
+ public ClassDeclaration_ExtendAssignment_2_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getExtendAssignment_2_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_EXTENDSTerminalRuleCall_2_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class ClassDeclaration_BodyAssignment_2_2_2 extends AssignmentToken {
+
+ public ClassDeclaration_BodyAssignment_2_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getClassDeclarationAccess().getBodyAssignment_2_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_2_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ClassDeclaration_Group_2_2_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new ClassDeclaration_NameAssignment_2_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule ClassDeclaration ****************/
+
+
+/************ begin Rule AssignedClassDeclaration ****************
+ *
+ * / **
+ * * FIXME: it should be the same as ClassDeclaration, but it would result in a non-LL decision,
+ * * so I just removed the problematic options (a class body and a name or a superclass is required).
+ * * / AssignedClassDeclaration:
+ * {ClassDeclaration} CLASS (EXTENDS extend=SuperClass body=Block | name=(Id | Property) (EXTENDS extend=SuperClass)?
+ * body=Block)?;
+ *
+ **/
+
+// {ClassDeclaration} CLASS (EXTENDS extend=SuperClass body=Block | name=(Id | Property) (EXTENDS extend=SuperClass)?
+// body=Block)?
+protected class AssignedClassDeclaration_Group extends GroupToken {
+
+ public AssignedClassDeclaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Alternatives_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignedClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ClassDeclaration}
+protected class AssignedClassDeclaration_ClassDeclarationAction_0 extends ActionToken {
+
+ public AssignedClassDeclaration_ClassDeclarationAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// CLASS
+protected class AssignedClassDeclaration_CLASSTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public AssignedClassDeclaration_CLASSTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getCLASSTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_ClassDeclarationAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (EXTENDS extend=SuperClass body=Block | name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block)?
+protected class AssignedClassDeclaration_Alternatives_2 extends AlternativesToken {
+
+ public AssignedClassDeclaration_Alternatives_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getAlternatives_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Group_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignedClassDeclaration_Group_2_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS extend=SuperClass body=Block
+protected class AssignedClassDeclaration_Group_2_0 extends GroupToken {
+
+ public AssignedClassDeclaration_Group_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_BodyAssignment_2_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_0_0 extends UnassignedTextToken {
+
+ public AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class AssignedClassDeclaration_ExtendAssignment_2_0_1 extends AssignmentToken {
+
+ public AssignedClassDeclaration_ExtendAssignment_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getExtendAssignment_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// body=Block
+protected class AssignedClassDeclaration_BodyAssignment_2_0_2 extends AssignmentToken {
+
+ public AssignedClassDeclaration_BodyAssignment_2_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getBodyAssignment_2_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_ExtendAssignment_2_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// name=(Id | Property) (EXTENDS extend=SuperClass)? body=Block
+protected class AssignedClassDeclaration_Group_2_1 extends GroupToken {
+
+ public AssignedClassDeclaration_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_BodyAssignment_2_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name=(Id | Property)
+protected class AssignedClassDeclaration_NameAssignment_2_1_0 extends AssignmentToken {
+
+ public AssignedClassDeclaration_NameAssignment_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getNameAssignment_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ case 1: return new Property_Alternatives(this, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getNameIdParserRuleCall_2_1_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPropertyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getNamePropertyParserRuleCall_2_1_0_0_1();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_CLASSTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (EXTENDS extend=SuperClass)?
+protected class AssignedClassDeclaration_Group_2_1_1 extends GroupToken {
+
+ public AssignedClassDeclaration_Group_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getGroup_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_ExtendAssignment_2_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EXTENDS
+protected class AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_1_1_0 extends UnassignedTextToken {
+
+ public AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_NameAssignment_2_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// extend=SuperClass
+protected class AssignedClassDeclaration_ExtendAssignment_2_1_1_1 extends AssignmentToken {
+
+ public AssignedClassDeclaration_ExtendAssignment_2_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getExtendAssignment_2_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new SuperClass_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("extend",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("extend");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSuperClassRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_EXTENDSTerminalRuleCall_2_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class AssignedClassDeclaration_BodyAssignment_2_1_2 extends AssignmentToken {
+
+ public AssignedClassDeclaration_BodyAssignment_2_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignedClassDeclarationAccess().getBodyAssignment_2_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Group_2_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new AssignedClassDeclaration_NameAssignment_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule AssignedClassDeclaration ****************/
+
+
+/************ begin Rule Expression ****************
+ *
+ * Expression:
+ * Postfix;
+ *
+ **/
+
+// Postfix
+protected class Expression_PostfixParserRuleCall extends RuleCallToken {
+
+ public Expression_PostfixParserRuleCall(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExpressionAccess().getPostfixParserRuleCall();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Postfix_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+/************ end Rule Expression ****************/
+
+
+/************ begin Rule Postfix ****************
+ *
+ * // right-assoc
+ * // Note: the lexer seems to know it should give a POST_IF token here
+ * Postfix returns Expression: //Assignment postfix+=(PostfixIf | ForBody)?;
+ * Assignment (POST_IF {If.dummy=current} condition=Expression | FOR {For.dummy=current} body=ForBody | WHILE
+ * {While.dummy=current} body=Expression (WHEN when=Expression)? | UNTIL {Until.dummy=current} body=Expression (WHEN
+ * when=Expression)?)?;
+ *
+ **/
+
+// //Assignment postfix+=(PostfixIf | ForBody)?;
+// Assignment (POST_IF {If.dummy=current} condition=Expression | FOR {For.dummy=current} body=ForBody | WHILE
+// {While.dummy=current} body=Expression (WHEN when=Expression)? | UNTIL {Until.dummy=current} body=Expression (WHEN
+// when=Expression)?)?
+protected class Postfix_Group extends GroupToken {
+
+ public Postfix_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// //Assignment postfix+=(PostfixIf | ForBody)?;
+// Assignment
+protected class Postfix_AssignmentParserRuleCall_0 extends RuleCallToken {
+
+ public Postfix_AssignmentParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getAssignmentParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Assignment_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> POST_IF {If.dummy=current} condition=Expression | FOR {For.dummy=current} body=ForBody | WHILE {While.dummy=current}
+// body=Expression (WHEN when=Expression)? | UNTIL {Until.dummy=current} body=Expression (WHEN when=Expression)?)?
+protected class Postfix_Alternatives_1 extends AlternativesToken {
+
+ public Postfix_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Postfix_Group_1_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Postfix_Group_1_3(lastRuleCallOrigin, this, 3, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => POST_IF {If.dummy=current} condition=Expression
+protected class Postfix_Group_1_0 extends GroupToken {
+
+ public Postfix_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_ConditionAssignment_1_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => POST_IF
+protected class Postfix_POST_IFTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public Postfix_POST_IFTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getPOST_IFTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {If.dummy=current}
+protected class Postfix_IfDummyAction_1_0_1 extends ActionToken {
+
+ public Postfix_IfDummyAction_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_POST_IFTerminalRuleCall_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// condition=Expression
+protected class Postfix_ConditionAssignment_1_0_2 extends AssignmentToken {
+
+ public Postfix_ConditionAssignment_1_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getConditionAssignment_1_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getConditionExpressionParserRuleCall_1_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_IfDummyAction_1_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => FOR {For.dummy=current} body=ForBody
+protected class Postfix_Group_1_1 extends GroupToken {
+
+ public Postfix_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_BodyAssignment_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => FOR
+protected class Postfix_FORTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public Postfix_FORTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getFORTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {For.dummy=current}
+protected class Postfix_ForDummyAction_1_1_1 extends ActionToken {
+
+ public Postfix_ForDummyAction_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getForDummyAction_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_FORTerminalRuleCall_1_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// body=ForBody
+protected class Postfix_BodyAssignment_1_1_2 extends AssignmentToken {
+
+ public Postfix_BodyAssignment_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getBodyAssignment_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getBodyForBodyParserRuleCall_1_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_ForDummyAction_1_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => WHILE {While.dummy=current} body=Expression (WHEN when=Expression)?
+protected class Postfix_Group_1_2 extends GroupToken {
+
+ public Postfix_Group_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group_1_2_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_BodyAssignment_1_2_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => WHILE
+protected class Postfix_WHILETerminalRuleCall_1_2_0 extends UnassignedTextToken {
+
+ public Postfix_WHILETerminalRuleCall_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWHILETerminalRuleCall_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {While.dummy=current}
+protected class Postfix_WhileDummyAction_1_2_1 extends ActionToken {
+
+ public Postfix_WhileDummyAction_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_WHILETerminalRuleCall_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// body=Expression
+protected class Postfix_BodyAssignment_1_2_2 extends AssignmentToken {
+
+ public Postfix_BodyAssignment_1_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getBodyAssignment_1_2_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_2_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_WhileDummyAction_1_2_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class Postfix_Group_1_2_3 extends GroupToken {
+
+ public Postfix_Group_1_2_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_2_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_WhenAssignment_1_2_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class Postfix_WHENTerminalRuleCall_1_2_3_0 extends UnassignedTextToken {
+
+ public Postfix_WHENTerminalRuleCall_1_2_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_2_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_BodyAssignment_1_2_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class Postfix_WhenAssignment_1_2_3_1 extends AssignmentToken {
+
+ public Postfix_WhenAssignment_1_2_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWhenAssignment_1_2_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_2_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_WHENTerminalRuleCall_1_2_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// => UNTIL {Until.dummy=current} body=Expression (WHEN when=Expression)?
+protected class Postfix_Group_1_3 extends GroupToken {
+
+ public Postfix_Group_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_Group_1_3_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Postfix_BodyAssignment_1_3_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => UNTIL
+protected class Postfix_UNTILTerminalRuleCall_1_3_0 extends UnassignedTextToken {
+
+ public Postfix_UNTILTerminalRuleCall_1_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getUNTILTerminalRuleCall_1_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_AssignmentParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {Until.dummy=current}
+protected class Postfix_UntilDummyAction_1_3_1 extends ActionToken {
+
+ public Postfix_UntilDummyAction_1_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_UNTILTerminalRuleCall_1_3_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("dummy", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("dummy")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// body=Expression
+protected class Postfix_BodyAssignment_1_3_2 extends AssignmentToken {
+
+ public Postfix_BodyAssignment_1_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getBodyAssignment_1_3_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_3_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_UntilDummyAction_1_3_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class Postfix_Group_1_3_3 extends GroupToken {
+
+ public Postfix_Group_1_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getGroup_1_3_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_WhenAssignment_1_3_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class Postfix_WHENTerminalRuleCall_1_3_3_0 extends UnassignedTextToken {
+
+ public Postfix_WHENTerminalRuleCall_1_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_3_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Postfix_BodyAssignment_1_3_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class Postfix_WhenAssignment_1_3_3_1 extends AssignmentToken {
+
+ public Postfix_WhenAssignment_1_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPostfixAccess().getWhenAssignment_1_3_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_3_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Postfix_WHENTerminalRuleCall_1_3_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+/************ end Rule Postfix ****************/
+
+
+/************ begin Rule ForBody ****************
+ *
+ * ForBody returns Expression: //FIXME: Range |
+ * OWN? indexes+=ForValue (COMMA indexes+=ForValue)* source=ForSource;
+ *
+ **/
+
+// //FIXME: Range |
+// OWN? indexes+=ForValue (COMMA indexes+=ForValue)* source=ForSource
+protected class ForBody_Group extends GroupToken {
+
+ public ForBody_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_SourceAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// indexes+=ForValue
+protected class ForBody_IndexesAssignment_1 extends AssignmentToken {
+
+ public ForBody_IndexesAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getIndexesAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForValue_IdParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("indexes",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("indexes");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForValueRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA indexes+=ForValue)*
+protected class ForBody_Group_2 extends GroupToken {
+
+ public ForBody_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_IndexesAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class ForBody_COMMATerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public ForBody_COMMATerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getCOMMATerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForBody_IndexesAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// indexes+=ForValue
+protected class ForBody_IndexesAssignment_2_1 extends AssignmentToken {
+
+ public ForBody_IndexesAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getIndexesAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForValue_IdParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("indexes",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("indexes");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForValueRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForBody_COMMATerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// source=ForSource
+protected class ForBody_SourceAssignment_3 extends AssignmentToken {
+
+ public ForBody_SourceAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForBodyAccess().getSourceAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("source",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("source");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForSourceRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForBodyAccess().getSourceForSourceParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForBody_Group_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new ForBody_IndexesAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ForBody ****************/
+
+
+/************ begin Rule ForValue ****************
+ *
+ * //FIXME | Array | Dictionary;
+ * ForValue:
+ * Id;
+ *
+ **/
+
+// Id
+protected class ForValue_IdParserRuleCall extends RuleCallToken {
+
+ public ForValue_IdParserRuleCall(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForValueAccess().getIdParserRuleCall();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+/************ end Rule ForValue ****************/
+
+
+/************ begin Rule ForSource ****************
+ *
+ * ForSource:
+ * {ForSource} (FOROF source=Expression (WHEN when=Expression)? | FORIN source=Expression (WHEN when=Expression (BY
+ * by=Expression)? | BY by=Expression (WHEN when=Expression)?)?);
+ *
+ **/
+
+// {ForSource} (FOROF source=Expression (WHEN when=Expression)? | FORIN source=Expression (WHEN when=Expression (BY
+// by=Expression)? | BY by=Expression (WHEN when=Expression)?)?)
+protected class ForSource_Group extends GroupToken {
+
+ public ForSource_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getForSourceAccess().getForSourceAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ForSource}
+protected class ForSource_ForSourceAction_0 extends ActionToken {
+
+ public ForSource_ForSourceAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getForSourceAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// => FOROF source=Expression (WHEN when=Expression)? | FORIN source=Expression (WHEN when=Expression (BY by=Expression)? |
+// BY by=Expression (WHEN when=Expression)?)?
+protected class ForSource_Alternatives_1 extends AlternativesToken {
+
+ public ForSource_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => FOROF source=Expression (WHEN when=Expression)?
+protected class ForSource_Group_1_0 extends GroupToken {
+
+ public ForSource_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_0_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_SourceAssignment_1_0_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => FOROF
+protected class ForSource_FOROFTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public ForSource_FOROFTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getFOROFTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ForSourceAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// source=Expression
+protected class ForSource_SourceAssignment_1_0_1 extends AssignmentToken {
+
+ public ForSource_SourceAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getSourceAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("source",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("source");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_FOROFTerminalRuleCall_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class ForSource_Group_1_0_2 extends GroupToken {
+
+ public ForSource_Group_1_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_WhenAssignment_1_0_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class ForSource_WHENTerminalRuleCall_1_0_2_0 extends UnassignedTextToken {
+
+ public ForSource_WHENTerminalRuleCall_1_0_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_0_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_SourceAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class ForSource_WhenAssignment_1_0_2_1 extends AssignmentToken {
+
+ public ForSource_WhenAssignment_1_0_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWhenAssignment_1_0_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_0_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_WHENTerminalRuleCall_1_0_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// => FORIN source=Expression (WHEN when=Expression (BY by=Expression)? | BY by=Expression (WHEN when=Expression)?)?
+protected class ForSource_Group_1_1 extends GroupToken {
+
+ public ForSource_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Alternatives_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_SourceAssignment_1_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => FORIN
+protected class ForSource_FORINTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ForSource_FORINTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getFORINTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ForSourceAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// source=Expression
+protected class ForSource_SourceAssignment_1_1_1 extends AssignmentToken {
+
+ public ForSource_SourceAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getSourceAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("source",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("source");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_FORINTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression (BY by=Expression)? | BY by=Expression (WHEN when=Expression)?)?
+protected class ForSource_Alternatives_1_1_2 extends AlternativesToken {
+
+ public ForSource_Alternatives_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getAlternatives_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_Group_1_1_2_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN when=Expression (BY by=Expression)?
+protected class ForSource_Group_1_1_2_0 extends GroupToken {
+
+ public ForSource_Group_1_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_1_2_0_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_WhenAssignment_1_1_2_0_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class ForSource_WHENTerminalRuleCall_1_1_2_0_0 extends UnassignedTextToken {
+
+ public ForSource_WHENTerminalRuleCall_1_1_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_SourceAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class ForSource_WhenAssignment_1_1_2_0_1 extends AssignmentToken {
+
+ public ForSource_WhenAssignment_1_1_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWhenAssignment_1_1_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_WHENTerminalRuleCall_1_1_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> BY by=Expression)?
+protected class ForSource_Group_1_1_2_0_2 extends GroupToken {
+
+ public ForSource_Group_1_1_2_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ByAssignment_1_1_2_0_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => BY
+protected class ForSource_BYTerminalRuleCall_1_1_2_0_2_0 extends UnassignedTextToken {
+
+ public ForSource_BYTerminalRuleCall_1_1_2_0_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_0_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_WhenAssignment_1_1_2_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// by=Expression
+protected class ForSource_ByAssignment_1_1_2_0_2_1 extends AssignmentToken {
+
+ public ForSource_ByAssignment_1_1_2_0_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getByAssignment_1_1_2_0_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("by",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("by");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_0_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_BYTerminalRuleCall_1_1_2_0_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// => BY by=Expression (WHEN when=Expression)?
+protected class ForSource_Group_1_1_2_1 extends GroupToken {
+
+ public ForSource_Group_1_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_Group_1_1_2_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ForSource_ByAssignment_1_1_2_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => BY
+protected class ForSource_BYTerminalRuleCall_1_1_2_1_0 extends UnassignedTextToken {
+
+ public ForSource_BYTerminalRuleCall_1_1_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_SourceAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// by=Expression
+protected class ForSource_ByAssignment_1_1_2_1_1 extends AssignmentToken {
+
+ public ForSource_ByAssignment_1_1_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getByAssignment_1_1_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("by",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("by");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_BYTerminalRuleCall_1_1_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (=> WHEN when=Expression)?
+protected class ForSource_Group_1_1_2_1_2 extends GroupToken {
+
+ public ForSource_Group_1_1_2_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getGroup_1_1_2_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_WhenAssignment_1_1_2_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => WHEN
+protected class ForSource_WHENTerminalRuleCall_1_1_2_1_2_0 extends UnassignedTextToken {
+
+ public ForSource_WHENTerminalRuleCall_1_1_2_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForSource_ByAssignment_1_1_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class ForSource_WhenAssignment_1_1_2_1_2_1 extends AssignmentToken {
+
+ public ForSource_WhenAssignment_1_1_2_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getForSourceAccess().getWhenAssignment_1_1_2_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ForSource_WHENTerminalRuleCall_1_1_2_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+
+
+/************ end Rule ForSource ****************/
+
+
+/************ begin Rule Range ****************
+ *
+ * Range:
+ * => (LBRACKET start=Expression (DOT_DOT | ELLIPSIS)) end=Expression RBRACKET;
+ *
+ **/
+
+// => (LBRACKET start=Expression (DOT_DOT | ELLIPSIS)) end=Expression RBRACKET
+protected class Range_Group extends GroupToken {
+
+ public Range_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRangeAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_RBRACKETTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRangeRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (LBRACKET start=Expression (DOT_DOT | ELLIPSIS))
+protected class Range_Group_0 extends GroupToken {
+
+ public Range_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRangeAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_Group_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LBRACKET start=Expression (DOT_DOT | ELLIPSIS)
+protected class Range_Group_0_0 extends GroupToken {
+
+ public Range_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRangeAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_Alternatives_0_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LBRACKET
+protected class Range_LBRACKETTerminalRuleCall_0_0_0 extends UnassignedTextToken {
+
+ public Range_LBRACKETTerminalRuleCall_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRangeAccess().getLBRACKETTerminalRuleCall_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// start=Expression
+protected class Range_StartAssignment_0_0_1 extends AssignmentToken {
+
+ public Range_StartAssignment_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRangeAccess().getStartAssignment_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("start",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("start");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRangeAccess().getStartExpressionParserRuleCall_0_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Range_LBRACKETTerminalRuleCall_0_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// DOT_DOT | ELLIPSIS
+protected class Range_Alternatives_0_0_2 extends AlternativesToken {
+
+ public Range_Alternatives_0_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getRangeAccess().getAlternatives_0_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_DOT_DOTTerminalRuleCall_0_0_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// DOT_DOT
+protected class Range_DOT_DOTTerminalRuleCall_0_0_2_0 extends UnassignedTextToken {
+
+ public Range_DOT_DOTTerminalRuleCall_0_0_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRangeAccess().getDOT_DOTTerminalRuleCall_0_0_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_StartAssignment_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+// end=Expression
+protected class Range_EndAssignment_1 extends AssignmentToken {
+
+ public Range_EndAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRangeAccess().getEndAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("end",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("end");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRangeAccess().getEndExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Range_Group_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// RBRACKET
+protected class Range_RBRACKETTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public Range_RBRACKETTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRangeAccess().getRBRACKETTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_EndAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Range ****************/
+
+
+/************ begin Rule Assignment ****************
+ *
+ * Assignment returns Expression:
+ * => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)) right=Assigned | LogicOp;
+ *
+ **/
+
+// => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)) right=Assigned | LogicOp
+protected class Assignment_Alternatives extends AlternativesToken {
+
+ public Assignment_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Assignment_LogicOpParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)) right=Assigned
+protected class Assignment_Group_0 extends GroupToken {
+
+ public Assignment_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_RightAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (left=Assignable operator=(EQUAL | COMPOUND_ASSIGN))
+protected class Assignment_Group_0_0 extends GroupToken {
+
+ public Assignment_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_Group_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// left=Assignable operator=(EQUAL | COMPOUND_ASSIGN)
+protected class Assignment_Group_0_0_0 extends GroupToken {
+
+ public Assignment_Group_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getGroup_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_OperatorAssignment_0_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// left=Assignable
+protected class Assignment_LeftAssignment_0_0_0_0 extends AssignmentToken {
+
+ public Assignment_LeftAssignment_0_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getLeftAssignment_0_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("left",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("left");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getLeftAssignableParserRuleCall_0_0_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// operator=(EQUAL | COMPOUND_ASSIGN)
+protected class Assignment_OperatorAssignment_0_0_0_1 extends AssignmentToken {
+
+ public Assignment_OperatorAssignment_0_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getOperatorAssignment_0_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignment_LeftAssignment_0_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssignmentAccess().getOperatorEQUALTerminalRuleCall_0_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getOperatorEQUALTerminalRuleCall_0_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssignmentAccess().getOperatorCOMPOUND_ASSIGNTerminalRuleCall_0_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getOperatorCOMPOUND_ASSIGNTerminalRuleCall_0_0_0_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=Assigned
+protected class Assignment_RightAssignment_0_1 extends AssignmentToken {
+
+ public Assignment_RightAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getRightAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignedRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignmentAccess().getRightAssignedParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Assignment_Group_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// LogicOp
+protected class Assignment_LogicOpParserRuleCall_1 extends RuleCallToken {
+
+ public Assignment_LogicOpParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignmentAccess().getLogicOpParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(LogicOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Assignment ****************/
+
+
+/************ begin Rule Assigned ****************
+ *
+ * Assigned returns Expression:
+ * Expression | INDENT Expression OUTDENT | AssignedClassDeclaration;
+ *
+ **/
+
+// Expression | INDENT Expression OUTDENT | AssignedClassDeclaration
+protected class Assigned_Alternatives extends AlternativesToken {
+
+ public Assigned_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_ExpressionParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Assigned_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Assigned_AssignedClassDeclarationParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Expression
+protected class Assigned_ExpressionParserRuleCall_0 extends RuleCallToken {
+
+ public Assigned_ExpressionParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getExpressionParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// INDENT Expression OUTDENT
+protected class Assigned_Group_1 extends GroupToken {
+
+ public Assigned_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_OUTDENTTerminalRuleCall_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// INDENT
+protected class Assigned_INDENTTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Assigned_INDENTTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getINDENTTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// Expression
+protected class Assigned_ExpressionParserRuleCall_1_1 extends RuleCallToken {
+
+ public Assigned_ExpressionParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getExpressionParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_INDENTTerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class Assigned_OUTDENTTerminalRuleCall_1_2 extends UnassignedTextToken {
+
+ public Assigned_OUTDENTTerminalRuleCall_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getOUTDENTTerminalRuleCall_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assigned_ExpressionParserRuleCall_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// AssignedClassDeclaration
+protected class Assigned_AssignedClassDeclarationParserRuleCall_2 extends RuleCallToken {
+
+ public Assigned_AssignedClassDeclarationParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignedAccess().getAssignedClassDeclarationParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignedClassDeclaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(AssignedClassDeclaration_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Assigned ****************/
+
+
+/************ begin Rule LogicOp ****************
+ *
+ * LogicOp returns Expression:
+ * CompareOp (=> ({BinaryExp.left=current} operator=LOGIC) right=CompareOp)*;
+ *
+ **/
+
+// CompareOp (=> ({BinaryExp.left=current} operator=LOGIC) right=CompareOp)*
+protected class LogicOp_Group extends GroupToken {
+
+ public LogicOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LogicOp_CompareOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// CompareOp
+protected class LogicOp_CompareOpParserRuleCall_0 extends RuleCallToken {
+
+ public LogicOp_CompareOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getCompareOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(CompareOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=LOGIC) right=CompareOp)*
+protected class LogicOp_Group_1 extends GroupToken {
+
+ public LogicOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=LOGIC)
+protected class LogicOp_Group_1_0 extends GroupToken {
+
+ public LogicOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=LOGIC
+protected class LogicOp_Group_1_0_0 extends GroupToken {
+
+ public LogicOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class LogicOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public LogicOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new LogicOp_CompareOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=LOGIC
+protected class LogicOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public LogicOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new LogicOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLogicOpAccess().getOperatorLOGICTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getLogicOpAccess().getOperatorLOGICTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=CompareOp
+protected class LogicOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public LogicOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLogicOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCompareOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLogicOpAccess().getRightCompareOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new LogicOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule LogicOp ****************/
+
+
+/************ begin Rule CompareOp ****************
+ *
+ * CompareOp returns Expression:
+ * RelationOp (=> ({BinaryExp.left=current} operator=COMPARE) right=RelationOp)*;
+ *
+ **/
+
+// RelationOp (=> ({BinaryExp.left=current} operator=COMPARE) right=RelationOp)*
+protected class CompareOp_Group extends GroupToken {
+
+ public CompareOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompareOp_RelationOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// RelationOp
+protected class CompareOp_RelationOpParserRuleCall_0 extends RuleCallToken {
+
+ public CompareOp_RelationOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getRelationOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(RelationOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=COMPARE) right=RelationOp)*
+protected class CompareOp_Group_1 extends GroupToken {
+
+ public CompareOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=COMPARE)
+protected class CompareOp_Group_1_0 extends GroupToken {
+
+ public CompareOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=COMPARE
+protected class CompareOp_Group_1_0_0 extends GroupToken {
+
+ public CompareOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class CompareOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public CompareOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new CompareOp_RelationOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=COMPARE
+protected class CompareOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public CompareOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CompareOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompareOpAccess().getOperatorCOMPARETerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCompareOpAccess().getOperatorCOMPARETerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=RelationOp
+protected class CompareOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public CompareOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCompareOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getRelationOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCompareOpAccess().getRightRelationOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CompareOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule CompareOp ****************/
+
+
+/************ begin Rule RelationOp ****************
+ *
+ * RelationOp returns Expression:
+ * ShiftOp (=> ({BinaryExp.left=current} operator=RELATION) right=ShiftOp)*;
+ *
+ **/
+
+// ShiftOp (=> ({BinaryExp.left=current} operator=RELATION) right=ShiftOp)*
+protected class RelationOp_Group extends GroupToken {
+
+ public RelationOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new RelationOp_ShiftOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// ShiftOp
+protected class RelationOp_ShiftOpParserRuleCall_0 extends RuleCallToken {
+
+ public RelationOp_ShiftOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getShiftOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(ShiftOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=RELATION) right=ShiftOp)*
+protected class RelationOp_Group_1 extends GroupToken {
+
+ public RelationOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=RELATION)
+protected class RelationOp_Group_1_0 extends GroupToken {
+
+ public RelationOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=RELATION
+protected class RelationOp_Group_1_0_0 extends GroupToken {
+
+ public RelationOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class RelationOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public RelationOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new RelationOp_ShiftOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=RELATION
+protected class RelationOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public RelationOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RelationOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRelationOpAccess().getOperatorRELATIONTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getRelationOpAccess().getOperatorRELATIONTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=ShiftOp
+protected class RelationOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public RelationOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRelationOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getShiftOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRelationOpAccess().getRightShiftOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new RelationOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule RelationOp ****************/
+
+
+/************ begin Rule ShiftOp ****************
+ *
+ * ShiftOp returns Expression:
+ * AdditiveOp (=> ({BinaryExp.left=current} operator=SHIFT) right=AdditiveOp)*;
+ *
+ **/
+
+// AdditiveOp (=> ({BinaryExp.left=current} operator=SHIFT) right=AdditiveOp)*
+protected class ShiftOp_Group extends GroupToken {
+
+ public ShiftOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ShiftOp_AdditiveOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AdditiveOp
+protected class ShiftOp_AdditiveOpParserRuleCall_0 extends RuleCallToken {
+
+ public ShiftOp_AdditiveOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getAdditiveOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(AdditiveOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=SHIFT) right=AdditiveOp)*
+protected class ShiftOp_Group_1 extends GroupToken {
+
+ public ShiftOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=SHIFT)
+protected class ShiftOp_Group_1_0 extends GroupToken {
+
+ public ShiftOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=SHIFT
+protected class ShiftOp_Group_1_0_0 extends GroupToken {
+
+ public ShiftOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class ShiftOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public ShiftOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ShiftOp_AdditiveOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=SHIFT
+protected class ShiftOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public ShiftOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ShiftOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getShiftOpAccess().getOperatorSHIFTTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getShiftOpAccess().getOperatorSHIFTTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=AdditiveOp
+protected class ShiftOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public ShiftOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getShiftOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAdditiveOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getShiftOpAccess().getRightAdditiveOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ShiftOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ShiftOp ****************/
+
+
+/************ begin Rule AdditiveOp ****************
+ *
+ * AdditiveOp returns Expression:
+ * MathOp (=> ({BinaryExp.left=current} operator=(PLUS | MINUS)) right=MathOp)*;
+ *
+ **/
+
+// MathOp (=> ({BinaryExp.left=current} operator=(PLUS | MINUS)) right=MathOp)*
+protected class AdditiveOp_Group extends GroupToken {
+
+ public AdditiveOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AdditiveOp_MathOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// MathOp
+protected class AdditiveOp_MathOpParserRuleCall_0 extends RuleCallToken {
+
+ public AdditiveOp_MathOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getMathOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(MathOp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=(PLUS | MINUS)) right=MathOp)*
+protected class AdditiveOp_Group_1 extends GroupToken {
+
+ public AdditiveOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=(PLUS | MINUS))
+protected class AdditiveOp_Group_1_0 extends GroupToken {
+
+ public AdditiveOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=(PLUS | MINUS)
+protected class AdditiveOp_Group_1_0_0 extends GroupToken {
+
+ public AdditiveOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class AdditiveOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public AdditiveOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AdditiveOp_MathOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=(PLUS | MINUS)
+protected class AdditiveOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public AdditiveOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AdditiveOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAdditiveOpAccess().getOperatorPLUSTerminalRuleCall_1_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAdditiveOpAccess().getOperatorPLUSTerminalRuleCall_1_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAdditiveOpAccess().getOperatorMINUSTerminalRuleCall_1_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAdditiveOpAccess().getOperatorMINUSTerminalRuleCall_1_0_0_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=MathOp
+protected class AdditiveOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public AdditiveOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAdditiveOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getMathOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAdditiveOpAccess().getRightMathOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AdditiveOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AdditiveOp ****************/
+
+
+/************ begin Rule MathOp ****************
+ *
+ * MathOp returns Expression:
+ * UnaryOp (=> ({BinaryExp.left=current} operator=MATH) right=UnaryOp)*;
+ *
+ **/
+
+// UnaryOp (=> ({BinaryExp.left=current} operator=MATH) right=UnaryOp)*
+protected class MathOp_Group extends GroupToken {
+
+ public MathOp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new MathOp_UnaryOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// UnaryOp
+protected class MathOp_UnaryOpParserRuleCall_0 extends RuleCallToken {
+
+ public MathOp_UnaryOpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getUnaryOpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(UnaryOp_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (=> ({BinaryExp.left=current} operator=MATH) right=UnaryOp)*
+protected class MathOp_Group_1 extends GroupToken {
+
+ public MathOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_RightAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => ({BinaryExp.left=current} operator=MATH)
+protected class MathOp_Group_1_0 extends GroupToken {
+
+ public MathOp_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current} operator=MATH
+protected class MathOp_Group_1_0_0 extends GroupToken {
+
+ public MathOp_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_OperatorAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {BinaryExp.left=current}
+protected class MathOp_BinaryExpLeftAction_1_0_0_0 extends ActionToken {
+
+ public MathOp_BinaryExpLeftAction_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new MathOp_UnaryOpParserRuleCall_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ Object val = eObjectConsumer.getConsumable("left", false);
+ if(val == null) return null;
+ if(!eObjectConsumer.isConsumedWithLastConsumtion("left")) return null;
+ return createEObjectConsumer((EObject) val);
+ }
+}
+
+// operator=MATH
+protected class MathOp_OperatorAssignment_1_0_0_1 extends AssignmentToken {
+
+ public MathOp_OperatorAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getOperatorAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new MathOp_BinaryExpLeftAction_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getMathOpAccess().getOperatorMATHTerminalRuleCall_1_0_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getMathOpAccess().getOperatorMATHTerminalRuleCall_1_0_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// right=UnaryOp
+protected class MathOp_RightAssignment_1_1 extends AssignmentToken {
+
+ public MathOp_RightAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getMathOpAccess().getRightAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("right",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("right");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getUnaryOpRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getMathOpAccess().getRightUnaryOpParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new MathOp_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule MathOp ****************/
+
+
+/************ begin Rule UnaryOp ****************
+ *
+ * UnaryOp returns Expression:
+ * (UNARY | PLUS | MINUS) Expression | (PLUS_PLUS | MINUS_MINUS) Variable | // FIXME: postfix increment
+ * Application QUESTION?;
+ *
+ **/
+
+// (UNARY | PLUS | MINUS) Expression | (PLUS_PLUS | MINUS_MINUS) Variable | // FIXME: postfix increment
+// Application QUESTION?
+protected class UnaryOp_Alternatives extends AlternativesToken {
+
+ public UnaryOp_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new UnaryOp_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new UnaryOp_Group_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getAssignmentRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getForDummyAction_1_1_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// (UNARY | PLUS | MINUS) Expression
+protected class UnaryOp_Group_0 extends GroupToken {
+
+ public UnaryOp_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_ExpressionParserRuleCall_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// UNARY | PLUS | MINUS
+protected class UnaryOp_Alternatives_0_0 extends AlternativesToken {
+
+ public UnaryOp_Alternatives_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getAlternatives_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_UNARYTerminalRuleCall_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// UNARY
+protected class UnaryOp_UNARYTerminalRuleCall_0_0_0 extends UnassignedTextToken {
+
+ public UnaryOp_UNARYTerminalRuleCall_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getUNARYTerminalRuleCall_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+
+// Expression
+protected class UnaryOp_ExpressionParserRuleCall_0_1 extends RuleCallToken {
+
+ public UnaryOp_ExpressionParserRuleCall_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getExpressionParserRuleCall_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Expression_PostfixParserRuleCall.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives_0_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+// (PLUS_PLUS | MINUS_MINUS) Variable
+protected class UnaryOp_Group_1 extends GroupToken {
+
+ public UnaryOp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_VariableParserRuleCall_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// PLUS_PLUS | MINUS_MINUS
+protected class UnaryOp_Alternatives_1_0 extends AlternativesToken {
+
+ public UnaryOp_Alternatives_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getAlternatives_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_PLUS_PLUSTerminalRuleCall_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// PLUS_PLUS
+protected class UnaryOp_PLUS_PLUSTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public UnaryOp_PLUS_PLUSTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getPLUS_PLUSTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+
+// Variable
+protected class UnaryOp_VariableParserRuleCall_1_1 extends RuleCallToken {
+
+ public UnaryOp_VariableParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getVariableParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Variable_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_Alternatives_1_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+// // FIXME: postfix increment
+// Application QUESTION?
+protected class UnaryOp_Group_2 extends GroupToken {
+
+ public UnaryOp_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new UnaryOp_ApplicationParserRuleCall_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// // FIXME: postfix increment
+// Application
+protected class UnaryOp_ApplicationParserRuleCall_2_0 extends RuleCallToken {
+
+ public UnaryOp_ApplicationParserRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getUnaryOpAccess().getApplicationParserRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Application_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+
+/************ end Rule UnaryOp ****************/
+
+
+/************ begin Rule Application ****************
+ *
+ * // Nested function calls and property accesses -- I couldn't come up with a better name
+ * Application:
+ * {SuperCall} (SUPER (CALL_START args=ArgList CALL_END)?) | value=PrimaryExpression features+=FeatureCall*;
+ *
+ **/
+
+// {SuperCall} (SUPER (CALL_START args=ArgList CALL_END)?) | value=PrimaryExpression features+=FeatureCall*
+protected class Application_Alternatives extends AlternativesToken {
+
+ public Application_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Application_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {SuperCall} (SUPER (CALL_START args=ArgList CALL_END)?)
+protected class Application_Group_0 extends GroupToken {
+
+ public Application_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Group_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationAccess().getSuperCallAction_0_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {SuperCall}
+protected class Application_SuperCallAction_0_0 extends ActionToken {
+
+ public Application_SuperCallAction_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getSuperCallAction_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// SUPER (CALL_START args=ArgList CALL_END)?
+protected class Application_Group_0_1 extends GroupToken {
+
+ public Application_Group_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_Group_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Application_SUPERTerminalRuleCall_0_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// SUPER
+protected class Application_SUPERTerminalRuleCall_0_1_0 extends UnassignedTextToken {
+
+ public Application_SUPERTerminalRuleCall_0_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getSUPERTerminalRuleCall_0_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_SuperCallAction_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (CALL_START args=ArgList CALL_END)?
+protected class Application_Group_0_1_1 extends GroupToken {
+
+ public Application_Group_0_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_0_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_CALL_ENDTerminalRuleCall_0_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// CALL_START
+protected class Application_CALL_STARTTerminalRuleCall_0_1_1_0 extends UnassignedTextToken {
+
+ public Application_CALL_STARTTerminalRuleCall_0_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getCALL_STARTTerminalRuleCall_0_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_SUPERTerminalRuleCall_0_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args=ArgList
+protected class Application_ArgsAssignment_0_1_1_1 extends AssignmentToken {
+
+ public Application_ArgsAssignment_0_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getArgsAssignment_0_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getApplicationAccess().getArgsArgListParserRuleCall_0_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Application_CALL_STARTTerminalRuleCall_0_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// CALL_END
+protected class Application_CALL_ENDTerminalRuleCall_0_1_1_2 extends UnassignedTextToken {
+
+ public Application_CALL_ENDTerminalRuleCall_0_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getCALL_ENDTerminalRuleCall_0_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_ArgsAssignment_0_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+// value=PrimaryExpression features+=FeatureCall*
+protected class Application_Group_1 extends GroupToken {
+
+ public Application_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Application_FeaturesAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Application_ValueAssignment_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getApplicationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// value=PrimaryExpression
+protected class Application_ValueAssignment_1_0 extends AssignmentToken {
+
+ public Application_ValueAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getValueAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPrimaryExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getApplicationAccess().getValuePrimaryExpressionParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// features+=FeatureCall*
+protected class Application_FeaturesAssignment_1_1 extends AssignmentToken {
+
+ public Application_FeaturesAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getApplicationAccess().getFeaturesAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FeatureCall_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("features",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("features");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getFeatureCallRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getApplicationAccess().getFeaturesFeatureCallParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Application_FeaturesAssignment_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Application_ValueAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule Application ****************/
+
+
+/************ begin Rule FeatureCall ****************
+ *
+ * FeatureCall:
+ * FunctionCall | PropertyAccess;
+ *
+ **/
+
+// FunctionCall | PropertyAccess
+protected class FeatureCall_Alternatives extends AlternativesToken {
+
+ public FeatureCall_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getFeatureCallAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FeatureCall_FunctionCallParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new FeatureCall_PropertyAccessParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionCallAccess().getFunctionCallAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// FunctionCall
+protected class FeatureCall_FunctionCallParserRuleCall_0 extends RuleCallToken {
+
+ public FeatureCall_FunctionCallParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFeatureCallAccess().getFunctionCallParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionCallAccess().getFunctionCallAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(FunctionCall_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// PropertyAccess
+protected class FeatureCall_PropertyAccessParserRuleCall_1 extends RuleCallToken {
+
+ public FeatureCall_PropertyAccessParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFeatureCallAccess().getPropertyAccessParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyAccess_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(PropertyAccess_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule FeatureCall ****************/
+
+
+/************ begin Rule FunctionCall ****************
+ *
+ * FunctionCall:
+ * {FunctionCall} FUNC_EXIST? CALL_START args=ArgList CALL_END;
+ *
+ **/
+
+// {FunctionCall} FUNC_EXIST? CALL_START args=ArgList CALL_END
+protected class FunctionCall_Group extends GroupToken {
+
+ public FunctionCall_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_CALL_ENDTerminalRuleCall_4(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionCallAccess().getFunctionCallAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {FunctionCall}
+protected class FunctionCall_FunctionCallAction_0 extends ActionToken {
+
+ public FunctionCall_FunctionCallAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getFunctionCallAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// CALL_START
+protected class FunctionCall_CALL_STARTTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public FunctionCall_CALL_STARTTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getCALL_STARTTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_FunctionCallAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args=ArgList
+protected class FunctionCall_ArgsAssignment_3 extends AssignmentToken {
+
+ public FunctionCall_ArgsAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getArgsAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getFunctionCallAccess().getArgsArgListParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new FunctionCall_CALL_STARTTerminalRuleCall_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// CALL_END
+protected class FunctionCall_CALL_ENDTerminalRuleCall_4 extends UnassignedTextToken {
+
+ public FunctionCall_CALL_ENDTerminalRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getFunctionCallAccess().getCALL_ENDTerminalRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new FunctionCall_ArgsAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule FunctionCall ****************/
+
+
+/************ begin Rule PropertyAccess ****************
+ *
+ * PropertyAccess:
+ * NamedPropertyAccess | IndexedPropertyAccess;
+ *
+ **/
+
+// NamedPropertyAccess | IndexedPropertyAccess
+protected class PropertyAccess_Alternatives extends AlternativesToken {
+
+ public PropertyAccess_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPropertyAccessAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PropertyAccess_NamedPropertyAccessParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PropertyAccess_IndexedPropertyAccessParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// NamedPropertyAccess
+protected class PropertyAccess_NamedPropertyAccessParserRuleCall_0 extends RuleCallToken {
+
+ public PropertyAccess_NamedPropertyAccessParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccessAccess().getNamedPropertyAccessParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NamedPropertyAccess_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// IndexedPropertyAccess
+protected class PropertyAccess_IndexedPropertyAccessParserRuleCall_1 extends RuleCallToken {
+
+ public PropertyAccess_IndexedPropertyAccessParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccessAccess().getIndexedPropertyAccessParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IndexedPropertyAccess_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule PropertyAccess ****************/
+
+
+/************ begin Rule ThisProperty ****************
+ *
+ * ThisProperty:
+ * AT_SIGIL Id;
+ *
+ **/
+
+// AT_SIGIL Id
+protected class ThisProperty_Group extends GroupToken {
+
+ public ThisProperty_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getThisPropertyAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_IdParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AT_SIGIL
+protected class ThisProperty_AT_SIGILTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public ThisProperty_AT_SIGILTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getThisPropertyAccess().getAT_SIGILTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// Id
+protected class ThisProperty_IdParserRuleCall_1 extends RuleCallToken {
+
+ public ThisProperty_IdParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getThisPropertyAccess().getIdParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_AT_SIGILTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule ThisProperty ****************/
+
+
+/************ begin Rule NamedPropertyAccess ****************
+ *
+ * NamedPropertyAccess:
+ * accessor=(DOT | QUESTION_DOT) name=Id | accessor=DOUBLE_COLON name=Id?;
+ *
+ **/
+
+// accessor=(DOT | QUESTION_DOT) name=Id | accessor=DOUBLE_COLON name=Id?
+protected class NamedPropertyAccess_Alternatives extends AlternativesToken {
+
+ public NamedPropertyAccess_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NamedPropertyAccess_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNamedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// accessor=(DOT | QUESTION_DOT) name=Id
+protected class NamedPropertyAccess_Group_0 extends GroupToken {
+
+ public NamedPropertyAccess_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_NameAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// accessor=(DOT | QUESTION_DOT)
+protected class NamedPropertyAccess_AccessorAssignment_0_0 extends AssignmentToken {
+
+ public NamedPropertyAccess_AccessorAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getAccessorAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessor");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedPropertyAccessAccess().getAccessorDOTTerminalRuleCall_0_0_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getAccessorDOTTerminalRuleCall_0_0_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedPropertyAccessAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=Id
+protected class NamedPropertyAccess_NameAssignment_0_1 extends AssignmentToken {
+
+ public NamedPropertyAccess_NameAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getNameAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NamedPropertyAccess_AccessorAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// accessor=DOUBLE_COLON name=Id?
+protected class NamedPropertyAccess_Group_1 extends GroupToken {
+
+ public NamedPropertyAccess_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NamedPropertyAccess_NameAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new NamedPropertyAccess_AccessorAssignment_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// accessor=DOUBLE_COLON
+protected class NamedPropertyAccess_AccessorAssignment_1_0 extends AssignmentToken {
+
+ public NamedPropertyAccess_AccessorAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getAccessorAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessor");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getNamedPropertyAccessAccess().getAccessorDOUBLE_COLONTerminalRuleCall_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getAccessorDOUBLE_COLONTerminalRuleCall_1_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=Id?
+protected class NamedPropertyAccess_NameAssignment_1_1 extends AssignmentToken {
+
+ public NamedPropertyAccess_NameAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getNamedPropertyAccessAccess().getNameAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new NamedPropertyAccess_AccessorAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule NamedPropertyAccess ****************/
+
+
+/************ begin Rule IndexedPropertyAccess ****************
+ *
+ * IndexedPropertyAccess:
+ * INDEX_START index=Index INDEX_END;
+ *
+ **/
+
+// INDEX_START index=Index INDEX_END
+protected class IndexedPropertyAccess_Group extends GroupToken {
+
+ public IndexedPropertyAccess_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_INDEX_ENDTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexedPropertyAccessRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// INDEX_START
+protected class IndexedPropertyAccess_INDEX_STARTTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public IndexedPropertyAccess_INDEX_STARTTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getINDEX_STARTTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// index=Index
+protected class IndexedPropertyAccess_IndexAssignment_1 extends AssignmentToken {
+
+ public IndexedPropertyAccess_IndexAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getIndexAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("index",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("index");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIndexRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexedPropertyAccessAccess().getIndexIndexParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_INDEX_STARTTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDEX_END
+protected class IndexedPropertyAccess_INDEX_ENDTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public IndexedPropertyAccess_INDEX_ENDTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIndexedPropertyAccessAccess().getINDEX_ENDTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IndexedPropertyAccess_IndexAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule IndexedPropertyAccess ****************/
+
+
+/************ begin Rule Index ****************
+ *
+ * Index:
+ * => dots=(DOT_DOT | ELLIPSIS) end=Expression | => (start=Expression dots=(DOT_DOT | ELLIPSIS)) end=Expression? |
+ * exp=Expression;
+ *
+ **/
+
+// => dots=(DOT_DOT | ELLIPSIS) end=Expression | => (start=Expression dots=(DOT_DOT | ELLIPSIS)) end=Expression? |
+// exp=Expression
+protected class Index_Alternatives extends AlternativesToken {
+
+ public Index_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getIndexAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Index_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Index_ExpAssignment_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIndexRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => dots=(DOT_DOT | ELLIPSIS) end=Expression
+protected class Index_Group_0 extends GroupToken {
+
+ public Index_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_EndAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => dots=(DOT_DOT | ELLIPSIS)
+protected class Index_DotsAssignment_0_0 extends AssignmentToken {
+
+ public Index_DotsAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getDotsAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dots",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dots");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_0_0_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_0_0_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_0_0_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_0_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// end=Expression
+protected class Index_EndAssignment_0_1 extends AssignmentToken {
+
+ public Index_EndAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getEndAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("end",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("end");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Index_DotsAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => (start=Expression dots=(DOT_DOT | ELLIPSIS)) end=Expression?
+protected class Index_Group_1 extends GroupToken {
+
+ public Index_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_EndAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Index_Group_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (start=Expression dots=(DOT_DOT | ELLIPSIS))
+protected class Index_Group_1_0 extends GroupToken {
+
+ public Index_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// start=Expression dots=(DOT_DOT | ELLIPSIS)
+protected class Index_Group_1_0_0 extends GroupToken {
+
+ public Index_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIndexAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_DotsAssignment_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// start=Expression
+protected class Index_StartAssignment_1_0_0_0 extends AssignmentToken {
+
+ public Index_StartAssignment_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getStartAssignment_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("start",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("start");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getStartExpressionParserRuleCall_1_0_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// dots=(DOT_DOT | ELLIPSIS)
+protected class Index_DotsAssignment_1_0_0_1 extends AssignmentToken {
+
+ public Index_DotsAssignment_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getDotsAssignment_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_StartAssignment_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dots",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dots");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_1_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_1_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_1_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_1_0_0_1_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// end=Expression?
+protected class Index_EndAssignment_1_1 extends AssignmentToken {
+
+ public Index_EndAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getEndAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("end",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("end");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Index_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// exp=Expression
+protected class Index_ExpAssignment_2 extends AssignmentToken {
+
+ public Index_ExpAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIndexAccess().getExpAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIndexAccess().getExpExpressionParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+
+/************ end Rule Index ****************/
+
+
+/************ begin Rule PrimaryExpression ****************
+ *
+ * // Try Range before Array
+ * PrimaryExpression:
+ * IfExp | Parenthetical | Literal | Range | Array | Dictionary | Lambda | ThisProperty | {ThisAlone} THIS | {For} (FOR
+ * loop=ForBody body=Block) | {While} (WHILE loop=Expression (WHEN when=Expression)? body=Block) | {Until} (UNTIL
+ * loop=Expression (WHEN when=Expression)? body=Block) | {Loop} (LOOP body=Block) | {TryCatch} (TRY body=Block (CATCH
+ * exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?) | {Switch} (SWITCH
+ * exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT) | IdRef;
+ *
+ **/
+
+// IfExp | Parenthetical | Literal | Range | Array | Dictionary | Lambda | ThisProperty | {ThisAlone} THIS | {For} (FOR
+// loop=ForBody body=Block) | {While} (WHILE loop=Expression (WHEN when=Expression)? body=Block) | {Until} (UNTIL
+// loop=Expression (WHEN when=Expression)? body=Block) | {Loop} (LOOP body=Block) | {TryCatch} (TRY body=Block (CATCH
+// exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?) | {Switch} (SWITCH
+// exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT) | IdRef
+protected class PrimaryExpression_Alternatives extends AlternativesToken {
+
+ public PrimaryExpression_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_IfExpParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_ParentheticalParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new PrimaryExpression_LiteralParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new PrimaryExpression_RangeParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new PrimaryExpression_ArrayParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new PrimaryExpression_DictionaryParserRuleCall_5(lastRuleCallOrigin, this, 5, inst);
+ case 6: return new PrimaryExpression_LambdaParserRuleCall_6(lastRuleCallOrigin, this, 6, inst);
+ case 7: return new PrimaryExpression_ThisPropertyParserRuleCall_7(lastRuleCallOrigin, this, 7, inst);
+ case 8: return new PrimaryExpression_Group_8(lastRuleCallOrigin, this, 8, inst);
+ case 9: return new PrimaryExpression_Group_9(lastRuleCallOrigin, this, 9, inst);
+ case 10: return new PrimaryExpression_Group_10(lastRuleCallOrigin, this, 10, inst);
+ case 11: return new PrimaryExpression_Group_11(lastRuleCallOrigin, this, 11, inst);
+ case 12: return new PrimaryExpression_Group_12(lastRuleCallOrigin, this, 12, inst);
+ case 13: return new PrimaryExpression_Group_13(lastRuleCallOrigin, this, 13, inst);
+ case 14: return new PrimaryExpression_Group_14(lastRuleCallOrigin, this, 14, inst);
+ case 15: return new PrimaryExpression_IdRefParserRuleCall_15(lastRuleCallOrigin, this, 15, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getForAction_9_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIfExpRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getLambdaRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getParentheticalRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRangeRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// IfExp
+protected class PrimaryExpression_IfExpParserRuleCall_0 extends RuleCallToken {
+
+ public PrimaryExpression_IfExpParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getIfExpParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIfExpRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IfExp_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Parenthetical
+protected class PrimaryExpression_ParentheticalParserRuleCall_1 extends RuleCallToken {
+
+ public PrimaryExpression_ParentheticalParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getParentheticalParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParentheticalRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Parenthetical_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Literal
+protected class PrimaryExpression_LiteralParserRuleCall_2 extends RuleCallToken {
+
+ public PrimaryExpression_LiteralParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLiteralParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Literal_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Literal_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Range
+protected class PrimaryExpression_RangeParserRuleCall_3 extends RuleCallToken {
+
+ public PrimaryExpression_RangeParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getRangeParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Range_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRangeRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Range_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Array
+protected class PrimaryExpression_ArrayParserRuleCall_4 extends RuleCallToken {
+
+ public PrimaryExpression_ArrayParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getArrayParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Array_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Dictionary
+protected class PrimaryExpression_DictionaryParserRuleCall_5 extends RuleCallToken {
+
+ public PrimaryExpression_DictionaryParserRuleCall_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getDictionaryParserRuleCall_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Dictionary_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Lambda
+protected class PrimaryExpression_LambdaParserRuleCall_6 extends RuleCallToken {
+
+ public PrimaryExpression_LambdaParserRuleCall_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLambdaParserRuleCall_6();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLambdaRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Lambda_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisProperty
+protected class PrimaryExpression_ThisPropertyParserRuleCall_7 extends RuleCallToken {
+
+ public PrimaryExpression_ThisPropertyParserRuleCall_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getThisPropertyParserRuleCall_7();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisProperty_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// {ThisAlone} THIS
+protected class PrimaryExpression_Group_8 extends GroupToken {
+
+ public PrimaryExpression_Group_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_8();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_THISTerminalRuleCall_8_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ThisAlone}
+protected class PrimaryExpression_ThisAloneAction_8_0 extends ActionToken {
+
+ public PrimaryExpression_ThisAloneAction_8_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// THIS
+protected class PrimaryExpression_THISTerminalRuleCall_8_1 extends UnassignedTextToken {
+
+ public PrimaryExpression_THISTerminalRuleCall_8_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getTHISTerminalRuleCall_8_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ThisAloneAction_8_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// {For} (FOR loop=ForBody body=Block)
+protected class PrimaryExpression_Group_9 extends GroupToken {
+
+ public PrimaryExpression_Group_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_9();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_9_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getForAction_9_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {For}
+protected class PrimaryExpression_ForAction_9_0 extends ActionToken {
+
+ public PrimaryExpression_ForAction_9_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getForAction_9_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// FOR loop=ForBody body=Block
+protected class PrimaryExpression_Group_9_1 extends GroupToken {
+
+ public PrimaryExpression_Group_9_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_9_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_9_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FOR
+protected class PrimaryExpression_FORTerminalRuleCall_9_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_FORTerminalRuleCall_9_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFORTerminalRuleCall_9_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ForAction_9_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loop=ForBody
+protected class PrimaryExpression_LoopAssignment_9_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_LoopAssignment_9_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAssignment_9_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ForBody_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getForBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getLoopForBodyParserRuleCall_9_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_FORTerminalRuleCall_9_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_9_1_2 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_9_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_9_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_9_1_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAssignment_9_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {While} (WHILE loop=Expression (WHEN when=Expression)? body=Block)
+protected class PrimaryExpression_Group_10 extends GroupToken {
+
+ public PrimaryExpression_Group_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_10();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_10_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {While}
+protected class PrimaryExpression_WhileAction_10_0 extends ActionToken {
+
+ public PrimaryExpression_WhileAction_10_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// WHILE loop=Expression (WHEN when=Expression)? body=Block
+protected class PrimaryExpression_Group_10_1 extends GroupToken {
+
+ public PrimaryExpression_Group_10_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_10_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_10_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WHILE
+protected class PrimaryExpression_WHILETerminalRuleCall_10_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_WHILETerminalRuleCall_10_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWHILETerminalRuleCall_10_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_WhileAction_10_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loop=Expression
+protected class PrimaryExpression_LoopAssignment_10_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_LoopAssignment_10_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAssignment_10_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_10_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_WHILETerminalRuleCall_10_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (WHEN when=Expression)?
+protected class PrimaryExpression_Group_10_1_2 extends GroupToken {
+
+ public PrimaryExpression_Group_10_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_10_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_WhenAssignment_10_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WHEN
+protected class PrimaryExpression_WHENTerminalRuleCall_10_1_2_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_WHENTerminalRuleCall_10_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_10_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAssignment_10_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class PrimaryExpression_WhenAssignment_10_1_2_1 extends AssignmentToken {
+
+ public PrimaryExpression_WhenAssignment_10_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWhenAssignment_10_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_10_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_WHENTerminalRuleCall_10_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_10_1_3 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_10_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_10_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_10_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_10_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PrimaryExpression_LoopAssignment_10_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {Until} (UNTIL loop=Expression (WHEN when=Expression)? body=Block)
+protected class PrimaryExpression_Group_11 extends GroupToken {
+
+ public PrimaryExpression_Group_11(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_11();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_11_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Until}
+protected class PrimaryExpression_UntilAction_11_0 extends ActionToken {
+
+ public PrimaryExpression_UntilAction_11_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// UNTIL loop=Expression (WHEN when=Expression)? body=Block
+protected class PrimaryExpression_Group_11_1 extends GroupToken {
+
+ public PrimaryExpression_Group_11_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_11_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_11_1_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// UNTIL
+protected class PrimaryExpression_UNTILTerminalRuleCall_11_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_UNTILTerminalRuleCall_11_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getUNTILTerminalRuleCall_11_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_UntilAction_11_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// loop=Expression
+protected class PrimaryExpression_LoopAssignment_11_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_LoopAssignment_11_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAssignment_11_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("loop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("loop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_11_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_UNTILTerminalRuleCall_11_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (WHEN when=Expression)?
+protected class PrimaryExpression_Group_11_1_2 extends GroupToken {
+
+ public PrimaryExpression_Group_11_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_11_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_WhenAssignment_11_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WHEN
+protected class PrimaryExpression_WHENTerminalRuleCall_11_1_2_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_WHENTerminalRuleCall_11_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_11_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAssignment_11_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// when=Expression
+protected class PrimaryExpression_WhenAssignment_11_1_2_1 extends AssignmentToken {
+
+ public PrimaryExpression_WhenAssignment_11_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getWhenAssignment_11_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("when",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("when");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_11_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_WHENTerminalRuleCall_11_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_11_1_3 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_11_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_11_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_11_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_11_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PrimaryExpression_LoopAssignment_11_1_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {Loop} (LOOP body=Block)
+protected class PrimaryExpression_Group_12 extends GroupToken {
+
+ public PrimaryExpression_Group_12(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_12();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_12_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Loop}
+protected class PrimaryExpression_LoopAction_12_0 extends ActionToken {
+
+ public PrimaryExpression_LoopAction_12_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// LOOP body=Block
+protected class PrimaryExpression_Group_12_1 extends GroupToken {
+
+ public PrimaryExpression_Group_12_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_12_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_12_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LOOP
+protected class PrimaryExpression_LOOPTerminalRuleCall_12_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_LOOPTerminalRuleCall_12_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getLOOPTerminalRuleCall_12_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_LoopAction_12_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_12_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_12_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_12_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_12_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_LOOPTerminalRuleCall_12_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// {TryCatch} (TRY body=Block (CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY
+// finallyBlock=Block)?)
+protected class PrimaryExpression_Group_13 extends GroupToken {
+
+ public PrimaryExpression_Group_13(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_13_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {TryCatch}
+protected class PrimaryExpression_TryCatchAction_13_0 extends ActionToken {
+
+ public PrimaryExpression_TryCatchAction_13_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// TRY body=Block (CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Group_13_1 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Alternatives_13_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_BodyAssignment_13_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TRY
+protected class PrimaryExpression_TRYTerminalRuleCall_13_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_TRYTerminalRuleCall_13_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getTRYTerminalRuleCall_13_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_TryCatchAction_13_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// body=Block
+protected class PrimaryExpression_BodyAssignment_13_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_BodyAssignment_13_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getBodyAssignment_13_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_13_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_TRYTerminalRuleCall_13_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)? | FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Alternatives_13_1_2 extends AlternativesToken {
+
+ public PrimaryExpression_Alternatives_13_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getAlternatives_13_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_13_1_2_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_Group_13_1_2_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// CATCH exception=Id catchBlock=Block (FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Group_13_1_2_0 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_13_1_2_0_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_CatchBlockAssignment_13_1_2_0_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// CATCH
+protected class PrimaryExpression_CATCHTerminalRuleCall_13_1_2_0_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_CATCHTerminalRuleCall_13_1_2_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getCATCHTerminalRuleCall_13_1_2_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_13_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exception=Id
+protected class PrimaryExpression_ExceptionAssignment_13_1_2_0_1 extends AssignmentToken {
+
+ public PrimaryExpression_ExceptionAssignment_13_1_2_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getExceptionAssignment_13_1_2_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exception",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exception");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getExceptionIdParserRuleCall_13_1_2_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_CATCHTerminalRuleCall_13_1_2_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// catchBlock=Block
+protected class PrimaryExpression_CatchBlockAssignment_13_1_2_0_2 extends AssignmentToken {
+
+ public PrimaryExpression_CatchBlockAssignment_13_1_2_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getCatchBlockAssignment_13_1_2_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("catchBlock",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("catchBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getCatchBlockBlockParserRuleCall_13_1_2_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_ExceptionAssignment_13_1_2_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (FINALLY finallyBlock=Block)?
+protected class PrimaryExpression_Group_13_1_2_0_3 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1_2_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1_2_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_FinallyBlockAssignment_13_1_2_0_3_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FINALLY
+protected class PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_0_3_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_0_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_0_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_CatchBlockAssignment_13_1_2_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// finallyBlock=Block
+protected class PrimaryExpression_FinallyBlockAssignment_13_1_2_0_3_1 extends AssignmentToken {
+
+ public PrimaryExpression_FinallyBlockAssignment_13_1_2_0_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFinallyBlockAssignment_13_1_2_0_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("finallyBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("finallyBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_0_3_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_0_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// FINALLY finallyBlock=Block
+protected class PrimaryExpression_Group_13_1_2_1 extends GroupToken {
+
+ public PrimaryExpression_Group_13_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_13_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_FinallyBlockAssignment_13_1_2_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FINALLY
+protected class PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_BodyAssignment_13_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// finallyBlock=Block
+protected class PrimaryExpression_FinallyBlockAssignment_13_1_2_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_FinallyBlockAssignment_13_1_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getFinallyBlockAssignment_13_1_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("finallyBlock",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("finallyBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_FINALLYTerminalRuleCall_13_1_2_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+// {Switch} (SWITCH exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT)
+protected class PrimaryExpression_Group_14 extends GroupToken {
+
+ public PrimaryExpression_Group_14(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_14();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_14_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Switch}
+protected class PrimaryExpression_SwitchAction_14_0 extends ActionToken {
+
+ public PrimaryExpression_SwitchAction_14_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// SWITCH exp=Expression? INDENT cases+=Case* (ELSE elseBlock=Block)? OUTDENT
+protected class PrimaryExpression_Group_14_1 extends GroupToken {
+
+ public PrimaryExpression_Group_14_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_14_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_OUTDENTTerminalRuleCall_14_1_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// SWITCH
+protected class PrimaryExpression_SWITCHTerminalRuleCall_14_1_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_SWITCHTerminalRuleCall_14_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getSWITCHTerminalRuleCall_14_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_SwitchAction_14_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// exp=Expression?
+protected class PrimaryExpression_ExpAssignment_14_1_1 extends AssignmentToken {
+
+ public PrimaryExpression_ExpAssignment_14_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getExpAssignment_14_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_14_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_SWITCHTerminalRuleCall_14_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT
+protected class PrimaryExpression_INDENTTerminalRuleCall_14_1_2 extends UnassignedTextToken {
+
+ public PrimaryExpression_INDENTTerminalRuleCall_14_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getINDENTTerminalRuleCall_14_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ExpAssignment_14_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_SWITCHTerminalRuleCall_14_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// cases+=Case*
+protected class PrimaryExpression_CasesAssignment_14_1_3 extends AssignmentToken {
+
+ public PrimaryExpression_CasesAssignment_14_1_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getCasesAssignment_14_1_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("cases",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("cases");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCaseRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getCasesCaseParserRuleCall_14_1_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_CasesAssignment_14_1_3(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new PrimaryExpression_INDENTTerminalRuleCall_14_1_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (ELSE elseBlock=Block)?
+protected class PrimaryExpression_Group_14_1_4 extends GroupToken {
+
+ public PrimaryExpression_Group_14_1_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getGroup_14_1_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_ElseBlockAssignment_14_1_4_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ELSE
+protected class PrimaryExpression_ELSETerminalRuleCall_14_1_4_0 extends UnassignedTextToken {
+
+ public PrimaryExpression_ELSETerminalRuleCall_14_1_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getELSETerminalRuleCall_14_1_4_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_CasesAssignment_14_1_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_INDENTTerminalRuleCall_14_1_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// elseBlock=Block
+protected class PrimaryExpression_ElseBlockAssignment_14_1_4_1 extends AssignmentToken {
+
+ public PrimaryExpression_ElseBlockAssignment_14_1_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getElseBlockAssignment_14_1_4_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("elseBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("elseBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPrimaryExpressionAccess().getElseBlockBlockParserRuleCall_14_1_4_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new PrimaryExpression_ELSETerminalRuleCall_14_1_4_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// OUTDENT
+protected class PrimaryExpression_OUTDENTTerminalRuleCall_14_1_5 extends UnassignedTextToken {
+
+ public PrimaryExpression_OUTDENTTerminalRuleCall_14_1_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getOUTDENTTerminalRuleCall_14_1_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new PrimaryExpression_Group_14_1_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new PrimaryExpression_CasesAssignment_14_1_3(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new PrimaryExpression_INDENTTerminalRuleCall_14_1_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// IdRef
+protected class PrimaryExpression_IdRefParserRuleCall_15 extends RuleCallToken {
+
+ public PrimaryExpression_IdRefParserRuleCall_15(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPrimaryExpressionAccess().getIdRefParserRuleCall_15();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule PrimaryExpression ****************/
+
+
+/************ begin Rule Block ****************
+ *
+ * Block:
+ * {Block} INDENT Body? OUTDENT;
+ *
+ **/
+
+// {Block} INDENT Body? OUTDENT
+protected class Block_Group extends GroupToken {
+
+ public Block_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBlockAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_OUTDENTTerminalRuleCall_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBlockAccess().getBlockAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getBodyRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {Block}
+protected class Block_BlockAction_0 extends ActionToken {
+
+ public Block_BlockAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getBlockAccess().getBlockAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// INDENT
+protected class Block_INDENTTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public Block_INDENTTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBlockAccess().getINDENTTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_BlockAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// Body?
+protected class Block_BodyParserRuleCall_2 extends RuleCallToken {
+
+ public Block_BodyParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBlockAccess().getBodyParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Body_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_INDENTTerminalRuleCall_1(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class Block_OUTDENTTerminalRuleCall_3 extends UnassignedTextToken {
+
+ public Block_OUTDENTTerminalRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBlockAccess().getOUTDENTTerminalRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_BodyParserRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Block_INDENTTerminalRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Block ****************/
+
+
+/************ begin Rule Case ****************
+ *
+ * // a switch case (called When in coffeescript)
+ * Case:
+ * LEADING_WHEN whens+=Expression (COMMA whens+=Expression)* then=Block TERMINATOR?;
+ *
+ **/
+
+// LEADING_WHEN whens+=Expression (COMMA whens+=Expression)* then=Block TERMINATOR?
+protected class Case_Group extends GroupToken {
+
+ public Case_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCaseAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_ThenAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCaseRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// LEADING_WHEN
+protected class Case_LEADING_WHENTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public Case_LEADING_WHENTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCaseAccess().getLEADING_WHENTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// whens+=Expression
+protected class Case_WhensAssignment_1 extends AssignmentToken {
+
+ public Case_WhensAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCaseAccess().getWhensAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("whens",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("whens");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Case_LEADING_WHENTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (COMMA whens+=Expression)*
+protected class Case_Group_2 extends GroupToken {
+
+ public Case_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCaseAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_WhensAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class Case_COMMATerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public Case_COMMATerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCaseAccess().getCOMMATerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Case_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Case_WhensAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// whens+=Expression
+protected class Case_WhensAssignment_2_1 extends AssignmentToken {
+
+ public Case_WhensAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCaseAccess().getWhensAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("whens",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("whens");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Case_COMMATerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// then=Block
+protected class Case_ThenAssignment_3 extends AssignmentToken {
+
+ public Case_ThenAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCaseAccess().getThenAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("then",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("then");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCaseAccess().getThenBlockParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Case_Group_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Case_WhensAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule Case ****************/
+
+
+/************ begin Rule IfExp ****************
+ *
+ * IfExp:
+ * blocks+=CondBlock (ELSE blocks+=CondBlock)* (ELSE defaultBlock=Block)?;
+ *
+ **/
+
+// blocks+=CondBlock (ELSE blocks+=CondBlock)* (ELSE defaultBlock=Block)?
+protected class IfExp_Group extends GroupToken {
+
+ public IfExp_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfExp_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new IfExp_BlocksAssignment_0(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIfExpRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// blocks+=CondBlock
+protected class IfExp_BlocksAssignment_0 extends AssignmentToken {
+
+ public IfExp_BlocksAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getBlocksAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CondBlock_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("blocks",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("blocks");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCondBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (ELSE blocks+=CondBlock)*
+protected class IfExp_Group_1 extends GroupToken {
+
+ public IfExp_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_BlocksAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ELSE
+protected class IfExp_ELSETerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public IfExp_ELSETerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getELSETerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfExp_BlocksAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// blocks+=CondBlock
+protected class IfExp_BlocksAssignment_1_1 extends AssignmentToken {
+
+ public IfExp_BlocksAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getBlocksAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CondBlock_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("blocks",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("blocks");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCondBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IfExp_ELSETerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// (ELSE defaultBlock=Block)?
+protected class IfExp_Group_2 extends GroupToken {
+
+ public IfExp_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_DefaultBlockAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ELSE
+protected class IfExp_ELSETerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public IfExp_ELSETerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getELSETerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IfExp_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new IfExp_BlocksAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// defaultBlock=Block
+protected class IfExp_DefaultBlockAssignment_2_1 extends AssignmentToken {
+
+ public IfExp_DefaultBlockAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIfExpAccess().getDefaultBlockAssignment_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("defaultBlock",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("defaultBlock");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getIfExpAccess().getDefaultBlockBlockParserRuleCall_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new IfExp_ELSETerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule IfExp ****************/
+
+
+/************ begin Rule CondBlock ****************
+ *
+ * // IF can be 'if' or 'unless'
+ * CondBlock:
+ * operator=IF condition=Expression action=Block;
+ *
+ **/
+
+// operator=IF condition=Expression action=Block
+protected class CondBlock_Group extends GroupToken {
+
+ public CondBlock_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new CondBlock_ActionAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCondBlockRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// operator=IF
+protected class CondBlock_OperatorAssignment_0 extends AssignmentToken {
+
+ public CondBlock_OperatorAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getOperatorAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCondBlockAccess().getOperatorIFTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCondBlockAccess().getOperatorIFTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// condition=Expression
+protected class CondBlock_ConditionAssignment_1 extends AssignmentToken {
+
+ public CondBlock_ConditionAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getConditionAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("condition",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCondBlockAccess().getConditionExpressionParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CondBlock_OperatorAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// action=Block
+protected class CondBlock_ActionAssignment_2 extends AssignmentToken {
+
+ public CondBlock_ActionAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCondBlockAccess().getActionAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("action",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("action");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getCondBlockAccess().getActionBlockParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new CondBlock_ConditionAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule CondBlock ****************/
+
+
+/************ begin Rule IdRef ****************
+ *
+ * IdRef:
+ * val=[Id|IDENTIFIER];
+ *
+ **/
+
+// val=[Id|IDENTIFIER]
+protected class IdRef_ValAssignment extends AssignmentToken {
+
+ public IdRef_ValAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIdRefAccess().getValAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("val",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("val");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRefAccess().getValIdCrossReference_0().getType().getClassifier())) {
+ type = AssignmentType.CROSS_REFERENCE;
+ element = grammarAccess.getIdRefAccess().getValIdCrossReference_0();
+ return obj;
+ }
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule IdRef ****************/
+
+
+/************ begin Rule Id ****************
+ *
+ * Id:
+ * name=IDENTIFIER;
+ *
+ **/
+
+// name=IDENTIFIER
+protected class Id_NameAssignment extends AssignmentToken {
+
+ public Id_NameAssignment(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getIdAccess().getNameAssignment();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getIdAccess().getNameIDENTIFIERTerminalRuleCall_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getIdAccess().getNameIDENTIFIERTerminalRuleCall_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+/************ end Rule Id ****************/
+
+
+/************ begin Rule Property ****************
+ *
+ * Property:
+ * => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)) prop=Id // FIXME: property is actually "Expression Accessor"
+ * | => (IdRef INDEX_START) index=Index INDEX_END;
+ *
+ **/
+
+// => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)) prop=Id // FIXME: property is actually "Expression Accessor"
+// | => (IdRef INDEX_START) index=Index INDEX_END
+protected class Property_Alternatives extends AlternativesToken {
+
+ public Property_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Property_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)) prop=Id
+protected class Property_Group_0 extends GroupToken {
+
+ public Property_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_PropAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT))
+protected class Property_Group_0_0 extends GroupToken {
+
+ public Property_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Group_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)
+protected class Property_Group_0_0_0 extends GroupToken {
+
+ public Property_Group_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_AccessorAssignment_0_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef
+protected class Property_IdRefParserRuleCall_0_0_0_0 extends RuleCallToken {
+
+ public Property_IdRefParserRuleCall_0_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getIdRefParserRuleCall_0_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// accessor=(DOT | DOUBLE_COLON | QUESTION_DOT)
+protected class Property_AccessorAssignment_0_0_0_1 extends AssignmentToken {
+
+ public Property_AccessorAssignment_0_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getAccessorAssignment_0_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_IdRefParserRuleCall_0_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("accessor",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("accessor");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyAccess().getAccessorDOTTerminalRuleCall_0_0_0_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getAccessorDOTTerminalRuleCall_0_0_0_1_0_0();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyAccess().getAccessorDOUBLE_COLONTerminalRuleCall_0_0_0_1_0_1(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getAccessorDOUBLE_COLONTerminalRuleCall_0_0_0_1_0_1();
+ return obj;
+ }
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPropertyAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1_0_2(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1_0_2();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// prop=Id
+protected class Property_PropAssignment_0_1 extends AssignmentToken {
+
+ public Property_PropAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getPropAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("prop",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("prop");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getPropIdParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Property_Group_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// => (IdRef INDEX_START) index=Index INDEX_END
+protected class Property_Group_1 extends GroupToken {
+
+ public Property_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_INDEX_ENDTerminalRuleCall_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (IdRef INDEX_START)
+protected class Property_Group_1_0 extends GroupToken {
+
+ public Property_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Group_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef INDEX_START
+protected class Property_Group_1_0_0 extends GroupToken {
+
+ public Property_Group_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getGroup_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_INDEX_STARTTerminalRuleCall_1_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// IdRef
+protected class Property_IdRefParserRuleCall_1_0_0_0 extends RuleCallToken {
+
+ public Property_IdRefParserRuleCall_1_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getIdRefParserRuleCall_1_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new IdRef_ValAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(IdRef_ValAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// INDEX_START
+protected class Property_INDEX_STARTTerminalRuleCall_1_0_0_1 extends UnassignedTextToken {
+
+ public Property_INDEX_STARTTerminalRuleCall_1_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getINDEX_STARTTerminalRuleCall_1_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_IdRefParserRuleCall_1_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// index=Index
+protected class Property_IndexAssignment_1_1 extends AssignmentToken {
+
+ public Property_IndexAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getIndexAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Index_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("index",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("index");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIndexRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPropertyAccess().getIndexIndexParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Property_Group_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDEX_END
+protected class Property_INDEX_ENDTerminalRuleCall_1_2 extends UnassignedTextToken {
+
+ public Property_INDEX_ENDTerminalRuleCall_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getPropertyAccess().getINDEX_ENDTerminalRuleCall_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_IndexAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Property ****************/
+
+
+/************ begin Rule Variable ****************
+ *
+ * Variable:
+ * Id | (AT_SIGIL | THIS DOT) Id (DOT props+=Id)* | Property;
+ *
+ **/
+
+// Id | (AT_SIGIL | THIS DOT) Id (DOT props+=Id)* | Property
+protected class Variable_Alternatives extends AlternativesToken {
+
+ public Variable_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getVariableAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_IdParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Variable_Group_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Variable_PropertyParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Id
+protected class Variable_IdParserRuleCall_0 extends RuleCallToken {
+
+ public Variable_IdParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getIdParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// (AT_SIGIL | THIS DOT) Id (DOT props+=Id)*
+protected class Variable_Group_1 extends GroupToken {
+
+ public Variable_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getVariableAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Group_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Variable_IdParserRuleCall_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// AT_SIGIL | THIS DOT
+protected class Variable_Alternatives_1_0 extends AlternativesToken {
+
+ public Variable_Alternatives_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getVariableAccess().getAlternatives_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_AT_SIGILTerminalRuleCall_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// AT_SIGIL
+protected class Variable_AT_SIGILTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public Variable_AT_SIGILTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getAT_SIGILTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+
+// Id
+protected class Variable_IdParserRuleCall_1_1 extends RuleCallToken {
+
+ public Variable_IdParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getIdParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Alternatives_1_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// (DOT props+=Id)*
+protected class Variable_Group_1_2 extends GroupToken {
+
+ public Variable_Group_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getVariableAccess().getGroup_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_PropsAssignment_1_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// DOT
+protected class Variable_DOTTerminalRuleCall_1_2_0 extends UnassignedTextToken {
+
+ public Variable_DOTTerminalRuleCall_1_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getDOTTerminalRuleCall_1_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Group_1_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Variable_IdParserRuleCall_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// props+=Id
+protected class Variable_PropsAssignment_1_2_1 extends AssignmentToken {
+
+ public Variable_PropsAssignment_1_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getVariableAccess().getPropsAssignment_1_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("props",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("props");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getIdRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getVariableAccess().getPropsIdParserRuleCall_1_2_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Variable_DOTTerminalRuleCall_1_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// Property
+protected class Variable_PropertyParserRuleCall_2 extends RuleCallToken {
+
+ public Variable_PropertyParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getVariableAccess().getPropertyParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Property_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Property_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Variable ****************/
+
+
+/************ begin Rule AssignableArray ****************
+ *
+ * / ** An array that can be on the left-hand side of an assignment * / AssignableArray:
+ * LBRACKET AssignableArgList RBRACKET;
+ *
+ **/
+
+// => LBRACKET AssignableArgList RBRACKET
+protected class AssignableArray_Group extends GroupToken {
+
+ public AssignableArray_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_RBRACKETTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => LBRACKET
+protected class AssignableArray_LBRACKETTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public AssignableArray_LBRACKETTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getLBRACKETTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// AssignableArgList
+protected class AssignableArray_AssignableArgListParserRuleCall_1 extends RuleCallToken {
+
+ public AssignableArray_AssignableArgListParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getAssignableArgListParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(AssignableArgList_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_LBRACKETTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// RBRACKET
+protected class AssignableArray_RBRACKETTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public AssignableArray_RBRACKETTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArrayAccess().getRBRACKETTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_AssignableArgListParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule AssignableArray ****************/
+
+
+/************ begin Rule AssignableArgList ****************
+ *
+ * AssignableArgList:
+ * args+=AssignableArg (COMMA args+=AssignableArg)*;
+ *
+ **/
+
+// args+=AssignableArg (COMMA args+=AssignableArg)*
+protected class AssignableArgList_Group extends GroupToken {
+
+ public AssignableArgList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignableArgList_ArgsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// args+=AssignableArg
+protected class AssignableArgList_ArgsAssignment_0 extends AssignmentToken {
+
+ public AssignableArgList_ArgsAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getArgsAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA args+=AssignableArg)*
+protected class AssignableArgList_Group_1 extends GroupToken {
+
+ public AssignableArgList_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_ArgsAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class AssignableArgList_COMMATerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public AssignableArgList_COMMATerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getCOMMATerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArgList_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignableArgList_ArgsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// args+=AssignableArg
+protected class AssignableArgList_ArgsAssignment_1_1 extends AssignmentToken {
+
+ public AssignableArgList_ArgsAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgListAccess().getArgsAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("args",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("args");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new AssignableArgList_COMMATerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule AssignableArgList ****************/
+
+
+/************ begin Rule AssignableArg ****************
+ *
+ * AssignableArg:
+ * arg=Assignable splat?=ELLIPSIS?;
+ *
+ **/
+
+// arg=Assignable splat?=ELLIPSIS?
+protected class AssignableArg_Group extends GroupToken {
+
+ public AssignableArg_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getAssignableArgAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_SplatAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new AssignableArg_ArgAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// arg=Assignable
+protected class AssignableArg_ArgAssignment_0 extends AssignmentToken {
+
+ public AssignableArg_ArgAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgAccess().getArgAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("arg",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("arg");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getAssignableRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getAssignableArgAccess().getArgAssignableParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// splat?=ELLIPSIS?
+protected class AssignableArg_SplatAssignment_1 extends AssignmentToken {
+
+ public AssignableArg_SplatAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getAssignableArgAccess().getSplatAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArg_ArgAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("splat",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("splat");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssignableArgAccess().getSplatELLIPSISTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getAssignableArgAccess().getSplatELLIPSISTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule AssignableArg ****************/
+
+
+/************ begin Rule Assignable ****************
+ *
+ * Assignable:
+ * Variable | Dictionary | AssignableArray;
+ *
+ **/
+
+// Variable | Dictionary | AssignableArray
+protected class Assignable_Alternatives extends AlternativesToken {
+
+ public Assignable_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Assignable_VariableParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Assignable_DictionaryParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Assignable_AssignableArrayParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Variable
+protected class Assignable_VariableParserRuleCall_0 extends RuleCallToken {
+
+ public Assignable_VariableParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getVariableParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Variable_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRefRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Variable_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Dictionary
+protected class Assignable_DictionaryParserRuleCall_1 extends RuleCallToken {
+
+ public Assignable_DictionaryParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getDictionaryParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Dictionary_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// AssignableArray
+protected class Assignable_AssignableArrayParserRuleCall_2 extends RuleCallToken {
+
+ public Assignable_AssignableArrayParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getAssignableAccess().getAssignableArrayParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new AssignableArray_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getAssignableArgListRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(AssignableArray_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Assignable ****************/
+
+
+/************ begin Rule Arg ****************
+ *
+ * / *
+ * * FIXME: handle more complex assignables
+ * * / Arg:
+ * exp=Expression splat?=ELLIPSIS?;
+ *
+ **/
+
+// exp=Expression splat?=ELLIPSIS?
+protected class Arg_Group extends GroupToken {
+
+ public Arg_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_SplatAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Arg_ExpAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// exp=Expression
+protected class Arg_ExpAssignment_0 extends AssignmentToken {
+
+ public Arg_ExpAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgAccess().getExpAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("exp",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("exp");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgAccess().getExpExpressionParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// splat?=ELLIPSIS?
+protected class Arg_SplatAssignment_1 extends AssignmentToken {
+
+ public Arg_SplatAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgAccess().getSplatAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_ExpAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("splat",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("splat");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getArgAccess().getSplatELLIPSISTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getArgAccess().getSplatELLIPSISTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule Arg ****************/
+
+
+/************ begin Rule ArgLine ****************
+ *
+ * ArgLine:
+ * head=Arg (COMMA tail+=Arg)* COMMA?;
+ *
+ **/
+
+// head=Arg (COMMA tail+=Arg)* COMMA?
+protected class ArgLine_Group extends GroupToken {
+
+ public ArgLine_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgLineRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// head=Arg
+protected class ArgLine_HeadAssignment_0 extends AssignmentToken {
+
+ public ArgLine_HeadAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getHeadAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("head",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("head");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgLineAccess().getHeadArgParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA tail+=Arg)*
+protected class ArgLine_Group_1 extends GroupToken {
+
+ public ArgLine_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_TailAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class ArgLine_COMMATerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public ArgLine_COMMATerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getCOMMATerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tail+=Arg
+protected class ArgLine_TailAssignment_1_1 extends AssignmentToken {
+
+ public ArgLine_TailAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgLineAccess().getTailAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Arg_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tail",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tail");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgLineAccess().getTailArgParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ArgLine_COMMATerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule ArgLine ****************/
+
+
+/************ begin Rule ExplicitArgList ****************
+ *
+ * ExplicitArgList:
+ * lines+=ArgLine (TERMINATOR lines+=ArgLine | INDENT lines+=ArgLine OUTDENT)*;
+ *
+ **/
+
+// lines+=ArgLine (TERMINATOR lines+=ArgLine | INDENT lines+=ArgLine OUTDENT)*
+protected class ExplicitArgList_Group extends GroupToken {
+
+ public ExplicitArgList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getExplicitArgListRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// lines+=ArgLine
+protected class ExplicitArgList_LinesAssignment_0 extends AssignmentToken {
+
+ public ExplicitArgList_LinesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getLinesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (TERMINATOR lines+=ArgLine | INDENT lines+=ArgLine OUTDENT)*
+protected class ExplicitArgList_Alternatives_1 extends AlternativesToken {
+
+ public ExplicitArgList_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR lines+=ArgLine
+protected class ExplicitArgList_Group_1_0 extends GroupToken {
+
+ public ExplicitArgList_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_LinesAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class ExplicitArgList_TERMINATORTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public ExplicitArgList_TERMINATORTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getTERMINATORTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=ArgLine
+protected class ExplicitArgList_LinesAssignment_1_0_1 extends AssignmentToken {
+
+ public ExplicitArgList_LinesAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getLinesAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitArgList_TERMINATORTerminalRuleCall_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// INDENT lines+=ArgLine OUTDENT
+protected class ExplicitArgList_Group_1_1 extends GroupToken {
+
+ public ExplicitArgList_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class ExplicitArgList_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ExplicitArgList_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitArgList_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=ArgLine
+protected class ExplicitArgList_LinesAssignment_1_1_1 extends AssignmentToken {
+
+ public ExplicitArgList_LinesAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getLinesAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getArgLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitArgList_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class ExplicitArgList_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public ExplicitArgList_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitArgListAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_LinesAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule ExplicitArgList ****************/
+
+
+/************ begin Rule ArgList ****************
+ *
+ * ArgList:
+ * {ArgList} (dummy=ExplicitArgList | INDENT dummy=ExplicitArgList OUTDENT)?;
+ *
+ **/
+
+// {ArgList} (dummy=ExplicitArgList | INDENT dummy=ExplicitArgList OUTDENT)?
+protected class ArgList_Group extends GroupToken {
+
+ public ArgList_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgListAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgList_ArgListAction_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {ArgList}
+protected class ArgList_ArgListAction_0 extends ActionToken {
+
+ public ArgList_ArgListAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getArgListAccess().getArgListAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// (dummy=ExplicitArgList | INDENT dummy=ExplicitArgList OUTDENT)?
+protected class ArgList_Alternatives_1 extends AlternativesToken {
+
+ public ArgList_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getArgListAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_DummyAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ArgList_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitArgList
+protected class ArgList_DummyAssignment_1_0 extends AssignmentToken {
+
+ public ArgList_DummyAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgListAccess().getDummyAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ArgList_ArgListAction_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT dummy=ExplicitArgList OUTDENT
+protected class ArgList_Group_1_1 extends GroupToken {
+
+ public ArgList_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArgListAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class ArgList_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ArgList_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArgListAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_ArgListAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitArgList
+protected class ArgList_DummyAssignment_1_1_1 extends AssignmentToken {
+
+ public ArgList_DummyAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getArgListAccess().getDummyAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitArgListRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ArgList_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class ArgList_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public ArgList_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArgListAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_DummyAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule ArgList ****************/
+
+
+/************ begin Rule Array ****************
+ *
+ * Array:
+ * LBRACKET ArgList RBRACKET;
+ *
+ **/
+
+// => LBRACKET ArgList RBRACKET
+protected class Array_Group extends GroupToken {
+
+ public Array_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getArrayAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_RBRACKETTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => LBRACKET
+protected class Array_LBRACKETTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public Array_LBRACKETTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArrayAccess().getLBRACKETTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// ArgList
+protected class Array_ArgListParserRuleCall_1 extends RuleCallToken {
+
+ public Array_ArgListParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArrayAccess().getArgListParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ArgList_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(ArgList_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_LBRACKETTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// RBRACKET
+protected class Array_RBRACKETTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public Array_RBRACKETTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getArrayAccess().getRBRACKETTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_ArgListParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Array ****************/
+
+
+/************ begin Rule Dictionary ****************
+ *
+ * // Object in coffeescript
+ * Dictionary:
+ * LCURLY DictItems RCURLY;
+ *
+ **/
+
+// => LCURLY DictItems RCURLY
+protected class Dictionary_Group extends GroupToken {
+
+ public Dictionary_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_RCURLYTerminalRuleCall_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => LCURLY
+protected class Dictionary_LCURLYTerminalRuleCall_0 extends UnassignedTextToken {
+
+ public Dictionary_LCURLYTerminalRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getLCURLYTerminalRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// DictItems
+protected class Dictionary_DictItemsParserRuleCall_1 extends RuleCallToken {
+
+ public Dictionary_DictItemsParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getDictItemsParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(checkForRecursion(DictItems_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_LCURLYTerminalRuleCall_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+// RCURLY
+protected class Dictionary_RCURLYTerminalRuleCall_2 extends UnassignedTextToken {
+
+ public Dictionary_RCURLYTerminalRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictionaryAccess().getRCURLYTerminalRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_DictItemsParserRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Dictionary ****************/
+
+
+/************ begin Rule DictItems ****************
+ *
+ * DictItems:
+ * {DictItems} (dummy=ExplicitDictItems | INDENT dummy=ExplicitDictItems OUTDENT)?;
+ *
+ **/
+
+// {DictItems} (dummy=ExplicitDictItems | INDENT dummy=ExplicitDictItems OUTDENT)?
+protected class DictItems_Group extends GroupToken {
+
+ public DictItems_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItems_DictItemsAction_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {DictItems}
+protected class DictItems_DictItemsAction_0 extends ActionToken {
+
+ public DictItems_DictItemsAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getDictItemsAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// (dummy=ExplicitDictItems | INDENT dummy=ExplicitDictItems OUTDENT)?
+protected class DictItems_Alternatives_1 extends AlternativesToken {
+
+ public DictItems_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_DummyAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItems_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitDictItems
+protected class DictItems_DummyAssignment_1_0 extends AssignmentToken {
+
+ public DictItems_DummyAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getDummyAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitDictItemsRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItems_DictItemsAction_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT dummy=ExplicitDictItems OUTDENT
+protected class DictItems_Group_1_1 extends GroupToken {
+
+ public DictItems_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class DictItems_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public DictItems_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_DictItemsAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// dummy=ExplicitDictItems
+protected class DictItems_DummyAssignment_1_1_1 extends AssignmentToken {
+
+ public DictItems_DummyAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getDummyAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("dummy",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dummy");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExplicitDictItemsRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItems_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class DictItems_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public DictItems_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItems_DummyAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule DictItems ****************/
+
+
+/************ begin Rule ExplicitDictItems ****************
+ *
+ * ExplicitDictItems:
+ * lines+=DictLine (TERMINATOR lines+=DictLine | INDENT lines+=DictLine OUTDENT)*;
+ *
+ **/
+
+// lines+=DictLine (TERMINATOR lines+=DictLine | INDENT lines+=DictLine OUTDENT)*
+protected class ExplicitDictItems_Group extends GroupToken {
+
+ public ExplicitDictItems_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getExplicitDictItemsRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// lines+=DictLine
+protected class ExplicitDictItems_LinesAssignment_0 extends AssignmentToken {
+
+ public ExplicitDictItems_LinesAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getLinesAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (TERMINATOR lines+=DictLine | INDENT lines+=DictLine OUTDENT)*
+protected class ExplicitDictItems_Alternatives_1 extends AlternativesToken {
+
+ public ExplicitDictItems_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR lines+=DictLine
+protected class ExplicitDictItems_Group_1_0 extends GroupToken {
+
+ public ExplicitDictItems_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_LinesAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// TERMINATOR
+protected class ExplicitDictItems_TERMINATORTerminalRuleCall_1_0_0 extends UnassignedTextToken {
+
+ public ExplicitDictItems_TERMINATORTerminalRuleCall_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getTERMINATORTerminalRuleCall_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=DictLine
+protected class ExplicitDictItems_LinesAssignment_1_0_1 extends AssignmentToken {
+
+ public ExplicitDictItems_LinesAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getLinesAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitDictItems_TERMINATORTerminalRuleCall_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// INDENT lines+=DictLine OUTDENT
+protected class ExplicitDictItems_Group_1_1 extends GroupToken {
+
+ public ExplicitDictItems_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_OUTDENTTerminalRuleCall_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class ExplicitDictItems_INDENTTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public ExplicitDictItems_INDENTTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getINDENTTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new ExplicitDictItems_LinesAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// lines+=DictLine
+protected class ExplicitDictItems_LinesAssignment_1_1_1 extends AssignmentToken {
+
+ public ExplicitDictItems_LinesAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getLinesAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("lines",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("lines");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictLineRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new ExplicitDictItems_INDENTTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class ExplicitDictItems_OUTDENTTerminalRuleCall_1_1_2 extends UnassignedTextToken {
+
+ public ExplicitDictItems_OUTDENTTerminalRuleCall_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getExplicitDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ExplicitDictItems_LinesAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+/************ end Rule ExplicitDictItems ****************/
+
+
+/************ begin Rule DictLine ****************
+ *
+ * DictLine:
+ * head=DictItem (COMMA tail+=DictItem)* COMMA?;
+ *
+ **/
+
+// head=DictItem (COMMA tail+=DictItem)* COMMA?
+protected class DictLine_Group extends GroupToken {
+
+ public DictLine_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictLineRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// head=DictItem
+protected class DictLine_HeadAssignment_0 extends AssignmentToken {
+
+ public DictLine_HeadAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getHeadAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("head",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("head");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictItemRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictLineAccess().getHeadDictItemParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (COMMA tail+=DictItem)*
+protected class DictLine_Group_1 extends GroupToken {
+
+ public DictLine_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_TailAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class DictLine_COMMATerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public DictLine_COMMATerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getCOMMATerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictLine_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictLine_HeadAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// tail+=DictItem
+protected class DictLine_TailAssignment_1_1 extends AssignmentToken {
+
+ public DictLine_TailAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictLineAccess().getTailAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("tail",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tail");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictItemRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictLineAccess().getTailDictItemParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictLine_COMMATerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule DictLine ****************/
+
+
+/************ begin Rule DictItem ****************
+ *
+ * DictItem:
+ * {DictItem} key=DictKey (COLON (value=Expression | INDENT value=Expression OUTDENT))?;
+ *
+ **/
+
+// {DictItem} key=DictKey (COLON (value=Expression | INDENT value=Expression OUTDENT))?
+protected class DictItem_Group extends GroupToken {
+
+ public DictItem_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Group_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItem_KeyAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemAccess().getDictItemAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {DictItem}
+protected class DictItem_DictItemAction_0 extends ActionToken {
+
+ public DictItem_DictItemAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getDictItemAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// key=DictKey
+protected class DictItem_KeyAssignment_1 extends AssignmentToken {
+
+ public DictItem_KeyAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getKeyAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictKey_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("key",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("key");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDictKeyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemAccess().getKeyDictKeyParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItem_DictItemAction_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (COLON (value=Expression | INDENT value=Expression OUTDENT))?
+protected class DictItem_Group_2 extends GroupToken {
+
+ public DictItem_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getGroup_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_Alternatives_2_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COLON
+protected class DictItem_COLONTerminalRuleCall_2_0 extends UnassignedTextToken {
+
+ public DictItem_COLONTerminalRuleCall_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getCOLONTerminalRuleCall_2_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_KeyAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=Expression | INDENT value=Expression OUTDENT
+protected class DictItem_Alternatives_2_1 extends AlternativesToken {
+
+ public DictItem_Alternatives_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getAlternatives_2_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_ValueAssignment_2_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictItem_Group_2_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=Expression
+protected class DictItem_ValueAssignment_2_1_0 extends AssignmentToken {
+
+ public DictItem_ValueAssignment_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getValueAssignment_2_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItem_COLONTerminalRuleCall_2_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// INDENT value=Expression OUTDENT
+protected class DictItem_Group_2_1_1 extends GroupToken {
+
+ public DictItem_Group_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getGroup_2_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_OUTDENTTerminalRuleCall_2_1_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// INDENT
+protected class DictItem_INDENTTerminalRuleCall_2_1_1_0 extends UnassignedTextToken {
+
+ public DictItem_INDENTTerminalRuleCall_2_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getINDENTTerminalRuleCall_2_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_COLONTerminalRuleCall_2_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// value=Expression
+protected class DictItem_ValueAssignment_2_1_1_1 extends AssignmentToken {
+
+ public DictItem_ValueAssignment_2_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getValueAssignment_2_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("value",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("value");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new DictItem_INDENTTerminalRuleCall_2_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class DictItem_OUTDENTTerminalRuleCall_2_1_1_2 extends UnassignedTextToken {
+
+ public DictItem_OUTDENTTerminalRuleCall_2_1_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictItemAccess().getOUTDENTTerminalRuleCall_2_1_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictItem_ValueAssignment_2_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+
+
+/************ end Rule DictItem ****************/
+
+
+/************ begin Rule DictKey ****************
+ *
+ * DictKey:
+ * Literal | Id;
+ *
+ **/
+
+// Literal | Id
+protected class DictKey_Alternatives extends AlternativesToken {
+
+ public DictKey_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getDictKeyAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new DictKey_LiteralParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new DictKey_IdParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Literal
+protected class DictKey_LiteralParserRuleCall_0 extends RuleCallToken {
+
+ public DictKey_LiteralParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictKeyAccess().getLiteralParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Literal_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Literal_Alternatives.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Id
+protected class DictKey_IdParserRuleCall_1 extends RuleCallToken {
+
+ public DictKey_IdParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getDictKeyAccess().getIdParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule DictKey ****************/
+
+
+/************ begin Rule Lambda ****************
+ *
+ * // Code in coffeescript
+ * Lambda:
+ * (PARAM_START (params+=Param (COMMA params+=Param)*)? PARAM_END)? (FUNC_ARROW | BOUND_FUNC_ARROW) body=Block;
+ *
+ **/
+
+// (PARAM_START (params+=Param (COMMA params+=Param)*)? PARAM_END)? (FUNC_ARROW | BOUND_FUNC_ARROW) body=Block
+protected class Lambda_Group extends GroupToken {
+
+ public Lambda_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_BodyAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getLambdaRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// (PARAM_START (params+=Param (COMMA params+=Param)*)? PARAM_END)?
+protected class Lambda_Group_0 extends GroupToken {
+
+ public Lambda_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_PARAM_ENDTerminalRuleCall_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// PARAM_START
+protected class Lambda_PARAM_STARTTerminalRuleCall_0_0 extends UnassignedTextToken {
+
+ public Lambda_PARAM_STARTTerminalRuleCall_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getPARAM_STARTTerminalRuleCall_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// (params+=Param (COMMA params+=Param)*)?
+protected class Lambda_Group_0_1 extends GroupToken {
+
+ public Lambda_Group_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Lambda_ParamsAssignment_0_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// params+=Param
+protected class Lambda_ParamsAssignment_0_1_0 extends AssignmentToken {
+
+ public Lambda_ParamsAssignment_0_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getParamsAssignment_0_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("params",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("params");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getParamRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Lambda_PARAM_STARTTerminalRuleCall_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (COMMA params+=Param)*
+protected class Lambda_Group_0_1_1 extends GroupToken {
+
+ public Lambda_Group_0_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getGroup_0_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_ParamsAssignment_0_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// COMMA
+protected class Lambda_COMMATerminalRuleCall_0_1_1_0 extends UnassignedTextToken {
+
+ public Lambda_COMMATerminalRuleCall_0_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getCOMMATerminalRuleCall_0_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Lambda_ParamsAssignment_0_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// params+=Param
+protected class Lambda_ParamsAssignment_0_1_1_1 extends AssignmentToken {
+
+ public Lambda_ParamsAssignment_0_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getParamsAssignment_0_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("params",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("params");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getParamRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Lambda_COMMATerminalRuleCall_0_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+// PARAM_END
+protected class Lambda_PARAM_ENDTerminalRuleCall_0_2 extends UnassignedTextToken {
+
+ public Lambda_PARAM_ENDTerminalRuleCall_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getPARAM_ENDTerminalRuleCall_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Lambda_PARAM_STARTTerminalRuleCall_0_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// FUNC_ARROW | BOUND_FUNC_ARROW
+protected class Lambda_Alternatives_1 extends AlternativesToken {
+
+ public Lambda_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_FUNC_ARROWTerminalRuleCall_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// FUNC_ARROW
+protected class Lambda_FUNC_ARROWTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Lambda_FUNC_ARROWTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getFUNC_ARROWTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Lambda_Group_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+}
+
+
+// body=Block
+protected class Lambda_BodyAssignment_2 extends AssignmentToken {
+
+ public Lambda_BodyAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getLambdaAccess().getBodyAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Block_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBlockRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getLambdaAccess().getBodyBlockParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Lambda_Alternatives_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+/************ end Rule Lambda ****************/
+
+
+/************ begin Rule Param ****************
+ *
+ * Param:
+ * (Id | Array | Dictionary | ThisProperty) (splat?=ELLIPSIS | EQUAL defaultValue=Expression)?;
+ *
+ **/
+
+// (Id | Array | Dictionary | ThisProperty) (splat?=ELLIPSIS | EQUAL defaultValue=Expression)?
+protected class Param_Group extends GroupToken {
+
+ public Param_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParamAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Param_Alternatives_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// Id | Array | Dictionary | ThisProperty
+protected class Param_Alternatives_0 extends AlternativesToken {
+
+ public Param_Alternatives_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParamAccess().getAlternatives_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_IdParserRuleCall_0_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Param_ArrayParserRuleCall_0_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Param_DictionaryParserRuleCall_0_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Param_ThisPropertyParserRuleCall_0_3(lastRuleCallOrigin, this, 3, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// Id
+protected class Param_IdParserRuleCall_0_0 extends RuleCallToken {
+
+ public Param_IdParserRuleCall_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getIdParserRuleCall_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Id_NameAssignment(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Id_NameAssignment.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Array
+protected class Param_ArrayParserRuleCall_0_1 extends RuleCallToken {
+
+ public Param_ArrayParserRuleCall_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getArrayParserRuleCall_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Array_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getArgListAccess().getArgListAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Array_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// Dictionary
+protected class Param_DictionaryParserRuleCall_0_2 extends RuleCallToken {
+
+ public Param_DictionaryParserRuleCall_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getDictionaryParserRuleCall_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Dictionary_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDictItemsAccess().getDictItemsAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(Dictionary_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// ThisProperty
+protected class Param_ThisPropertyParserRuleCall_0_3 extends RuleCallToken {
+
+ public Param_ThisPropertyParserRuleCall_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getThisPropertyParserRuleCall_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new ThisProperty_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getIdRule().getType().getClassifier())
+ return null;
+ if(checkForRecursion(ThisProperty_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+// (splat?=ELLIPSIS | EQUAL defaultValue=Expression)?
+protected class Param_Alternatives_1 extends AlternativesToken {
+
+ public Param_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParamAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_SplatAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Param_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// splat?=ELLIPSIS
+protected class Param_SplatAssignment_1_0 extends AssignmentToken {
+
+ public Param_SplatAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParamAccess().getSplatAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Alternatives_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("splat",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("splat");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getParamAccess().getSplatELLIPSISTerminalRuleCall_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getParamAccess().getSplatELLIPSISTerminalRuleCall_1_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// EQUAL defaultValue=Expression
+protected class Param_Group_1_1 extends GroupToken {
+
+ public Param_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParamAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_DefaultValueAssignment_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// EQUAL
+protected class Param_EQUALTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public Param_EQUALTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParamAccess().getEQUALTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Param_Alternatives_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// defaultValue=Expression
+protected class Param_DefaultValueAssignment_1_1_1 extends AssignmentToken {
+
+ public Param_DefaultValueAssignment_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParamAccess().getDefaultValueAssignment_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expression_PostfixParserRuleCall(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("defaultValue",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("defaultValue");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExpressionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParamAccess().getDefaultValueExpressionParserRuleCall_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Param_EQUALTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+/************ end Rule Param ****************/
+
+
+/************ begin Rule NumberLiteral ****************
+ *
+ * NumberLiteral:
+ * {NumberLiteral} NUMBER;
+ *
+ **/
+
+// {NumberLiteral} NUMBER
+protected class NumberLiteral_Group extends GroupToken {
+
+ public NumberLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getNumberLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NumberLiteral_NUMBERTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {NumberLiteral}
+protected class NumberLiteral_NumberLiteralAction_0 extends ActionToken {
+
+ public NumberLiteral_NumberLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// NUMBER
+protected class NumberLiteral_NUMBERTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public NumberLiteral_NUMBERTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getNumberLiteralAccess().getNUMBERTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NumberLiteral_NumberLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule NumberLiteral ****************/
+
+
+/************ begin Rule StringLiteral ****************
+ *
+ * StringLiteral:
+ * {StringLiteral} STRING;
+ *
+ **/
+
+// {StringLiteral} STRING
+protected class StringLiteral_Group extends GroupToken {
+
+ public StringLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStringLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_STRINGTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {StringLiteral}
+protected class StringLiteral_StringLiteralAction_0 extends ActionToken {
+
+ public StringLiteral_StringLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getStringLiteralAccess().getStringLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// STRING
+protected class StringLiteral_STRINGTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public StringLiteral_STRINGTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getStringLiteralAccess().getSTRINGTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_StringLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule StringLiteral ****************/
+
+
+/************ begin Rule BoolLiteral ****************
+ *
+ * BoolLiteral:
+ * {BoolLiteral} BOOL;
+ *
+ **/
+
+// {BoolLiteral} BOOL
+protected class BoolLiteral_Group extends GroupToken {
+
+ public BoolLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getBoolLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BoolLiteral_BOOLTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {BoolLiteral}
+protected class BoolLiteral_BoolLiteralAction_0 extends ActionToken {
+
+ public BoolLiteral_BoolLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// BOOL
+protected class BoolLiteral_BOOLTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public BoolLiteral_BOOLTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getBoolLiteralAccess().getBOOLTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BoolLiteral_BoolLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule BoolLiteral ****************/
+
+
+/************ begin Rule JSLiteral ****************
+ *
+ * JSLiteral:
+ * {JSLiteral} JS;
+ *
+ **/
+
+// {JSLiteral} JS
+protected class JSLiteral_Group extends GroupToken {
+
+ public JSLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getJSLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new JSLiteral_JSTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {JSLiteral}
+protected class JSLiteral_JSLiteralAction_0 extends ActionToken {
+
+ public JSLiteral_JSLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getJSLiteralAccess().getJSLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// JS
+protected class JSLiteral_JSTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public JSLiteral_JSTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getJSLiteralAccess().getJSTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new JSLiteral_JSLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule JSLiteral ****************/
+
+
+/************ begin Rule RegexLiteral ****************
+ *
+ * RegexLiteral:
+ * {RegexLiteral} REGEX;
+ *
+ **/
+
+// {RegexLiteral} REGEX
+protected class RegexLiteral_Group extends GroupToken {
+
+ public RegexLiteral_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRegexLiteralAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RegexLiteral_REGEXTerminalRuleCall_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// {RegexLiteral}
+protected class RegexLiteral_RegexLiteralAction_0 extends ActionToken {
+
+ public RegexLiteral_RegexLiteralAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// REGEX
+protected class RegexLiteral_REGEXTerminalRuleCall_1 extends UnassignedTextToken {
+
+ public RegexLiteral_REGEXTerminalRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getRegexLiteralAccess().getREGEXTerminalRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RegexLiteral_RegexLiteralAction_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule RegexLiteral ****************/
+
+
+/************ begin Rule Literal ****************
+ *
+ * Literal:
+ * NumberLiteral | StringLiteral | BoolLiteral | JSLiteral | RegexLiteral;
+ *
+ **/
+
+// NumberLiteral | StringLiteral | BoolLiteral | JSLiteral | RegexLiteral
+protected class Literal_Alternatives extends AlternativesToken {
+
+ public Literal_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Literal_NumberLiteralParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Literal_StringLiteralParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Literal_BoolLiteralParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Literal_JSLiteralParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new Literal_RegexLiteralParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// NumberLiteral
+protected class Literal_NumberLiteralParserRuleCall_0 extends RuleCallToken {
+
+ public Literal_NumberLiteralParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getNumberLiteralParserRuleCall_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new NumberLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(NumberLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// StringLiteral
+protected class Literal_StringLiteralParserRuleCall_1 extends RuleCallToken {
+
+ public Literal_StringLiteralParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new StringLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStringLiteralAccess().getStringLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(StringLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// BoolLiteral
+protected class Literal_BoolLiteralParserRuleCall_2 extends RuleCallToken {
+
+ public Literal_BoolLiteralParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getBoolLiteralParserRuleCall_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new BoolLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(BoolLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// JSLiteral
+protected class Literal_JSLiteralParserRuleCall_3 extends RuleCallToken {
+
+ public Literal_JSLiteralParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getJSLiteralParserRuleCall_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new JSLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getJSLiteralAccess().getJSLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(JSLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+// RegexLiteral
+protected class Literal_RegexLiteralParserRuleCall_4 extends RuleCallToken {
+
+ public Literal_RegexLiteralParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getLiteralAccess().getRegexLiteralParserRuleCall_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new RegexLiteral_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0().getType().getClassifier())
+ return null;
+ if(checkForRecursion(RegexLiteral_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+ }
+ }
+}
+
+
+/************ end Rule Literal ****************/
+
+
+/************ begin Rule Parenthetical ****************
+ *
+ * Parenthetical:
+ * => (LPAREN INDENT) content=Body OUTDENT RPAREN | LPAREN content=Body RPAREN;
+ *
+ **/
+
+// => (LPAREN INDENT) content=Body OUTDENT RPAREN | LPAREN content=Body RPAREN
+protected class Parenthetical_Alternatives extends AlternativesToken {
+
+ public Parenthetical_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Parenthetical_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getParentheticalRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// => (LPAREN INDENT) content=Body OUTDENT RPAREN
+protected class Parenthetical_Group_0 extends GroupToken {
+
+ public Parenthetical_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_RPARENTerminalRuleCall_0_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => (LPAREN INDENT)
+protected class Parenthetical_Group_0_0 extends GroupToken {
+
+ public Parenthetical_Group_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_Group_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LPAREN INDENT
+protected class Parenthetical_Group_0_0_0 extends GroupToken {
+
+ public Parenthetical_Group_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_INDENTTerminalRuleCall_0_0_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// LPAREN
+protected class Parenthetical_LPARENTerminalRuleCall_0_0_0_0 extends UnassignedTextToken {
+
+ public Parenthetical_LPARENTerminalRuleCall_0_0_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_0_0_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// INDENT
+protected class Parenthetical_INDENTTerminalRuleCall_0_0_0_1 extends UnassignedTextToken {
+
+ public Parenthetical_INDENTTerminalRuleCall_0_0_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getINDENTTerminalRuleCall_0_0_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_LPARENTerminalRuleCall_0_0_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+// content=Body
+protected class Parenthetical_ContentAssignment_0_1 extends AssignmentToken {
+
+ public Parenthetical_ContentAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getContentAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("content",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("content");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Parenthetical_Group_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// OUTDENT
+protected class Parenthetical_OUTDENTTerminalRuleCall_0_2 extends UnassignedTextToken {
+
+ public Parenthetical_OUTDENTTerminalRuleCall_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getOUTDENTTerminalRuleCall_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_ContentAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// RPAREN
+protected class Parenthetical_RPARENTerminalRuleCall_0_3 extends UnassignedTextToken {
+
+ public Parenthetical_RPARENTerminalRuleCall_0_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_0_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_OUTDENTTerminalRuleCall_0_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// => LPAREN content=Body RPAREN
+protected class Parenthetical_Group_1 extends GroupToken {
+
+ public Parenthetical_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_RPARENTerminalRuleCall_1_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// => LPAREN
+protected class Parenthetical_LPARENTerminalRuleCall_1_0 extends UnassignedTextToken {
+
+ public Parenthetical_LPARENTerminalRuleCall_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// content=Body
+protected class Parenthetical_ContentAssignment_1_1 extends AssignmentToken {
+
+ public Parenthetical_ContentAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getContentAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Body_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("content",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("content");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getBodyRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Parenthetical_LPARENTerminalRuleCall_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// RPAREN
+protected class Parenthetical_RPARENTerminalRuleCall_1_2 extends UnassignedTextToken {
+
+ public Parenthetical_RPARENTerminalRuleCall_1_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_1_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Parenthetical_ContentAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+
+/************ end Rule Parenthetical ****************/
+
+}
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/CakefileAntlrTokenFileProvider.java b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/CakefileAntlrTokenFileProvider.java
new file mode 100644
index 0000000..05ffb94
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/CakefileAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package csep.example.cake.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class CakefileAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("csep/example/cake/parser/antlr/internal/InternalCakefile.tokens");
+ }
+}
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/CakefileParser.java b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/CakefileParser.java
new file mode 100644
index 0000000..5402dc5
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/CakefileParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package csep.example.cake.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import csep.example.cake.services.CakefileGrammarAccess;
+
+public class CakefileParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private CakefileGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected csep.example.cake.parser.antlr.internal.InternalCakefileParser createParser(XtextTokenStream stream) {
+ return new csep.example.cake.parser.antlr.internal.InternalCakefileParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Cakefile";
+ }
+
+ public CakefileGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(CakefileGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g
new file mode 100644
index 0000000..8c47719
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g
@@ -0,0 +1,5685 @@
+/*
+* generated by Xtext
+*/
+grammar InternalCakefile;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package csep.example.cake.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package csep.example.cake.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import csep.example.cake.services.CakefileGrammarAccess;
+
+}
+
+@parser::members {
+
+ private CakefileGrammarAccess grammarAccess;
+
+ public InternalCakefileParser(TokenStream input, CakefileGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Cakefile";
+ }
+
+ @Override
+ protected CakefileGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleCakefile
+entryRuleCakefile returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCakefileRule()); }
+ iv_ruleCakefile=ruleCakefile
+ { $current=$iv_ruleCakefile.current; }
+ EOF
+;
+
+// Rule Cakefile
+ruleCakefile returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCakefileAccess().getTasksTaskDeclarationParserRuleCall_0());
+ }
+ lv_tasks_0_0=ruleTaskDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCakefileRule());
+ }
+ add(
+ $current,
+ "tasks",
+ lv_tasks_0_0,
+ "TaskDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleTaskDeclaration
+entryRuleTaskDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTaskDeclarationRule()); }
+ iv_ruleTaskDeclaration=ruleTaskDeclaration
+ { $current=$iv_ruleTaskDeclaration.current; }
+ EOF
+;
+
+// Rule TaskDeclaration
+ruleTaskDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_TASK_0=RULE_TASK
+ {
+ newLeafNode(this_TASK_0, grammarAccess.getTaskDeclarationAccess().getTASKTerminalRuleCall_0());
+ }
+this_CALL_START_1=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_1, grammarAccess.getTaskDeclarationAccess().getCALL_STARTTerminalRuleCall_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTaskDeclarationAccess().getNameStringLiteralParserRuleCall_2_0());
+ }
+ lv_name_2_0=ruleStringLiteral {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTaskDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_2_0,
+ "StringLiteral");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_COMMA_3=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_3, grammarAccess.getTaskDeclarationAccess().getCOMMATerminalRuleCall_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTaskDeclarationAccess().getDescriptionStringLiteralParserRuleCall_4_0());
+ }
+ lv_description_4_0=ruleStringLiteral {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTaskDeclarationRule());
+ }
+ set(
+ $current,
+ "description",
+ lv_description_4_0,
+ "StringLiteral");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_COMMA_5=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_5, grammarAccess.getTaskDeclarationAccess().getCOMMATerminalRuleCall_5());
+ }
+(this_PARAM_START_6=RULE_PARAM_START
+ {
+ newLeafNode(this_PARAM_START_6, grammarAccess.getTaskDeclarationAccess().getPARAM_STARTTerminalRuleCall_6_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTaskDeclarationAccess().getOptionsIdParserRuleCall_6_1_0());
+ }
+ lv_options_7_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTaskDeclarationRule());
+ }
+ set(
+ $current,
+ "options",
+ lv_options_7_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_PARAM_END_8=RULE_PARAM_END
+ {
+ newLeafNode(this_PARAM_END_8, grammarAccess.getTaskDeclarationAccess().getPARAM_ENDTerminalRuleCall_6_2());
+ }
+)?this_FUNC_ARROW_9=RULE_FUNC_ARROW
+ {
+ newLeafNode(this_FUNC_ARROW_9, grammarAccess.getTaskDeclarationAccess().getFUNC_ARROWTerminalRuleCall_7());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getTaskDeclarationAccess().getBodyBlockParserRuleCall_8_0());
+ }
+ lv_body_10_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTaskDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_10_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_CALL_END_11=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_11, grammarAccess.getTaskDeclarationAccess().getCALL_ENDTerminalRuleCall_9());
+ }
+this_TERMINATOR_12=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_12, grammarAccess.getTaskDeclarationAccess().getTERMINATORTerminalRuleCall_10());
+ }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleBody
+entryRuleBody returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBodyRule()); }
+ iv_ruleBody=ruleBody
+ { $current=$iv_ruleBody.current; }
+ EOF
+;
+
+// Rule Body
+ruleBody returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getBodyAccess().getLinesLineParserRuleCall_0_0());
+ }
+ lv_lines_0_0=ruleLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBodyRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_0_0,
+ "Line");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_TERMINATOR_1=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_1, grammarAccess.getBodyAccess().getTERMINATORTerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getBodyAccess().getLinesLineParserRuleCall_1_1_0());
+ }
+ lv_lines_2_0=ruleLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getBodyRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_2_0,
+ "Line");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)*)
+;
+
+
+
+
+
+// Entry rule entryRuleLine
+entryRuleLine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLineRule()); }
+ iv_ruleLine=ruleLine
+ { $current=$iv_ruleLine.current; }
+ EOF
+;
+
+// Rule Line
+ruleLine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLineAccess().getStmtParserRuleCall_0());
+ }
+ this_Stmt_0=ruleStmt
+ {
+ $current = $this_Stmt_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLineAccess().getExpressionParserRuleCall_1());
+ }
+ this_Expression_1=ruleExpression
+ {
+ $current = $this_Expression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStmt
+entryRuleStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStmtRule()); }
+ iv_ruleStmt=ruleStmt
+ { $current=$iv_ruleStmt.current; }
+ EOF
+;
+
+// Rule Stmt
+ruleStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getReturnStmtParserRuleCall_0());
+ }
+ this_ReturnStmt_0=ruleReturnStmt
+ {
+ $current = $this_ReturnStmt_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getThrowStmtParserRuleCall_1());
+ }
+ this_ThrowStmt_1=ruleThrowStmt
+ {
+ $current = $this_ThrowStmt_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((((
+(
+ruleId
+)
+) RULE_EQUAL 'require'
+))=>
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getRequireStmtParserRuleCall_2());
+ }
+ this_RequireStmt_2=ruleRequireStmt
+ {
+ $current = $this_RequireStmt_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getCommentParserRuleCall_3());
+ }
+ this_Comment_3=ruleComment
+ {
+ $current = $this_Comment_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getStmtAccess().getClassDeclarationParserRuleCall_4());
+ }
+ this_ClassDeclaration_4=ruleClassDeclaration
+ {
+ $current = $this_ClassDeclaration_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(
+(
+ lv_statement_5_0=RULE_STATEMENT
+ {
+ newLeafNode(lv_statement_5_0, grammarAccess.getStmtAccess().getStatementSTATEMENTTerminalRuleCall_5_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStmtRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "statement",
+ lv_statement_5_0,
+ "STATEMENT");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleComment
+entryRuleComment returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCommentRule()); }
+ iv_ruleComment=ruleComment
+ { $current=$iv_ruleComment.current; }
+ EOF
+;
+
+// Rule Comment
+ruleComment returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_comment_0_0=RULE_HERECOMMENT
+ {
+ newLeafNode(lv_comment_0_0, grammarAccess.getCommentAccess().getCommentHERECOMMENTTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCommentRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "comment",
+ lv_comment_0_0,
+ "HERECOMMENT");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleRequireStmt
+entryRuleRequireStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRequireStmtRule()); }
+ iv_ruleRequireStmt=ruleRequireStmt
+ { $current=$iv_ruleRequireStmt.current; }
+ EOF
+;
+
+// Rule RequireStmt
+ruleRequireStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((((
+(
+ruleId
+)
+) RULE_EQUAL 'require'
+))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getRequireStmtAccess().getImportedNamespaceIdParserRuleCall_0_0_0_0());
+ }
+ lv_importedNamespace_0_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRequireStmtRule());
+ }
+ set(
+ $current,
+ "importedNamespace",
+ lv_importedNamespace_0_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_EQUAL_1=RULE_EQUAL
+ {
+ newLeafNode(this_EQUAL_1, grammarAccess.getRequireStmtAccess().getEQUALTerminalRuleCall_0_0_1());
+ }
+ otherlv_2='require'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getRequireStmtAccess().getRequireKeyword_0_0_2());
+ }
+))this_CALL_START_3=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_3, grammarAccess.getRequireStmtAccess().getCALL_STARTTerminalRuleCall_1());
+ }
+(
+(
+ lv_uri_4_0=RULE_STRING
+ {
+ newLeafNode(lv_uri_4_0, grammarAccess.getRequireStmtAccess().getUriSTRINGTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRequireStmtRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "uri",
+ lv_uri_4_0,
+ "STRING");
+ }
+
+)
+)this_CALL_END_5=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_5, grammarAccess.getRequireStmtAccess().getCALL_ENDTerminalRuleCall_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleReturnStmt
+entryRuleReturnStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getReturnStmtRule()); }
+ iv_ruleReturnStmt=ruleReturnStmt
+ { $current=$iv_ruleReturnStmt.current; }
+ EOF
+;
+
+// Rule ReturnStmt
+ruleReturnStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getReturnStmtAccess().getReturnStmtAction_0(),
+ $current);
+ }
+)this_RETURN_1=RULE_RETURN
+ {
+ newLeafNode(this_RETURN_1, grammarAccess.getReturnStmtAccess().getRETURNTerminalRuleCall_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getReturnStmtAccess().getExpressionExpressionParserRuleCall_2_0());
+ }
+ lv_expression_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getReturnStmtRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(this_POST_IF_3=RULE_POST_IF
+ {
+ newLeafNode(this_POST_IF_3, grammarAccess.getReturnStmtAccess().getPOST_IFTerminalRuleCall_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getReturnStmtAccess().getConditionExpressionParserRuleCall_3_1_0());
+ }
+ lv_condition_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getReturnStmtRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleThrowStmt
+entryRuleThrowStmt returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getThrowStmtRule()); }
+ iv_ruleThrowStmt=ruleThrowStmt
+ { $current=$iv_ruleThrowStmt.current; }
+ EOF
+;
+
+// Rule ThrowStmt
+ruleThrowStmt returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_THROW_0=RULE_THROW
+ {
+ newLeafNode(this_THROW_0, grammarAccess.getThrowStmtAccess().getTHROWTerminalRuleCall_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getThrowStmtAccess().getExpExpressionParserRuleCall_1_0());
+ }
+ lv_exp_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getThrowStmtRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleSuperClass
+entryRuleSuperClass returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSuperClassRule()); }
+ iv_ruleSuperClass=ruleSuperClass
+ { $current=$iv_ruleSuperClass.current; }
+ EOF
+;
+
+// Rule SuperClass
+ruleSuperClass returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getSuperClassAccess().getIdRefParserRuleCall_0());
+ }
+ this_IdRef_0=ruleIdRef
+ {
+ $current = $this_IdRef_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getSuperClassAccess().getPropertyParserRuleCall_1());
+ }
+ this_Property_1=ruleProperty
+ {
+ $current = $this_Property_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleClassDeclaration
+entryRuleClassDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
+ iv_ruleClassDeclaration=ruleClassDeclaration
+ { $current=$iv_ruleClassDeclaration.current; }
+ EOF
+;
+
+// Rule ClassDeclaration
+ruleClassDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getClassDeclarationAccess().getClassDeclarationAction_0(),
+ $current);
+ }
+)this_CLASS_1=RULE_CLASS
+ {
+ newLeafNode(this_CLASS_1, grammarAccess.getClassDeclarationAccess().getCLASSTerminalRuleCall_1());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_0());
+ }
+ lv_body_2_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_2_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_EXTENDS_3=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_3, grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_0());
+ }
+ lv_extend_4_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_4_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0());
+ }
+ lv_body_5_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_5_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+ |((
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdParserRuleCall_2_2_0_0_0());
+ }
+ lv_name_6_1=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_6_1,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+ | {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getNamePropertyParserRuleCall_2_2_0_0_1());
+ }
+ lv_name_6_2=ruleProperty {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_6_2,
+ "Property");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+
+)
+)(this_EXTENDS_7=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_7, grammarAccess.getClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_2_1_1_0());
+ }
+ lv_extend_8_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_8_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getClassDeclarationAccess().getBodyBlockParserRuleCall_2_2_2_0());
+ }
+ lv_body_9_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_9_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignedClassDeclaration
+entryRuleAssignedClassDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignedClassDeclarationRule()); }
+ iv_ruleAssignedClassDeclaration=ruleAssignedClassDeclaration
+ { $current=$iv_ruleAssignedClassDeclaration.current; }
+ EOF
+;
+
+// Rule AssignedClassDeclaration
+ruleAssignedClassDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getAssignedClassDeclarationAccess().getClassDeclarationAction_0(),
+ $current);
+ }
+)this_CLASS_1=RULE_CLASS
+ {
+ newLeafNode(this_CLASS_1, grammarAccess.getAssignedClassDeclarationAccess().getCLASSTerminalRuleCall_1());
+ }
+((this_EXTENDS_2=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_2, grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_0_1_0());
+ }
+ lv_extend_3_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_3_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_0_2_0());
+ }
+ lv_body_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getNameIdParserRuleCall_2_1_0_0_0());
+ }
+ lv_name_5_1=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_5_1,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+ | {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getNamePropertyParserRuleCall_2_1_0_0_1());
+ }
+ lv_name_5_2=ruleProperty {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_5_2,
+ "Property");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+
+)
+)(this_EXTENDS_6=RULE_EXTENDS
+ {
+ newLeafNode(this_EXTENDS_6, grammarAccess.getAssignedClassDeclarationAccess().getEXTENDSTerminalRuleCall_2_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getExtendSuperClassParserRuleCall_2_1_1_1_0());
+ }
+ lv_extend_7_0=ruleSuperClass {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "extend",
+ lv_extend_7_0,
+ "SuperClass");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedClassDeclarationAccess().getBodyBlockParserRuleCall_2_1_2_0());
+ }
+ lv_body_8_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignedClassDeclarationRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_8_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleExpression
+entryRuleExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExpressionRule()); }
+ iv_ruleExpression=ruleExpression
+ { $current=$iv_ruleExpression.current; }
+ EOF
+;
+
+// Rule Expression
+ruleExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getExpressionAccess().getPostfixParserRuleCall());
+ }
+ this_Postfix_0=rulePostfix
+ {
+ $current = $this_Postfix_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRulePostfix
+entryRulePostfix returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPostfixRule()); }
+ iv_rulePostfix=rulePostfix
+ { $current=$iv_rulePostfix.current; }
+ EOF
+;
+
+// Rule Postfix
+rulePostfix returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getAssignmentParserRuleCall_0());
+ }
+ this_Assignment_0=ruleAssignment
+ {
+ $current = $this_Assignment_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((( RULE_POST_IF)=>this_POST_IF_1=RULE_POST_IF
+ {
+ newLeafNode(this_POST_IF_1, grammarAccess.getPostfixAccess().getPOST_IFTerminalRuleCall_1_0_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getIfDummyAction_1_0_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getConditionExpressionParserRuleCall_1_0_2_0());
+ }
+ lv_condition_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((( RULE_FOR)=>this_FOR_4=RULE_FOR
+ {
+ newLeafNode(this_FOR_4, grammarAccess.getPostfixAccess().getFORTerminalRuleCall_1_1_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getForDummyAction_1_1_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getBodyForBodyParserRuleCall_1_1_2_0());
+ }
+ lv_body_6_0=ruleForBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_6_0,
+ "ForBody");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((( RULE_WHILE)=>this_WHILE_7=RULE_WHILE
+ {
+ newLeafNode(this_WHILE_7, grammarAccess.getPostfixAccess().getWHILETerminalRuleCall_1_2_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getWhileDummyAction_1_2_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_2_2_0());
+ }
+ lv_body_9_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_9_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_10=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_10, grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_2_3_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_2_3_1_0());
+ }
+ lv_when_11_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_11_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((( RULE_UNTIL)=>this_UNTIL_12=RULE_UNTIL
+ {
+ newLeafNode(this_UNTIL_12, grammarAccess.getPostfixAccess().getUNTILTerminalRuleCall_1_3_0());
+ }
+)(
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getPostfixAccess().getUntilDummyAction_1_3_1(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getBodyExpressionParserRuleCall_1_3_2_0());
+ }
+ lv_body_14_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_14_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_15=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_15, grammarAccess.getPostfixAccess().getWHENTerminalRuleCall_1_3_3_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPostfixAccess().getWhenExpressionParserRuleCall_1_3_3_1_0());
+ }
+ lv_when_16_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPostfixRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_16_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?))?)
+;
+
+
+
+
+
+// Entry rule entryRuleForBody
+entryRuleForBody returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForBodyRule()); }
+ iv_ruleForBody=ruleForBody
+ { $current=$iv_ruleForBody.current; }
+ EOF
+;
+
+// Rule ForBody
+ruleForBody returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((this_OWN_0=RULE_OWN
+ {
+ newLeafNode(this_OWN_0, grammarAccess.getForBodyAccess().getOWNTerminalRuleCall_0());
+ }
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_1_0());
+ }
+ lv_indexes_1_0=ruleForValue {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForBodyRule());
+ }
+ add(
+ $current,
+ "indexes",
+ lv_indexes_1_0,
+ "ForValue");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_2=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_2, grammarAccess.getForBodyAccess().getCOMMATerminalRuleCall_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getForBodyAccess().getIndexesForValueParserRuleCall_2_1_0());
+ }
+ lv_indexes_3_0=ruleForValue {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForBodyRule());
+ }
+ add(
+ $current,
+ "indexes",
+ lv_indexes_3_0,
+ "ForValue");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(
+(
+ {
+ newCompositeNode(grammarAccess.getForBodyAccess().getSourceForSourceParserRuleCall_3_0());
+ }
+ lv_source_4_0=ruleForSource {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForBodyRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_4_0,
+ "ForSource");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleForValue
+entryRuleForValue returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForValueRule()); }
+ iv_ruleForValue=ruleForValue
+ { $current=$iv_ruleForValue.current; }
+ EOF
+;
+
+// Rule ForValue
+ruleForValue returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getForValueAccess().getIdParserRuleCall());
+ }
+ this_Id_0=ruleId
+ {
+ $current = $this_Id_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRuleForSource
+entryRuleForSource returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getForSourceRule()); }
+ iv_ruleForSource=ruleForSource
+ { $current=$iv_ruleForSource.current; }
+ EOF
+;
+
+// Rule ForSource
+ruleForSource returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getForSourceAccess().getForSourceAction_0(),
+ $current);
+ }
+)(((( RULE_FOROF)=>this_FOROF_1=RULE_FOROF
+ {
+ newLeafNode(this_FOROF_1, grammarAccess.getForSourceAccess().getFOROFTerminalRuleCall_1_0_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_0_1_0());
+ }
+ lv_source_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_3=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_3, grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_0_2_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_0_2_1_0());
+ }
+ lv_when_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((( RULE_FORIN)=>this_FORIN_5=RULE_FORIN
+ {
+ newLeafNode(this_FORIN_5, grammarAccess.getForSourceAccess().getFORINTerminalRuleCall_1_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getSourceExpressionParserRuleCall_1_1_1_0());
+ }
+ lv_source_6_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "source",
+ lv_source_6_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(((( RULE_WHEN)=>this_WHEN_7=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_7, grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_0_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_0_1_0());
+ }
+ lv_when_8_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_8_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_BY)=>this_BY_9=RULE_BY
+ {
+ newLeafNode(this_BY_9, grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_0_2_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_0_2_1_0());
+ }
+ lv_by_10_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "by",
+ lv_by_10_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |((( RULE_BY)=>this_BY_11=RULE_BY
+ {
+ newLeafNode(this_BY_11, grammarAccess.getForSourceAccess().getBYTerminalRuleCall_1_1_2_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getByExpressionParserRuleCall_1_1_2_1_1_0());
+ }
+ lv_by_12_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "by",
+ lv_by_12_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( RULE_WHEN)=>this_WHEN_13=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_13, grammarAccess.getForSourceAccess().getWHENTerminalRuleCall_1_1_2_1_2_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getForSourceAccess().getWhenExpressionParserRuleCall_1_1_2_1_2_1_0());
+ }
+ lv_when_14_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getForSourceRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_14_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?))?)))
+;
+
+
+
+
+
+// Entry rule entryRuleRange
+entryRuleRange returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRangeRule()); }
+ iv_ruleRange=ruleRange
+ { $current=$iv_ruleRange.current; }
+ EOF
+;
+
+// Rule Range
+ruleRange returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((( RULE_LBRACKET(
+(
+ruleExpression
+)
+)( RULE_DOT_DOT
+ | RULE_ELLIPSIS)))=>(this_LBRACKET_0=RULE_LBRACKET
+ {
+ newLeafNode(this_LBRACKET_0, grammarAccess.getRangeAccess().getLBRACKETTerminalRuleCall_0_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getRangeAccess().getStartExpressionParserRuleCall_0_0_1_0());
+ }
+ lv_start_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRangeRule());
+ }
+ set(
+ $current,
+ "start",
+ lv_start_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_DOT_DOT_2=RULE_DOT_DOT
+ {
+ newLeafNode(this_DOT_DOT_2, grammarAccess.getRangeAccess().getDOT_DOTTerminalRuleCall_0_0_2_0());
+ }
+
+ |this_ELLIPSIS_3=RULE_ELLIPSIS
+ {
+ newLeafNode(this_ELLIPSIS_3, grammarAccess.getRangeAccess().getELLIPSISTerminalRuleCall_0_0_2_1());
+ }
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getRangeAccess().getEndExpressionParserRuleCall_1_0());
+ }
+ lv_end_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRangeRule());
+ }
+ set(
+ $current,
+ "end",
+ lv_end_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_RBRACKET_5=RULE_RBRACKET
+ {
+ newLeafNode(this_RBRACKET_5, grammarAccess.getRangeAccess().getRBRACKETTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignment
+entryRuleAssignment returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignmentRule()); }
+ iv_ruleAssignment=ruleAssignment
+ { $current=$iv_ruleAssignment.current; }
+ EOF
+;
+
+// Rule Assignment
+ruleAssignment returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((((
+(
+ruleAssignable
+)
+)(
+(
+(
+RULE_EQUAL
+
+ | RULE_COMPOUND_ASSIGN
+
+)
+
+)
+)))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignmentAccess().getLeftAssignableParserRuleCall_0_0_0_0_0());
+ }
+ lv_left_0_0=ruleAssignable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignmentRule());
+ }
+ set(
+ $current,
+ "left",
+ lv_left_0_0,
+ "Assignable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+(
+ lv_operator_1_1=RULE_EQUAL
+ {
+ newLeafNode(lv_operator_1_1, grammarAccess.getAssignmentAccess().getOperatorEQUALTerminalRuleCall_0_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAssignmentRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_1_1,
+ "EQUAL");
+ }
+
+ | lv_operator_1_2=RULE_COMPOUND_ASSIGN
+ {
+ newLeafNode(lv_operator_1_2, grammarAccess.getAssignmentAccess().getOperatorCOMPOUND_ASSIGNTerminalRuleCall_0_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAssignmentRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_1_2,
+ "COMPOUND_ASSIGN");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignmentAccess().getRightAssignedParserRuleCall_0_1_0());
+ }
+ lv_right_2_0=ruleAssigned {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignmentRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_2_0,
+ "Assigned");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |
+ {
+ newCompositeNode(grammarAccess.getAssignmentAccess().getLogicOpParserRuleCall_1());
+ }
+ this_LogicOp_3=ruleLogicOp
+ {
+ $current = $this_LogicOp_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssigned
+entryRuleAssigned returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignedRule()); }
+ iv_ruleAssigned=ruleAssigned
+ { $current=$iv_ruleAssigned.current; }
+ EOF
+;
+
+// Rule Assigned
+ruleAssigned returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getAssignedAccess().getExpressionParserRuleCall_0());
+ }
+ this_Expression_0=ruleExpression
+ {
+ $current = $this_Expression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(this_INDENT_1=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_1, grammarAccess.getAssignedAccess().getINDENTTerminalRuleCall_1_0());
+ }
+
+ {
+ newCompositeNode(grammarAccess.getAssignedAccess().getExpressionParserRuleCall_1_1());
+ }
+ this_Expression_2=ruleExpression
+ {
+ $current = $this_Expression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+this_OUTDENT_3=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_3, grammarAccess.getAssignedAccess().getOUTDENTTerminalRuleCall_1_2());
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getAssignedAccess().getAssignedClassDeclarationParserRuleCall_2());
+ }
+ this_AssignedClassDeclaration_4=ruleAssignedClassDeclaration
+ {
+ $current = $this_AssignedClassDeclaration_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLogicOp
+entryRuleLogicOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLogicOpRule()); }
+ iv_ruleLogicOp=ruleLogicOp
+ { $current=$iv_ruleLogicOp.current; }
+ EOF
+;
+
+// Rule LogicOp
+ruleLogicOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLogicOpAccess().getCompareOpParserRuleCall_0());
+ }
+ this_CompareOp_0=ruleCompareOp
+ {
+ $current = $this_CompareOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_LOGIC
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getLogicOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_LOGIC
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getLogicOpAccess().getOperatorLOGICTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getLogicOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "LOGIC");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getLogicOpAccess().getRightCompareOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleCompareOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLogicOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "CompareOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleCompareOp
+entryRuleCompareOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCompareOpRule()); }
+ iv_ruleCompareOp=ruleCompareOp
+ { $current=$iv_ruleCompareOp.current; }
+ EOF
+;
+
+// Rule CompareOp
+ruleCompareOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getCompareOpAccess().getRelationOpParserRuleCall_0());
+ }
+ this_RelationOp_0=ruleRelationOp
+ {
+ $current = $this_RelationOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_COMPARE
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getCompareOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_COMPARE
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getCompareOpAccess().getOperatorCOMPARETerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCompareOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "COMPARE");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getCompareOpAccess().getRightRelationOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleRelationOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCompareOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "RelationOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleRelationOp
+entryRuleRelationOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRelationOpRule()); }
+ iv_ruleRelationOp=ruleRelationOp
+ { $current=$iv_ruleRelationOp.current; }
+ EOF
+;
+
+// Rule RelationOp
+ruleRelationOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getRelationOpAccess().getShiftOpParserRuleCall_0());
+ }
+ this_ShiftOp_0=ruleShiftOp
+ {
+ $current = $this_ShiftOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_RELATION
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getRelationOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_RELATION
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getRelationOpAccess().getOperatorRELATIONTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getRelationOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "RELATION");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getRelationOpAccess().getRightShiftOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleShiftOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRelationOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "ShiftOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleShiftOp
+entryRuleShiftOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getShiftOpRule()); }
+ iv_ruleShiftOp=ruleShiftOp
+ { $current=$iv_ruleShiftOp.current; }
+ EOF
+;
+
+// Rule ShiftOp
+ruleShiftOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getShiftOpAccess().getAdditiveOpParserRuleCall_0());
+ }
+ this_AdditiveOp_0=ruleAdditiveOp
+ {
+ $current = $this_AdditiveOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_SHIFT
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getShiftOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_SHIFT
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getShiftOpAccess().getOperatorSHIFTTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShiftOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "SHIFT");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getShiftOpAccess().getRightAdditiveOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleAdditiveOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getShiftOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "AdditiveOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleAdditiveOp
+entryRuleAdditiveOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAdditiveOpRule()); }
+ iv_ruleAdditiveOp=ruleAdditiveOp
+ { $current=$iv_ruleAdditiveOp.current; }
+ EOF
+;
+
+// Rule AdditiveOp
+ruleAdditiveOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getAdditiveOpAccess().getMathOpParserRuleCall_0());
+ }
+ this_MathOp_0=ruleMathOp
+ {
+ $current = $this_MathOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+(
+RULE_PLUS
+
+ | RULE_MINUS
+
+)
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getAdditiveOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+(
+ lv_operator_2_1=RULE_PLUS
+ {
+ newLeafNode(lv_operator_2_1, grammarAccess.getAdditiveOpAccess().getOperatorPLUSTerminalRuleCall_1_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAdditiveOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_1,
+ "PLUS");
+ }
+
+ | lv_operator_2_2=RULE_MINUS
+ {
+ newLeafNode(lv_operator_2_2, grammarAccess.getAdditiveOpAccess().getOperatorMINUSTerminalRuleCall_1_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAdditiveOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_2,
+ "MINUS");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getAdditiveOpAccess().getRightMathOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleMathOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAdditiveOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "MathOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleMathOp
+entryRuleMathOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getMathOpRule()); }
+ iv_ruleMathOp=ruleMathOp
+ { $current=$iv_ruleMathOp.current; }
+ EOF
+;
+
+// Rule MathOp
+ruleMathOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getMathOpAccess().getUnaryOpParserRuleCall_0());
+ }
+ this_UnaryOp_0=ruleUnaryOp
+ {
+ $current = $this_UnaryOp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+RULE_MATH
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getMathOpAccess().getBinaryExpLeftAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ lv_operator_2_0=RULE_MATH
+ {
+ newLeafNode(lv_operator_2_0, grammarAccess.getMathOpAccess().getOperatorMATHTerminalRuleCall_1_0_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getMathOpRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_2_0,
+ "MATH");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getMathOpAccess().getRightUnaryOpParserRuleCall_1_1_0());
+ }
+ lv_right_3_0=ruleUnaryOp {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getMathOpRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_3_0,
+ "UnaryOp");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleUnaryOp
+entryRuleUnaryOp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getUnaryOpRule()); }
+ iv_ruleUnaryOp=ruleUnaryOp
+ { $current=$iv_ruleUnaryOp.current; }
+ EOF
+;
+
+// Rule UnaryOp
+ruleUnaryOp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((this_UNARY_0=RULE_UNARY
+ {
+ newLeafNode(this_UNARY_0, grammarAccess.getUnaryOpAccess().getUNARYTerminalRuleCall_0_0_0());
+ }
+
+ |this_PLUS_1=RULE_PLUS
+ {
+ newLeafNode(this_PLUS_1, grammarAccess.getUnaryOpAccess().getPLUSTerminalRuleCall_0_0_1());
+ }
+
+ |this_MINUS_2=RULE_MINUS
+ {
+ newLeafNode(this_MINUS_2, grammarAccess.getUnaryOpAccess().getMINUSTerminalRuleCall_0_0_2());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getUnaryOpAccess().getExpressionParserRuleCall_0_1());
+ }
+ this_Expression_3=ruleExpression
+ {
+ $current = $this_Expression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |((this_PLUS_PLUS_4=RULE_PLUS_PLUS
+ {
+ newLeafNode(this_PLUS_PLUS_4, grammarAccess.getUnaryOpAccess().getPLUS_PLUSTerminalRuleCall_1_0_0());
+ }
+
+ |this_MINUS_MINUS_5=RULE_MINUS_MINUS
+ {
+ newLeafNode(this_MINUS_MINUS_5, grammarAccess.getUnaryOpAccess().getMINUS_MINUSTerminalRuleCall_1_0_1());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getUnaryOpAccess().getVariableParserRuleCall_1_1());
+ }
+ this_Variable_6=ruleVariable
+ {
+ $current = $this_Variable_6.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(
+ {
+ newCompositeNode(grammarAccess.getUnaryOpAccess().getApplicationParserRuleCall_2_0());
+ }
+ this_Application_7=ruleApplication
+ {
+ $current = $this_Application_7.current;
+ afterParserOrEnumRuleCall();
+ }
+(this_QUESTION_8=RULE_QUESTION
+ {
+ newLeafNode(this_QUESTION_8, grammarAccess.getUnaryOpAccess().getQUESTIONTerminalRuleCall_2_1());
+ }
+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleApplication
+entryRuleApplication returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getApplicationRule()); }
+ iv_ruleApplication=ruleApplication
+ { $current=$iv_ruleApplication.current; }
+ EOF
+;
+
+// Rule Application
+ruleApplication returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getApplicationAccess().getSuperCallAction_0_0(),
+ $current);
+ }
+)(this_SUPER_1=RULE_SUPER
+ {
+ newLeafNode(this_SUPER_1, grammarAccess.getApplicationAccess().getSUPERTerminalRuleCall_0_1_0());
+ }
+(this_CALL_START_2=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_2, grammarAccess.getApplicationAccess().getCALL_STARTTerminalRuleCall_0_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getApplicationAccess().getArgsArgListParserRuleCall_0_1_1_1_0());
+ }
+ lv_args_3_0=ruleArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getApplicationRule());
+ }
+ set(
+ $current,
+ "args",
+ lv_args_3_0,
+ "ArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_CALL_END_4=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_4, grammarAccess.getApplicationAccess().getCALL_ENDTerminalRuleCall_0_1_1_2());
+ }
+)?))
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getApplicationAccess().getValuePrimaryExpressionParserRuleCall_1_0_0());
+ }
+ lv_value_5_0=rulePrimaryExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getApplicationRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_5_0,
+ "PrimaryExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getApplicationAccess().getFeaturesFeatureCallParserRuleCall_1_1_0());
+ }
+ lv_features_6_0=ruleFeatureCall {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getApplicationRule());
+ }
+ add(
+ $current,
+ "features",
+ lv_features_6_0,
+ "FeatureCall");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*))
+;
+
+
+
+
+
+// Entry rule entryRuleFeatureCall
+entryRuleFeatureCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFeatureCallRule()); }
+ iv_ruleFeatureCall=ruleFeatureCall
+ { $current=$iv_ruleFeatureCall.current; }
+ EOF
+;
+
+// Rule FeatureCall
+ruleFeatureCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getFeatureCallAccess().getFunctionCallParserRuleCall_0());
+ }
+ this_FunctionCall_0=ruleFunctionCall
+ {
+ $current = $this_FunctionCall_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getFeatureCallAccess().getPropertyAccessParserRuleCall_1());
+ }
+ this_PropertyAccess_1=rulePropertyAccess
+ {
+ $current = $this_PropertyAccess_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFunctionCall
+entryRuleFunctionCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFunctionCallRule()); }
+ iv_ruleFunctionCall=ruleFunctionCall
+ { $current=$iv_ruleFunctionCall.current; }
+ EOF
+;
+
+// Rule FunctionCall
+ruleFunctionCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getFunctionCallAccess().getFunctionCallAction_0(),
+ $current);
+ }
+)(this_FUNC_EXIST_1=RULE_FUNC_EXIST
+ {
+ newLeafNode(this_FUNC_EXIST_1, grammarAccess.getFunctionCallAccess().getFUNC_EXISTTerminalRuleCall_1());
+ }
+)?this_CALL_START_2=RULE_CALL_START
+ {
+ newLeafNode(this_CALL_START_2, grammarAccess.getFunctionCallAccess().getCALL_STARTTerminalRuleCall_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFunctionCallAccess().getArgsArgListParserRuleCall_3_0());
+ }
+ lv_args_3_0=ruleArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFunctionCallRule());
+ }
+ set(
+ $current,
+ "args",
+ lv_args_3_0,
+ "ArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_CALL_END_4=RULE_CALL_END
+ {
+ newLeafNode(this_CALL_END_4, grammarAccess.getFunctionCallAccess().getCALL_ENDTerminalRuleCall_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePropertyAccess
+entryRulePropertyAccess returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyAccessRule()); }
+ iv_rulePropertyAccess=rulePropertyAccess
+ { $current=$iv_rulePropertyAccess.current; }
+ EOF
+;
+
+// Rule PropertyAccess
+rulePropertyAccess returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccessAccess().getNamedPropertyAccessParserRuleCall_0());
+ }
+ this_NamedPropertyAccess_0=ruleNamedPropertyAccess
+ {
+ $current = $this_NamedPropertyAccess_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPropertyAccessAccess().getIndexedPropertyAccessParserRuleCall_1());
+ }
+ this_IndexedPropertyAccess_1=ruleIndexedPropertyAccess
+ {
+ $current = $this_IndexedPropertyAccess_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleThisProperty
+entryRuleThisProperty returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getThisPropertyRule()); }
+ iv_ruleThisProperty=ruleThisProperty
+ { $current=$iv_ruleThisProperty.current; }
+ EOF
+;
+
+// Rule ThisProperty
+ruleThisProperty returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_AT_SIGIL_0=RULE_AT_SIGIL
+ {
+ newLeafNode(this_AT_SIGIL_0, grammarAccess.getThisPropertyAccess().getAT_SIGILTerminalRuleCall_0());
+ }
+
+ {
+ newCompositeNode(grammarAccess.getThisPropertyAccess().getIdParserRuleCall_1());
+ }
+ this_Id_1=ruleId
+ {
+ $current = $this_Id_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNamedPropertyAccess
+entryRuleNamedPropertyAccess returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNamedPropertyAccessRule()); }
+ iv_ruleNamedPropertyAccess=ruleNamedPropertyAccess
+ { $current=$iv_ruleNamedPropertyAccess.current; }
+ EOF
+;
+
+// Rule NamedPropertyAccess
+ruleNamedPropertyAccess returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+(
+ lv_accessor_0_1=RULE_DOT
+ {
+ newLeafNode(lv_accessor_0_1, grammarAccess.getNamedPropertyAccessAccess().getAccessorDOTTerminalRuleCall_0_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedPropertyAccessRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_0_1,
+ "DOT");
+ }
+
+ | lv_accessor_0_2=RULE_QUESTION_DOT
+ {
+ newLeafNode(lv_accessor_0_2, grammarAccess.getNamedPropertyAccessAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedPropertyAccessRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_0_2,
+ "QUESTION_DOT");
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_0_1_0());
+ }
+ lv_name_1_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNamedPropertyAccessRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((
+(
+ lv_accessor_2_0=RULE_DOUBLE_COLON
+ {
+ newLeafNode(lv_accessor_2_0, grammarAccess.getNamedPropertyAccessAccess().getAccessorDOUBLE_COLONTerminalRuleCall_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getNamedPropertyAccessRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_2_0,
+ "DOUBLE_COLON");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getNamedPropertyAccessAccess().getNameIdParserRuleCall_1_1_0());
+ }
+ lv_name_3_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getNamedPropertyAccessRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_3_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleIndexedPropertyAccess
+entryRuleIndexedPropertyAccess returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIndexedPropertyAccessRule()); }
+ iv_ruleIndexedPropertyAccess=ruleIndexedPropertyAccess
+ { $current=$iv_ruleIndexedPropertyAccess.current; }
+ EOF
+;
+
+// Rule IndexedPropertyAccess
+ruleIndexedPropertyAccess returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_INDEX_START_0=RULE_INDEX_START
+ {
+ newLeafNode(this_INDEX_START_0, grammarAccess.getIndexedPropertyAccessAccess().getINDEX_STARTTerminalRuleCall_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexedPropertyAccessAccess().getIndexIndexParserRuleCall_1_0());
+ }
+ lv_index_1_0=ruleIndex {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexedPropertyAccessRule());
+ }
+ set(
+ $current,
+ "index",
+ lv_index_1_0,
+ "Index");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_INDEX_END_2=RULE_INDEX_END
+ {
+ newLeafNode(this_INDEX_END_2, grammarAccess.getIndexedPropertyAccessAccess().getINDEX_ENDTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleIndex
+entryRuleIndex returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIndexRule()); }
+ iv_ruleIndex=ruleIndex
+ { $current=$iv_ruleIndex.current; }
+ EOF
+;
+
+// Rule Index
+ruleIndex returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((
+(
+(
+RULE_DOT_DOT
+
+ | RULE_ELLIPSIS
+
+)
+
+)
+)=>
+(
+(
+ lv_dots_0_1=RULE_DOT_DOT
+ {
+ newLeafNode(lv_dots_0_1, grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_0_0_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_0_1,
+ "DOT_DOT");
+ }
+
+ | lv_dots_0_2=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_dots_0_2, grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_0_0_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_0_2,
+ "ELLIPSIS");
+ }
+
+)
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_0_1_0());
+ }
+ lv_end_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "end",
+ lv_end_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((((
+(
+ruleExpression
+)
+)(
+(
+(
+RULE_DOT_DOT
+
+ | RULE_ELLIPSIS
+
+)
+
+)
+)))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getStartExpressionParserRuleCall_1_0_0_0_0());
+ }
+ lv_start_2_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "start",
+ lv_start_2_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+(
+ lv_dots_3_1=RULE_DOT_DOT
+ {
+ newLeafNode(lv_dots_3_1, grammarAccess.getIndexAccess().getDotsDOT_DOTTerminalRuleCall_1_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_3_1,
+ "DOT_DOT");
+ }
+
+ | lv_dots_3_2=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_dots_3_2, grammarAccess.getIndexAccess().getDotsELLIPSISTerminalRuleCall_1_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIndexRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "dots",
+ lv_dots_3_2,
+ "ELLIPSIS");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getEndExpressionParserRuleCall_1_1_0());
+ }
+ lv_end_4_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "end",
+ lv_end_4_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getIndexAccess().getExpExpressionParserRuleCall_2_0());
+ }
+ lv_exp_5_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIndexRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRulePrimaryExpression
+entryRulePrimaryExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPrimaryExpressionRule()); }
+ iv_rulePrimaryExpression=rulePrimaryExpression
+ { $current=$iv_rulePrimaryExpression.current; }
+ EOF
+;
+
+// Rule PrimaryExpression
+rulePrimaryExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getIfExpParserRuleCall_0());
+ }
+ this_IfExp_0=ruleIfExp
+ {
+ $current = $this_IfExp_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getParentheticalParserRuleCall_1());
+ }
+ this_Parenthetical_1=ruleParenthetical
+ {
+ $current = $this_Parenthetical_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLiteralParserRuleCall_2());
+ }
+ this_Literal_2=ruleLiteral
+ {
+ $current = $this_Literal_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((( RULE_LBRACKET(
+(
+ruleExpression
+)
+)( RULE_DOT_DOT
+ | RULE_ELLIPSIS)))=>
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getRangeParserRuleCall_3());
+ }
+ this_Range_3=ruleRange
+ {
+ $current = $this_Range_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LBRACKET)=>
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getArrayParserRuleCall_4());
+ }
+ this_Array_4=ruleArray
+ {
+ $current = $this_Array_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LCURLY)=>
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getDictionaryParserRuleCall_5());
+ }
+ this_Dictionary_5=ruleDictionary
+ {
+ $current = $this_Dictionary_5.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLambdaParserRuleCall_6());
+ }
+ this_Lambda_6=ruleLambda
+ {
+ $current = $this_Lambda_6.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getThisPropertyParserRuleCall_7());
+ }
+ this_ThisProperty_7=ruleThisProperty
+ {
+ $current = $this_ThisProperty_7.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getThisAloneAction_8_0(),
+ $current);
+ }
+)this_THIS_9=RULE_THIS
+ {
+ newLeafNode(this_THIS_9, grammarAccess.getPrimaryExpressionAccess().getTHISTerminalRuleCall_8_1());
+ }
+)
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getForAction_9_0(),
+ $current);
+ }
+)(this_FOR_11=RULE_FOR
+ {
+ newLeafNode(this_FOR_11, grammarAccess.getPrimaryExpressionAccess().getFORTerminalRuleCall_9_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLoopForBodyParserRuleCall_9_1_1_0());
+ }
+ lv_loop_12_0=ruleForBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "loop",
+ lv_loop_12_0,
+ "ForBody");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_9_1_2_0());
+ }
+ lv_body_13_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_13_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getWhileAction_10_0(),
+ $current);
+ }
+)(this_WHILE_15=RULE_WHILE
+ {
+ newLeafNode(this_WHILE_15, grammarAccess.getPrimaryExpressionAccess().getWHILETerminalRuleCall_10_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_10_1_1_0());
+ }
+ lv_loop_16_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "loop",
+ lv_loop_16_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_WHEN_17=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_17, grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_10_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_10_1_2_1_0());
+ }
+ lv_when_18_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_18_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_10_1_3_0());
+ }
+ lv_body_19_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_19_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getUntilAction_11_0(),
+ $current);
+ }
+)(this_UNTIL_21=RULE_UNTIL
+ {
+ newLeafNode(this_UNTIL_21, grammarAccess.getPrimaryExpressionAccess().getUNTILTerminalRuleCall_11_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getLoopExpressionParserRuleCall_11_1_1_0());
+ }
+ lv_loop_22_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "loop",
+ lv_loop_22_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_WHEN_23=RULE_WHEN
+ {
+ newLeafNode(this_WHEN_23, grammarAccess.getPrimaryExpressionAccess().getWHENTerminalRuleCall_11_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getWhenExpressionParserRuleCall_11_1_2_1_0());
+ }
+ lv_when_24_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "when",
+ lv_when_24_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_11_1_3_0());
+ }
+ lv_body_25_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_25_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getLoopAction_12_0(),
+ $current);
+ }
+)(this_LOOP_27=RULE_LOOP
+ {
+ newLeafNode(this_LOOP_27, grammarAccess.getPrimaryExpressionAccess().getLOOPTerminalRuleCall_12_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_12_1_1_0());
+ }
+ lv_body_28_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_28_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getTryCatchAction_13_0(),
+ $current);
+ }
+)(this_TRY_30=RULE_TRY
+ {
+ newLeafNode(this_TRY_30, grammarAccess.getPrimaryExpressionAccess().getTRYTerminalRuleCall_13_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getBodyBlockParserRuleCall_13_1_1_0());
+ }
+ lv_body_31_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_31_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((this_CATCH_32=RULE_CATCH
+ {
+ newLeafNode(this_CATCH_32, grammarAccess.getPrimaryExpressionAccess().getCATCHTerminalRuleCall_13_1_2_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExceptionIdParserRuleCall_13_1_2_0_1_0());
+ }
+ lv_exception_33_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "exception",
+ lv_exception_33_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getCatchBlockBlockParserRuleCall_13_1_2_0_2_0());
+ }
+ lv_catchBlock_34_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "catchBlock",
+ lv_catchBlock_34_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_FINALLY_35=RULE_FINALLY
+ {
+ newLeafNode(this_FINALLY_35, grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_0_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_0_3_1_0());
+ }
+ lv_finallyBlock_36_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "finallyBlock",
+ lv_finallyBlock_36_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |(this_FINALLY_37=RULE_FINALLY
+ {
+ newLeafNode(this_FINALLY_37, grammarAccess.getPrimaryExpressionAccess().getFINALLYTerminalRuleCall_13_1_2_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getFinallyBlockBlockParserRuleCall_13_1_2_1_1_0());
+ }
+ lv_finallyBlock_38_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "finallyBlock",
+ lv_finallyBlock_38_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?))
+ |((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPrimaryExpressionAccess().getSwitchAction_14_0(),
+ $current);
+ }
+)(this_SWITCH_40=RULE_SWITCH
+ {
+ newLeafNode(this_SWITCH_40, grammarAccess.getPrimaryExpressionAccess().getSWITCHTerminalRuleCall_14_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getExpExpressionParserRuleCall_14_1_1_0());
+ }
+ lv_exp_41_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_41_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?this_INDENT_42=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_42, grammarAccess.getPrimaryExpressionAccess().getINDENTTerminalRuleCall_14_1_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getCasesCaseParserRuleCall_14_1_3_0());
+ }
+ lv_cases_43_0=ruleCase {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ add(
+ $current,
+ "cases",
+ lv_cases_43_0,
+ "Case");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(this_ELSE_44=RULE_ELSE
+ {
+ newLeafNode(this_ELSE_44, grammarAccess.getPrimaryExpressionAccess().getELSETerminalRuleCall_14_1_4_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getElseBlockBlockParserRuleCall_14_1_4_1_0());
+ }
+ lv_elseBlock_45_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPrimaryExpressionRule());
+ }
+ set(
+ $current,
+ "elseBlock",
+ lv_elseBlock_45_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?this_OUTDENT_46=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_46, grammarAccess.getPrimaryExpressionAccess().getOUTDENTTerminalRuleCall_14_1_5());
+ }
+))
+ |
+ {
+ newCompositeNode(grammarAccess.getPrimaryExpressionAccess().getIdRefParserRuleCall_15());
+ }
+ this_IdRef_47=ruleIdRef
+ {
+ $current = $this_IdRef_47.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBlock
+entryRuleBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBlockRule()); }
+ iv_ruleBlock=ruleBlock
+ { $current=$iv_ruleBlock.current; }
+ EOF
+;
+
+// Rule Block
+ruleBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getBlockAccess().getBlockAction_0(),
+ $current);
+ }
+)this_INDENT_1=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_1, grammarAccess.getBlockAccess().getINDENTTerminalRuleCall_1());
+ }
+(
+ {
+ newCompositeNode(grammarAccess.getBlockAccess().getBodyParserRuleCall_2());
+ }
+ this_Body_2=ruleBody
+ {
+ $current = $this_Body_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)?this_OUTDENT_3=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_3, grammarAccess.getBlockAccess().getOUTDENTTerminalRuleCall_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCase
+entryRuleCase returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCaseRule()); }
+ iv_ruleCase=ruleCase
+ { $current=$iv_ruleCase.current; }
+ EOF
+;
+
+// Rule Case
+ruleCase returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(this_LEADING_WHEN_0=RULE_LEADING_WHEN
+ {
+ newLeafNode(this_LEADING_WHEN_0, grammarAccess.getCaseAccess().getLEADING_WHENTerminalRuleCall_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_1_0());
+ }
+ lv_whens_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCaseRule());
+ }
+ add(
+ $current,
+ "whens",
+ lv_whens_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_2=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_2, grammarAccess.getCaseAccess().getCOMMATerminalRuleCall_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getCaseAccess().getWhensExpressionParserRuleCall_2_1_0());
+ }
+ lv_whens_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCaseRule());
+ }
+ add(
+ $current,
+ "whens",
+ lv_whens_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(
+(
+ {
+ newCompositeNode(grammarAccess.getCaseAccess().getThenBlockParserRuleCall_3_0());
+ }
+ lv_then_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCaseRule());
+ }
+ set(
+ $current,
+ "then",
+ lv_then_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_TERMINATOR_5=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_5, grammarAccess.getCaseAccess().getTERMINATORTerminalRuleCall_4());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleIfExp
+entryRuleIfExp returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIfExpRule()); }
+ iv_ruleIfExp=ruleIfExp
+ { $current=$iv_ruleIfExp.current; }
+ EOF
+;
+
+// Rule IfExp
+ruleIfExp returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_0_0());
+ }
+ lv_blocks_0_0=ruleCondBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfExpRule());
+ }
+ add(
+ $current,
+ "blocks",
+ lv_blocks_0_0,
+ "CondBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_ELSE_1=RULE_ELSE
+ {
+ newLeafNode(this_ELSE_1, grammarAccess.getIfExpAccess().getELSETerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIfExpAccess().getBlocksCondBlockParserRuleCall_1_1_0());
+ }
+ lv_blocks_2_0=ruleCondBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfExpRule());
+ }
+ add(
+ $current,
+ "blocks",
+ lv_blocks_2_0,
+ "CondBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(this_ELSE_3=RULE_ELSE
+ {
+ newLeafNode(this_ELSE_3, grammarAccess.getIfExpAccess().getELSETerminalRuleCall_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getIfExpAccess().getDefaultBlockBlockParserRuleCall_2_1_0());
+ }
+ lv_defaultBlock_4_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getIfExpRule());
+ }
+ set(
+ $current,
+ "defaultBlock",
+ lv_defaultBlock_4_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleCondBlock
+entryRuleCondBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCondBlockRule()); }
+ iv_ruleCondBlock=ruleCondBlock
+ { $current=$iv_ruleCondBlock.current; }
+ EOF
+;
+
+// Rule CondBlock
+ruleCondBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_operator_0_0=RULE_IF
+ {
+ newLeafNode(lv_operator_0_0, grammarAccess.getCondBlockAccess().getOperatorIFTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCondBlockRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "operator",
+ lv_operator_0_0,
+ "IF");
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getCondBlockAccess().getConditionExpressionParserRuleCall_1_0());
+ }
+ lv_condition_1_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCondBlockRule());
+ }
+ set(
+ $current,
+ "condition",
+ lv_condition_1_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getCondBlockAccess().getActionBlockParserRuleCall_2_0());
+ }
+ lv_action_2_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getCondBlockRule());
+ }
+ set(
+ $current,
+ "action",
+ lv_action_2_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleIdRef
+entryRuleIdRef returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIdRefRule()); }
+ iv_ruleIdRef=ruleIdRef
+ { $current=$iv_ruleIdRef.current; }
+ EOF
+;
+
+// Rule IdRef
+ruleIdRef returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIdRefRule());
+ }
+ }
+ otherlv_0=RULE_IDENTIFIER
+ {
+ newLeafNode(otherlv_0, grammarAccess.getIdRefAccess().getValIdCrossReference_0());
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleId
+entryRuleId returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getIdRule()); }
+ iv_ruleId=ruleId
+ { $current=$iv_ruleId.current; }
+ EOF
+;
+
+// Rule Id
+ruleId returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ lv_name_0_0=RULE_IDENTIFIER
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getIdAccess().getNameIDENTIFIERTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIdRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "IDENTIFIER");
+ }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleProperty
+entryRuleProperty returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyRule()); }
+ iv_ruleProperty=ruleProperty
+ { $current=$iv_ruleProperty.current; }
+ EOF
+;
+
+// Rule Property
+ruleProperty returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((( ruleIdRef(
+(
+(
+RULE_DOT
+
+ | RULE_DOUBLE_COLON
+
+ | RULE_QUESTION_DOT
+
+)
+
+)
+)))=>(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getIdRefParserRuleCall_0_0_0_0());
+ }
+ this_IdRef_0=ruleIdRef
+ {
+ $current = $this_IdRef_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(
+(
+(
+ lv_accessor_1_1=RULE_DOT
+ {
+ newLeafNode(lv_accessor_1_1, grammarAccess.getPropertyAccess().getAccessorDOTTerminalRuleCall_0_0_0_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_1_1,
+ "DOT");
+ }
+
+ | lv_accessor_1_2=RULE_DOUBLE_COLON
+ {
+ newLeafNode(lv_accessor_1_2, grammarAccess.getPropertyAccess().getAccessorDOUBLE_COLONTerminalRuleCall_0_0_0_1_0_1());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_1_2,
+ "DOUBLE_COLON");
+ }
+
+ | lv_accessor_1_3=RULE_QUESTION_DOT
+ {
+ newLeafNode(lv_accessor_1_3, grammarAccess.getPropertyAccess().getAccessorQUESTION_DOTTerminalRuleCall_0_0_0_1_0_2());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "accessor",
+ lv_accessor_1_3,
+ "QUESTION_DOT");
+ }
+
+)
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getPropIdParserRuleCall_0_1_0());
+ }
+ lv_prop_2_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyRule());
+ }
+ set(
+ $current,
+ "prop",
+ lv_prop_2_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((( ruleIdRef RULE_INDEX_START))=>(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getIdRefParserRuleCall_1_0_0_0());
+ }
+ this_IdRef_3=ruleIdRef
+ {
+ $current = $this_IdRef_3.current;
+ afterParserOrEnumRuleCall();
+ }
+this_INDEX_START_4=RULE_INDEX_START
+ {
+ newLeafNode(this_INDEX_START_4, grammarAccess.getPropertyAccess().getINDEX_STARTTerminalRuleCall_1_0_0_1());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyAccess().getIndexIndexParserRuleCall_1_1_0());
+ }
+ lv_index_5_0=ruleIndex {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyRule());
+ }
+ set(
+ $current,
+ "index",
+ lv_index_5_0,
+ "Index");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_INDEX_END_6=RULE_INDEX_END
+ {
+ newLeafNode(this_INDEX_END_6, grammarAccess.getPropertyAccess().getINDEX_ENDTerminalRuleCall_1_2());
+ }
+))
+;
+
+
+
+
+
+// Entry rule entryRuleVariable
+entryRuleVariable returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getVariableRule()); }
+ iv_ruleVariable=ruleVariable
+ { $current=$iv_ruleVariable.current; }
+ EOF
+;
+
+// Rule Variable
+ruleVariable returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getIdParserRuleCall_0());
+ }
+ this_Id_0=ruleId
+ {
+ $current = $this_Id_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((this_AT_SIGIL_1=RULE_AT_SIGIL
+ {
+ newLeafNode(this_AT_SIGIL_1, grammarAccess.getVariableAccess().getAT_SIGILTerminalRuleCall_1_0_0());
+ }
+
+ |(this_THIS_2=RULE_THIS
+ {
+ newLeafNode(this_THIS_2, grammarAccess.getVariableAccess().getTHISTerminalRuleCall_1_0_1_0());
+ }
+this_DOT_3=RULE_DOT
+ {
+ newLeafNode(this_DOT_3, grammarAccess.getVariableAccess().getDOTTerminalRuleCall_1_0_1_1());
+ }
+))
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getIdParserRuleCall_1_1());
+ }
+ this_Id_4=ruleId
+ {
+ $current = $this_Id_4.current;
+ afterParserOrEnumRuleCall();
+ }
+(this_DOT_5=RULE_DOT
+ {
+ newLeafNode(this_DOT_5, grammarAccess.getVariableAccess().getDOTTerminalRuleCall_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getPropsIdParserRuleCall_1_2_1_0());
+ }
+ lv_props_6_0=ruleId {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getVariableRule());
+ }
+ add(
+ $current,
+ "props",
+ lv_props_6_0,
+ "Id");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+ |
+ {
+ newCompositeNode(grammarAccess.getVariableAccess().getPropertyParserRuleCall_2());
+ }
+ this_Property_7=ruleProperty
+ {
+ $current = $this_Property_7.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignableArray
+entryRuleAssignableArray returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableArrayRule()); }
+ iv_ruleAssignableArray=ruleAssignableArray
+ { $current=$iv_ruleAssignableArray.current; }
+ EOF
+;
+
+// Rule AssignableArray
+ruleAssignableArray returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( RULE_LBRACKET)=>this_LBRACKET_0=RULE_LBRACKET
+ {
+ newLeafNode(this_LBRACKET_0, grammarAccess.getAssignableArrayAccess().getLBRACKETTerminalRuleCall_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getAssignableArrayAccess().getAssignableArgListParserRuleCall_1());
+ }
+ this_AssignableArgList_1=ruleAssignableArgList
+ {
+ $current = $this_AssignableArgList_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_RBRACKET_2=RULE_RBRACKET
+ {
+ newLeafNode(this_RBRACKET_2, grammarAccess.getAssignableArrayAccess().getRBRACKETTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignableArgList
+entryRuleAssignableArgList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableArgListRule()); }
+ iv_ruleAssignableArgList=ruleAssignableArgList
+ { $current=$iv_ruleAssignableArgList.current; }
+ EOF
+;
+
+// Rule AssignableArgList
+ruleAssignableArgList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_0_0());
+ }
+ lv_args_0_0=ruleAssignableArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignableArgListRule());
+ }
+ add(
+ $current,
+ "args",
+ lv_args_0_0,
+ "AssignableArg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_1=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_1, grammarAccess.getAssignableArgListAccess().getCOMMATerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableArgListAccess().getArgsAssignableArgParserRuleCall_1_1_0());
+ }
+ lv_args_2_0=ruleAssignableArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignableArgListRule());
+ }
+ add(
+ $current,
+ "args",
+ lv_args_2_0,
+ "AssignableArg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignableArg
+entryRuleAssignableArg returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableArgRule()); }
+ iv_ruleAssignableArg=ruleAssignableArg
+ { $current=$iv_ruleAssignableArg.current; }
+ EOF
+;
+
+// Rule AssignableArg
+ruleAssignableArg returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableArgAccess().getArgAssignableParserRuleCall_0_0());
+ }
+ lv_arg_0_0=ruleAssignable {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getAssignableArgRule());
+ }
+ set(
+ $current,
+ "arg",
+ lv_arg_0_0,
+ "Assignable");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_splat_1_0=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_splat_1_0, grammarAccess.getAssignableArgAccess().getSplatELLIPSISTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getAssignableArgRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "splat",
+ true,
+ "ELLIPSIS");
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleAssignable
+entryRuleAssignable returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getAssignableRule()); }
+ iv_ruleAssignable=ruleAssignable
+ { $current=$iv_ruleAssignable.current; }
+ EOF
+;
+
+// Rule Assignable
+ruleAssignable returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getAssignableAccess().getVariableParserRuleCall_0());
+ }
+ this_Variable_0=ruleVariable
+ {
+ $current = $this_Variable_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(( RULE_LCURLY)=>
+ {
+ newCompositeNode(grammarAccess.getAssignableAccess().getDictionaryParserRuleCall_1());
+ }
+ this_Dictionary_1=ruleDictionary
+ {
+ $current = $this_Dictionary_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LBRACKET)=>
+ {
+ newCompositeNode(grammarAccess.getAssignableAccess().getAssignableArrayParserRuleCall_2());
+ }
+ this_AssignableArray_2=ruleAssignableArray
+ {
+ $current = $this_AssignableArray_2.current;
+ afterParserOrEnumRuleCall();
+ }
+))
+;
+
+
+
+
+
+// Entry rule entryRuleArg
+entryRuleArg returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArgRule()); }
+ iv_ruleArg=ruleArg
+ { $current=$iv_ruleArg.current; }
+ EOF
+;
+
+// Rule Arg
+ruleArg returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getArgAccess().getExpExpressionParserRuleCall_0_0());
+ }
+ lv_exp_0_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgRule());
+ }
+ set(
+ $current,
+ "exp",
+ lv_exp_0_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_splat_1_0=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_splat_1_0, grammarAccess.getArgAccess().getSplatELLIPSISTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getArgRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "splat",
+ true,
+ "ELLIPSIS");
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleArgLine
+entryRuleArgLine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArgLineRule()); }
+ iv_ruleArgLine=ruleArgLine
+ { $current=$iv_ruleArgLine.current; }
+ EOF
+;
+
+// Rule ArgLine
+ruleArgLine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getArgLineAccess().getHeadArgParserRuleCall_0_0());
+ }
+ lv_head_0_0=ruleArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgLineRule());
+ }
+ set(
+ $current,
+ "head",
+ lv_head_0_0,
+ "Arg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_1=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_1, grammarAccess.getArgLineAccess().getCOMMATerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getArgLineAccess().getTailArgParserRuleCall_1_1_0());
+ }
+ lv_tail_2_0=ruleArg {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgLineRule());
+ }
+ add(
+ $current,
+ "tail",
+ lv_tail_2_0,
+ "Arg");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(this_COMMA_3=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_3, grammarAccess.getArgLineAccess().getCOMMATerminalRuleCall_2());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleExplicitArgList
+entryRuleExplicitArgList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExplicitArgListRule()); }
+ iv_ruleExplicitArgList=ruleExplicitArgList
+ { $current=$iv_ruleExplicitArgList.current; }
+ EOF
+;
+
+// Rule ExplicitArgList
+ruleExplicitArgList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_0_0());
+ }
+ lv_lines_0_0=ruleArgLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitArgListRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_0_0,
+ "ArgLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((this_TERMINATOR_1=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_1, grammarAccess.getExplicitArgListAccess().getTERMINATORTerminalRuleCall_1_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_0_1_0());
+ }
+ lv_lines_2_0=ruleArgLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitArgListRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_2_0,
+ "ArgLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(this_INDENT_3=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_3, grammarAccess.getExplicitArgListAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitArgListAccess().getLinesArgLineParserRuleCall_1_1_1_0());
+ }
+ lv_lines_4_0=ruleArgLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitArgListRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_4_0,
+ "ArgLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_5=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_5, grammarAccess.getExplicitArgListAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleArgList
+entryRuleArgList returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArgListRule()); }
+ iv_ruleArgList=ruleArgList
+ { $current=$iv_ruleArgList.current; }
+ EOF
+;
+
+// Rule ArgList
+ruleArgList returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getArgListAccess().getArgListAction_0(),
+ $current);
+ }
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_0_0());
+ }
+ lv_dummy_1_0=ruleExplicitArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgListRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_1_0,
+ "ExplicitArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_INDENT_2=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_2, grammarAccess.getArgListAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getArgListAccess().getDummyExplicitArgListParserRuleCall_1_1_1_0());
+ }
+ lv_dummy_3_0=ruleExplicitArgList {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getArgListRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_3_0,
+ "ExplicitArgList");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_4=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_4, grammarAccess.getArgListAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleArray
+entryRuleArray returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getArrayRule()); }
+ iv_ruleArray=ruleArray
+ { $current=$iv_ruleArray.current; }
+ EOF
+;
+
+// Rule Array
+ruleArray returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( RULE_LBRACKET)=>this_LBRACKET_0=RULE_LBRACKET
+ {
+ newLeafNode(this_LBRACKET_0, grammarAccess.getArrayAccess().getLBRACKETTerminalRuleCall_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getArrayAccess().getArgListParserRuleCall_1());
+ }
+ this_ArgList_1=ruleArgList
+ {
+ $current = $this_ArgList_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_RBRACKET_2=RULE_RBRACKET
+ {
+ newLeafNode(this_RBRACKET_2, grammarAccess.getArrayAccess().getRBRACKETTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDictionary
+entryRuleDictionary returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictionaryRule()); }
+ iv_ruleDictionary=ruleDictionary
+ { $current=$iv_ruleDictionary.current; }
+ EOF
+;
+
+// Rule Dictionary
+ruleDictionary returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( RULE_LCURLY)=>this_LCURLY_0=RULE_LCURLY
+ {
+ newLeafNode(this_LCURLY_0, grammarAccess.getDictionaryAccess().getLCURLYTerminalRuleCall_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getDictionaryAccess().getDictItemsParserRuleCall_1());
+ }
+ this_DictItems_1=ruleDictItems
+ {
+ $current = $this_DictItems_1.current;
+ afterParserOrEnumRuleCall();
+ }
+this_RCURLY_2=RULE_RCURLY
+ {
+ newLeafNode(this_RCURLY_2, grammarAccess.getDictionaryAccess().getRCURLYTerminalRuleCall_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDictItems
+entryRuleDictItems returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictItemsRule()); }
+ iv_ruleDictItems=ruleDictItems
+ { $current=$iv_ruleDictItems.current; }
+ EOF
+;
+
+// Rule DictItems
+ruleDictItems returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getDictItemsAccess().getDictItemsAction_0(),
+ $current);
+ }
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_0_0());
+ }
+ lv_dummy_1_0=ruleExplicitDictItems {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemsRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_1_0,
+ "ExplicitDictItems");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_INDENT_2=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_2, grammarAccess.getDictItemsAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemsAccess().getDummyExplicitDictItemsParserRuleCall_1_1_1_0());
+ }
+ lv_dummy_3_0=ruleExplicitDictItems {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemsRule());
+ }
+ set(
+ $current,
+ "dummy",
+ lv_dummy_3_0,
+ "ExplicitDictItems");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_4=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_4, grammarAccess.getDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleExplicitDictItems
+entryRuleExplicitDictItems returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExplicitDictItemsRule()); }
+ iv_ruleExplicitDictItems=ruleExplicitDictItems
+ { $current=$iv_ruleExplicitDictItems.current; }
+ EOF
+;
+
+// Rule ExplicitDictItems
+ruleExplicitDictItems returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_0_0());
+ }
+ lv_lines_0_0=ruleDictLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitDictItemsRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_0_0,
+ "DictLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((this_TERMINATOR_1=RULE_TERMINATOR
+ {
+ newLeafNode(this_TERMINATOR_1, grammarAccess.getExplicitDictItemsAccess().getTERMINATORTerminalRuleCall_1_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_0_1_0());
+ }
+ lv_lines_2_0=ruleDictLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitDictItemsRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_2_0,
+ "DictLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(this_INDENT_3=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_3, grammarAccess.getExplicitDictItemsAccess().getINDENTTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExplicitDictItemsAccess().getLinesDictLineParserRuleCall_1_1_1_0());
+ }
+ lv_lines_4_0=ruleDictLine {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExplicitDictItemsRule());
+ }
+ add(
+ $current,
+ "lines",
+ lv_lines_4_0,
+ "DictLine");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_5=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_5, grammarAccess.getExplicitDictItemsAccess().getOUTDENTTerminalRuleCall_1_1_2());
+ }
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleDictLine
+entryRuleDictLine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictLineRule()); }
+ iv_ruleDictLine=ruleDictLine
+ { $current=$iv_ruleDictLine.current; }
+ EOF
+;
+
+// Rule DictLine
+ruleDictLine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getDictLineAccess().getHeadDictItemParserRuleCall_0_0());
+ }
+ lv_head_0_0=ruleDictItem {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictLineRule());
+ }
+ set(
+ $current,
+ "head",
+ lv_head_0_0,
+ "DictItem");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_1=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_1, grammarAccess.getDictLineAccess().getCOMMATerminalRuleCall_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDictLineAccess().getTailDictItemParserRuleCall_1_1_0());
+ }
+ lv_tail_2_0=ruleDictItem {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictLineRule());
+ }
+ add(
+ $current,
+ "tail",
+ lv_tail_2_0,
+ "DictItem");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*(this_COMMA_3=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_3, grammarAccess.getDictLineAccess().getCOMMATerminalRuleCall_2());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleDictItem
+entryRuleDictItem returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictItemRule()); }
+ iv_ruleDictItem=ruleDictItem
+ { $current=$iv_ruleDictItem.current; }
+ EOF
+;
+
+// Rule DictItem
+ruleDictItem returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getDictItemAccess().getDictItemAction_0(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemAccess().getKeyDictKeyParserRuleCall_1_0());
+ }
+ lv_key_1_0=ruleDictKey {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemRule());
+ }
+ set(
+ $current,
+ "key",
+ lv_key_1_0,
+ "DictKey");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COLON_2=RULE_COLON
+ {
+ newLeafNode(this_COLON_2, grammarAccess.getDictItemAccess().getCOLONTerminalRuleCall_2_0());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_0_0());
+ }
+ lv_value_3_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_3_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(this_INDENT_4=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_4, grammarAccess.getDictItemAccess().getINDENTTerminalRuleCall_2_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDictItemAccess().getValueExpressionParserRuleCall_2_1_1_1_0());
+ }
+ lv_value_5_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDictItemRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_5_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_6=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_6, grammarAccess.getDictItemAccess().getOUTDENTTerminalRuleCall_2_1_1_2());
+ }
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleDictKey
+entryRuleDictKey returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDictKeyRule()); }
+ iv_ruleDictKey=ruleDictKey
+ { $current=$iv_ruleDictKey.current; }
+ EOF
+;
+
+// Rule DictKey
+ruleDictKey returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getDictKeyAccess().getLiteralParserRuleCall_0());
+ }
+ this_Literal_0=ruleLiteral
+ {
+ $current = $this_Literal_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getDictKeyAccess().getIdParserRuleCall_1());
+ }
+ this_Id_1=ruleId
+ {
+ $current = $this_Id_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLambda
+entryRuleLambda returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLambdaRule()); }
+ iv_ruleLambda=ruleLambda
+ { $current=$iv_ruleLambda.current; }
+ EOF
+;
+
+// Rule Lambda
+ruleLambda returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((this_PARAM_START_0=RULE_PARAM_START
+ {
+ newLeafNode(this_PARAM_START_0, grammarAccess.getLambdaAccess().getPARAM_STARTTerminalRuleCall_0_0());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_0_0());
+ }
+ lv_params_1_0=ruleParam {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaRule());
+ }
+ add(
+ $current,
+ "params",
+ lv_params_1_0,
+ "Param");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(this_COMMA_2=RULE_COMMA
+ {
+ newLeafNode(this_COMMA_2, grammarAccess.getLambdaAccess().getCOMMATerminalRuleCall_0_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLambdaAccess().getParamsParamParserRuleCall_0_1_1_1_0());
+ }
+ lv_params_3_0=ruleParam {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaRule());
+ }
+ add(
+ $current,
+ "params",
+ lv_params_3_0,
+ "Param");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)?this_PARAM_END_4=RULE_PARAM_END
+ {
+ newLeafNode(this_PARAM_END_4, grammarAccess.getLambdaAccess().getPARAM_ENDTerminalRuleCall_0_2());
+ }
+)?(this_FUNC_ARROW_5=RULE_FUNC_ARROW
+ {
+ newLeafNode(this_FUNC_ARROW_5, grammarAccess.getLambdaAccess().getFUNC_ARROWTerminalRuleCall_1_0());
+ }
+
+ |this_BOUND_FUNC_ARROW_6=RULE_BOUND_FUNC_ARROW
+ {
+ newLeafNode(this_BOUND_FUNC_ARROW_6, grammarAccess.getLambdaAccess().getBOUND_FUNC_ARROWTerminalRuleCall_1_1());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getLambdaAccess().getBodyBlockParserRuleCall_2_0());
+ }
+ lv_body_7_0=ruleBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLambdaRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_7_0,
+ "Block");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleParam
+entryRuleParam returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getParamRule()); }
+ iv_ruleParam=ruleParam
+ { $current=$iv_ruleParam.current; }
+ EOF
+;
+
+// Rule Param
+ruleParam returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getIdParserRuleCall_0_0());
+ }
+ this_Id_0=ruleId
+ {
+ $current = $this_Id_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |(( RULE_LBRACKET)=>
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getArrayParserRuleCall_0_1());
+ }
+ this_Array_1=ruleArray
+ {
+ $current = $this_Array_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |(( RULE_LCURLY)=>
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getDictionaryParserRuleCall_0_2());
+ }
+ this_Dictionary_2=ruleDictionary
+ {
+ $current = $this_Dictionary_2.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getThisPropertyParserRuleCall_0_3());
+ }
+ this_ThisProperty_3=ruleThisProperty
+ {
+ $current = $this_ThisProperty_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)((
+(
+ lv_splat_4_0=RULE_ELLIPSIS
+ {
+ newLeafNode(lv_splat_4_0, grammarAccess.getParamAccess().getSplatELLIPSISTerminalRuleCall_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getParamRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "splat",
+ true,
+ "ELLIPSIS");
+ }
+
+)
+)
+ |(this_EQUAL_5=RULE_EQUAL
+ {
+ newLeafNode(this_EQUAL_5, grammarAccess.getParamAccess().getEQUALTerminalRuleCall_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getParamAccess().getDefaultValueExpressionParserRuleCall_1_1_1_0());
+ }
+ lv_defaultValue_6_0=ruleExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParamRule());
+ }
+ set(
+ $current,
+ "defaultValue",
+ lv_defaultValue_6_0,
+ "Expression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleNumberLiteral
+entryRuleNumberLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getNumberLiteralRule()); }
+ iv_ruleNumberLiteral=ruleNumberLiteral
+ { $current=$iv_ruleNumberLiteral.current; }
+ EOF
+;
+
+// Rule NumberLiteral
+ruleNumberLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getNumberLiteralAccess().getNumberLiteralAction_0(),
+ $current);
+ }
+)this_NUMBER_1=RULE_NUMBER
+ {
+ newLeafNode(this_NUMBER_1, grammarAccess.getNumberLiteralAccess().getNUMBERTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStringLiteral
+entryRuleStringLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStringLiteralRule()); }
+ iv_ruleStringLiteral=ruleStringLiteral
+ { $current=$iv_ruleStringLiteral.current; }
+ EOF
+;
+
+// Rule StringLiteral
+ruleStringLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getStringLiteralAccess().getStringLiteralAction_0(),
+ $current);
+ }
+)this_STRING_1=RULE_STRING
+ {
+ newLeafNode(this_STRING_1, grammarAccess.getStringLiteralAccess().getSTRINGTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBoolLiteral
+entryRuleBoolLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getBoolLiteralRule()); }
+ iv_ruleBoolLiteral=ruleBoolLiteral
+ { $current=$iv_ruleBoolLiteral.current; }
+ EOF
+;
+
+// Rule BoolLiteral
+ruleBoolLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getBoolLiteralAccess().getBoolLiteralAction_0(),
+ $current);
+ }
+)this_BOOL_1=RULE_BOOL
+ {
+ newLeafNode(this_BOOL_1, grammarAccess.getBoolLiteralAccess().getBOOLTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleJSLiteral
+entryRuleJSLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJSLiteralRule()); }
+ iv_ruleJSLiteral=ruleJSLiteral
+ { $current=$iv_ruleJSLiteral.current; }
+ EOF
+;
+
+// Rule JSLiteral
+ruleJSLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getJSLiteralAccess().getJSLiteralAction_0(),
+ $current);
+ }
+)this_JS_1=RULE_JS
+ {
+ newLeafNode(this_JS_1, grammarAccess.getJSLiteralAccess().getJSTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleRegexLiteral
+entryRuleRegexLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRegexLiteralRule()); }
+ iv_ruleRegexLiteral=ruleRegexLiteral
+ { $current=$iv_ruleRegexLiteral.current; }
+ EOF
+;
+
+// Rule RegexLiteral
+ruleRegexLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getRegexLiteralAccess().getRegexLiteralAction_0(),
+ $current);
+ }
+)this_REGEX_1=RULE_REGEX
+ {
+ newLeafNode(this_REGEX_1, grammarAccess.getRegexLiteralAccess().getREGEXTerminalRuleCall_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLiteral
+entryRuleLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLiteralRule()); }
+ iv_ruleLiteral=ruleLiteral
+ { $current=$iv_ruleLiteral.current; }
+ EOF
+;
+
+// Rule Literal
+ruleLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getNumberLiteralParserRuleCall_0());
+ }
+ this_NumberLiteral_0=ruleNumberLiteral
+ {
+ $current = $this_NumberLiteral_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_1());
+ }
+ this_StringLiteral_1=ruleStringLiteral
+ {
+ $current = $this_StringLiteral_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getBoolLiteralParserRuleCall_2());
+ }
+ this_BoolLiteral_2=ruleBoolLiteral
+ {
+ $current = $this_BoolLiteral_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getJSLiteralParserRuleCall_3());
+ }
+ this_JSLiteral_3=ruleJSLiteral
+ {
+ $current = $this_JSLiteral_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getLiteralAccess().getRegexLiteralParserRuleCall_4());
+ }
+ this_RegexLiteral_4=ruleRegexLiteral
+ {
+ $current = $this_RegexLiteral_4.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleParenthetical
+entryRuleParenthetical returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getParentheticalRule()); }
+ iv_ruleParenthetical=ruleParenthetical
+ { $current=$iv_ruleParenthetical.current; }
+ EOF
+;
+
+// Rule Parenthetical
+ruleParenthetical returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((((( RULE_LPAREN RULE_INDENT))=>(this_LPAREN_0=RULE_LPAREN
+ {
+ newLeafNode(this_LPAREN_0, grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_0_0_0_0());
+ }
+this_INDENT_1=RULE_INDENT
+ {
+ newLeafNode(this_INDENT_1, grammarAccess.getParentheticalAccess().getINDENTTerminalRuleCall_0_0_0_1());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_0_1_0());
+ }
+ lv_content_2_0=ruleBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParentheticalRule());
+ }
+ set(
+ $current,
+ "content",
+ lv_content_2_0,
+ "Body");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_OUTDENT_3=RULE_OUTDENT
+ {
+ newLeafNode(this_OUTDENT_3, grammarAccess.getParentheticalAccess().getOUTDENTTerminalRuleCall_0_2());
+ }
+this_RPAREN_4=RULE_RPAREN
+ {
+ newLeafNode(this_RPAREN_4, grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_0_3());
+ }
+)
+ |((( RULE_LPAREN)=>this_LPAREN_5=RULE_LPAREN
+ {
+ newLeafNode(this_LPAREN_5, grammarAccess.getParentheticalAccess().getLPARENTerminalRuleCall_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getParentheticalAccess().getContentBodyParserRuleCall_1_1_0());
+ }
+ lv_content_6_0=ruleBody {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getParentheticalRule());
+ }
+ set(
+ $current,
+ "content",
+ lv_content_6_0,
+ "Body");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)this_RPAREN_7=RULE_RPAREN
+ {
+ newLeafNode(this_RPAREN_7, grammarAccess.getParentheticalAccess().getRPARENTerminalRuleCall_1_2());
+ }
+))
+;
+
+
+
+
+
+RULE_TASK : 'task';
+
+RULE_ELLIPSIS : '...';
+
+RULE_DOT_DOT : '..';
+
+RULE_DOUBLE_COLON : '::';
+
+RULE_SHIFT : ('<<'|'>>');
+
+RULE_BOUND_FUNC_ARROW : '=>';
+
+RULE_FUNC_ARROW : '->';
+
+RULE_COMPARE : ('<'|'=='|'>'|'<='|'>='|'!=');
+
+RULE_COMPOUND_ASSIGN : ('+='|'-=');
+
+RULE_PLUS_PLUS : '++';
+
+RULE_MINUS_MINUS : '--';
+
+RULE_PARAM_END : '**)';
+
+RULE_PARAM_START : '(**';
+
+RULE_AT_SIGIL : '@';
+
+RULE_BOOL : ('true'|'false'|'undefined'|'null'|'on'|'no'|'yes'|'off');
+
+RULE_BY : 'by';
+
+RULE_CALL_END : '*)';
+
+RULE_CALL_START : '(*';
+
+RULE_CATCH : 'catch';
+
+RULE_CLASS : 'class';
+
+RULE_COLON : ':';
+
+RULE_COLON_SLASH : 'dummy COLON_SLASH';
+
+RULE_COMMA : ',';
+
+RULE_DOT : '.';
+
+RULE_ELSE : 'else';
+
+RULE_EQUAL : '=';
+
+RULE_EXTENDS : 'extends';
+
+RULE_FINALLY : 'finally';
+
+RULE_FOR : 'for';
+
+RULE_FORIN : 'in';
+
+RULE_FOROF : 'of';
+
+RULE_FUNC_EXIST : 'dummy FUNC_EXIST';
+
+RULE_HERECOMMENT : 'dummy HERECOMMENT';
+
+RULE_IF : ('if'|'unless');
+
+RULE_INDENT : '{*';
+
+RULE_INDEX_END : '*]';
+
+RULE_INDEX_PROTO : 'dummy INDEX_PROTO';
+
+RULE_INDEX_SOAK : 'dummy INDEX_SOAK';
+
+RULE_INDEX_START : '[*';
+
+RULE_JS : 'dummy JS';
+
+RULE_LBRACKET : '[';
+
+RULE_LCURLY : 'dummy LCURLY';
+
+RULE_LEADING_WHEN : 'dummy LEADING_WHEN';
+
+RULE_LOGIC : ('&&'|'||');
+
+RULE_LOOP : 'loop';
+
+RULE_LPAREN : '(';
+
+RULE_MATH : ('*'|'/');
+
+RULE_MINUS : '-';
+
+RULE_NEW : 'new';
+
+RULE_NUMBER : ('0'..'9')+;
+
+RULE_OUTDENT : '*}';
+
+RULE_OWN : 'own';
+
+RULE_PLUS : '+';
+
+RULE_POST_IF : 'dummy POST_IF';
+
+RULE_QUESTION : '?';
+
+RULE_QUESTION_DOT : '?.';
+
+RULE_RBRACKET : ']';
+
+RULE_RCURLY : 'dummy RCURLY';
+
+RULE_REGEX : '///' ( options {greedy=false;} : . )*'///';
+
+RULE_RELATION : ('in'|'of'|'instanceof');
+
+RULE_RETURN : 'return';
+
+RULE_RPAREN : ')';
+
+RULE_STATEMENT : ('break'|'continue'|'debugger');
+
+RULE_STRING : ('\'\'\'' ( options {greedy=false;} : . )*'\'\'\''|'\'' (~('\'') ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))*)? '\''|'"""' ( options {greedy=false;} : . )*'"""'|'"' (~('"') ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))*)? '"');
+
+RULE_SUPER : 'super';
+
+RULE_SWITCH : 'switch';
+
+RULE_TERMINATOR : '\n'+;
+
+RULE_THEN : 'then';
+
+RULE_THIS : 'this';
+
+RULE_THROW : 'throw';
+
+RULE_TRY : 'try';
+
+RULE_UNARY : ('!'|'~');
+
+RULE_UNTIL : 'until';
+
+RULE_WHEN : 'when';
+
+RULE_WHILE : 'while';
+
+RULE_LOGIC_WORD : ('and'|'or');
+
+RULE_COMPARE_WORD : ('isnt'|'is');
+
+RULE_UNARY_WORD : ('new'|'do'|'not');
+
+RULE_ML_COMMENT : '###' ~('#') ( options {greedy=false;} : . )*'###';
+
+RULE_SL_COMMENT : '#' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t')+;
+
+RULE_IDENTIFIER : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.tokens b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.tokens
new file mode 100644
index 0000000..af4a910
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.tokens
@@ -0,0 +1,84 @@
+RULE_BOUND_FUNC_ARROW=68
+RULE_SWITCH=60
+RULE_THROW=18
+RULE_PARAM_START=7
+RULE_TERMINATOR=11
+RULE_CALL_END=10
+RULE_RETURN=16
+RULE_FOR=21
+RULE_BOOL=70
+RULE_LBRACKET=29
+RULE_DOUBLE_COLON=52
+RULE_MINUS_MINUS=45
+RULE_COMPARE_WORD=81
+RULE_OUTDENT=35
+RULE_RELATION=38
+RULE_REGEX=72
+RULE_CLASS=19
+RULE_WHILE=22
+RULE_COLON_SLASH=75
+RULE_FUNC_EXIST=48
+RULE_DOT=50
+RULE_POST_IF=17
+RULE_PLUS_PLUS=44
+RULE_OWN=25
+RULE_NUMBER=69
+RULE_LOOP=56
+RULE_LPAREN=73
+RULE_FUNC_ARROW=9
+RULE_AT_SIGIL=49
+RULE_EXTENDS=20
+RULE_SHIFT=39
+RULE_INDEX_END=54
+RULE_COMPARE=37
+RULE_QUESTION_DOT=51
+RULE_RBRACKET=32
+RULE_COMPOUND_ASSIGN=33
+RULE_SUPER=47
+RULE_THEN=79
+RULE_UNARY_WORD=82
+RULE_LEADING_WHEN=62
+RULE_TASK=4
+RULE_DOT_DOT=30
+RULE_STATEMENT=12
+RULE_PLUS=40
+RULE_BY=28
+RULE_INDEX_SOAK=77
+RULE_CATCH=58
+RULE_CALL_START=5
+RULE_INDEX_PROTO=76
+RULE_IDENTIFIER=64
+RULE_COMMA=6
+RULE_TRY=57
+RULE_JS=71
+RULE_EQUAL=14
+RULE_INDENT=34
+RULE_HERECOMMENT=13
+RULE_FORIN=27
+RULE_ELLIPSIS=31
+RULE_SL_COMMENT=84
+RULE_PARAM_END=8
+T__86=86
+RULE_ML_COMMENT=83
+RULE_WHEN=23
+RULE_INDEX_START=53
+RULE_COLON=67
+RULE_MINUS=41
+RULE_STRING=15
+RULE_NEW=78
+RULE_LOGIC_WORD=80
+RULE_LOGIC=36
+RULE_RPAREN=74
+RULE_WS=85
+RULE_FOROF=26
+RULE_IF=63
+RULE_THIS=55
+RULE_UNARY=43
+RULE_RCURLY=66
+RULE_ELSE=61
+RULE_FINALLY=59
+RULE_MATH=42
+RULE_LCURLY=65
+RULE_QUESTION=46
+RULE_UNTIL=24
+'require'=86
diff --git a/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefileLexer.java b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefileLexer.java
new file mode 100644
index 0000000..06c4ca6
--- /dev/null
+++ b/example/csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefileLexer.java
@@ -0,0 +1,4260 @@
+package csep.example.cake.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalCakefileLexer extends Lexer {
+ public static final int RULE_BOUND_FUNC_ARROW=68;
+ public static final int RULE_SWITCH=60;
+ public static final int RULE_THROW=18;
+ public static final int RULE_PARAM_START=7;
+ public static final int RULE_TERMINATOR=11;
+ public static final int RULE_CALL_END=10;
+ public static final int RULE_RETURN=16;
+ public static final int RULE_FOR=21;
+ public static final int RULE_BOOL=70;
+ public static final int RULE_LBRACKET=29;
+ public static final int RULE_DOUBLE_COLON=52;
+ public static final int RULE_MINUS_MINUS=45;
+ public static final int RULE_COMPARE_WORD=81;
+ public static final int RULE_OUTDENT=35;
+ public static final int EOF=-1;
+ public static final int RULE_RELATION=38;
+ public static final int RULE_REGEX=72;
+ public static final int RULE_CLASS=19;
+ public static final int RULE_WHILE=22;
+ public static final int RULE_COLON_SLASH=75;
+ public static final int RULE_FUNC_EXIST=48;
+ public static final int RULE_DOT=50;
+ public static final int RULE_POST_IF=17;
+ public static final int RULE_PLUS_PLUS=44;
+ public static final int RULE_OWN=25;
+ public static final int RULE_NUMBER=69;
+ public static final int RULE_LOOP=56;
+ public static final int RULE_LPAREN=73;
+ public static final int RULE_FUNC_ARROW=9;
+ public static final int RULE_AT_SIGIL=49;
+ public static final int RULE_EXTENDS=20;
+ public static final int RULE_SHIFT=39;
+ public static final int RULE_INDEX_END=54;
+ public static final int RULE_COMPARE=37;
+ public static final int RULE_QUESTION_DOT=51;
+ public static final int RULE_RBRACKET=32;
+ public static final int RULE_COMPOUND_ASSIGN=33;
+ public static final int RULE_SUPER=47;
+ public static final int RULE_THEN=79;
+ public static final int RULE_UNARY_WORD=82;
+ public static final int RULE_LEADING_WHEN=62;
+ public static final int RULE_TASK=4;
+ public static final int RULE_DOT_DOT=30;
+ public static final int RULE_STATEMENT=12;
+ public static final int RULE_PLUS=40;
+ public static final int RULE_BY=28;
+ public static final int RULE_CATCH=58;
+ public static final int RULE_INDEX_SOAK=77;
+ public static final int RULE_CALL_START=5;
+ public static final int RULE_COMMA=6;
+ public static final int RULE_IDENTIFIER=64;
+ public static final int RULE_INDEX_PROTO=76;
+ public static final int RULE_TRY=57;
+ public static final int RULE_INDENT=34;
+ public static final int RULE_EQUAL=14;
+ public static final int RULE_JS=71;
+ public static final int RULE_HERECOMMENT=13;
+ public static final int RULE_ELLIPSIS=31;
+ public static final int RULE_FORIN=27;
+ public static final int RULE_SL_COMMENT=84;
+ public static final int RULE_PARAM_END=8;
+ public static final int T__86=86;
+ public static final int RULE_WHEN=23;
+ public static final int RULE_ML_COMMENT=83;
+ public static final int RULE_INDEX_START=53;
+ public static final int RULE_MINUS=41;
+ public static final int RULE_COLON=67;
+ public static final int RULE_STRING=15;
+ public static final int RULE_NEW=78;
+ public static final int RULE_LOGIC_WORD=80;
+ public static final int RULE_LOGIC=36;
+ public static final int RULE_RPAREN=74;
+ public static final int RULE_WS=85;
+ public static final int RULE_FOROF=26;
+ public static final int RULE_UNARY=43;
+ public static final int RULE_THIS=55;
+ public static final int RULE_IF=63;
+ public static final int RULE_ELSE=61;
+ public static final int RULE_RCURLY=66;
+ public static final int RULE_MATH=42;
+ public static final int RULE_FINALLY=59;
+ public static final int RULE_UNTIL=24;
+ public static final int RULE_QUESTION=46;
+ public static final int RULE_LCURLY=65;
+
+ // delegates
+ // delegators
+
+ public InternalCakefileLexer() {;}
+ public InternalCakefileLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalCakefileLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g"; }
+
+ // $ANTLR start "T__86"
+ public final void mT__86() throws RecognitionException {
+ try {
+ int _type = T__86;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:11:7: ( 'require' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:11:9: 'require'
+ {
+ match("require");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__86"
+
+ // $ANTLR start "RULE_TASK"
+ public final void mRULE_TASK() throws RecognitionException {
+ try {
+ int _type = RULE_TASK;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5521:11: ( 'task' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5521:13: 'task'
+ {
+ match("task");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_TASK"
+
+ // $ANTLR start "RULE_ELLIPSIS"
+ public final void mRULE_ELLIPSIS() throws RecognitionException {
+ try {
+ int _type = RULE_ELLIPSIS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5523:15: ( '...' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5523:17: '...'
+ {
+ match("...");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ELLIPSIS"
+
+ // $ANTLR start "RULE_DOT_DOT"
+ public final void mRULE_DOT_DOT() throws RecognitionException {
+ try {
+ int _type = RULE_DOT_DOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5525:14: ( '..' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5525:16: '..'
+ {
+ match("..");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DOT_DOT"
+
+ // $ANTLR start "RULE_DOUBLE_COLON"
+ public final void mRULE_DOUBLE_COLON() throws RecognitionException {
+ try {
+ int _type = RULE_DOUBLE_COLON;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5527:19: ( '::' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5527:21: '::'
+ {
+ match("::");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DOUBLE_COLON"
+
+ // $ANTLR start "RULE_SHIFT"
+ public final void mRULE_SHIFT() throws RecognitionException {
+ try {
+ int _type = RULE_SHIFT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5529:12: ( ( '<<' | '>>' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5529:14: ( '<<' | '>>' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5529:14: ( '<<' | '>>' )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='<') ) {
+ alt1=1;
+ }
+ else if ( (LA1_0=='>') ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5529:15: '<<'
+ {
+ match("<<");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5529:20: '>>'
+ {
+ match(">>");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SHIFT"
+
+ // $ANTLR start "RULE_BOUND_FUNC_ARROW"
+ public final void mRULE_BOUND_FUNC_ARROW() throws RecognitionException {
+ try {
+ int _type = RULE_BOUND_FUNC_ARROW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5531:23: ( '=>' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5531:25: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_BOUND_FUNC_ARROW"
+
+ // $ANTLR start "RULE_FUNC_ARROW"
+ public final void mRULE_FUNC_ARROW() throws RecognitionException {
+ try {
+ int _type = RULE_FUNC_ARROW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5533:17: ( '->' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5533:19: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FUNC_ARROW"
+
+ // $ANTLR start "RULE_COMPARE"
+ public final void mRULE_COMPARE() throws RecognitionException {
+ try {
+ int _type = RULE_COMPARE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:14: ( ( '<' | '==' | '>' | '<=' | '>=' | '!=' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:16: ( '<' | '==' | '>' | '<=' | '>=' | '!=' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:16: ( '<' | '==' | '>' | '<=' | '>=' | '!=' )
+ int alt2=6;
+ switch ( input.LA(1) ) {
+ case '<':
+ {
+ int LA2_1 = input.LA(2);
+
+ if ( (LA2_1=='=') ) {
+ alt2=4;
+ }
+ else {
+ alt2=1;}
+ }
+ break;
+ case '=':
+ {
+ alt2=2;
+ }
+ break;
+ case '>':
+ {
+ int LA2_3 = input.LA(2);
+
+ if ( (LA2_3=='=') ) {
+ alt2=5;
+ }
+ else {
+ alt2=3;}
+ }
+ break;
+ case '!':
+ {
+ alt2=6;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt2) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:17: '<'
+ {
+ match('<');
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:21: '=='
+ {
+ match("==");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:26: '>'
+ {
+ match('>');
+
+ }
+ break;
+ case 4 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:30: '<='
+ {
+ match("<=");
+
+
+ }
+ break;
+ case 5 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:35: '>='
+ {
+ match(">=");
+
+
+ }
+ break;
+ case 6 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5535:40: '!='
+ {
+ match("!=");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMPARE"
+
+ // $ANTLR start "RULE_COMPOUND_ASSIGN"
+ public final void mRULE_COMPOUND_ASSIGN() throws RecognitionException {
+ try {
+ int _type = RULE_COMPOUND_ASSIGN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5537:22: ( ( '+=' | '-=' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5537:24: ( '+=' | '-=' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5537:24: ( '+=' | '-=' )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='+') ) {
+ alt3=1;
+ }
+ else if ( (LA3_0=='-') ) {
+ alt3=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5537:25: '+='
+ {
+ match("+=");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5537:30: '-='
+ {
+ match("-=");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMPOUND_ASSIGN"
+
+ // $ANTLR start "RULE_PLUS_PLUS"
+ public final void mRULE_PLUS_PLUS() throws RecognitionException {
+ try {
+ int _type = RULE_PLUS_PLUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5539:16: ( '++' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5539:18: '++'
+ {
+ match("++");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PLUS_PLUS"
+
+ // $ANTLR start "RULE_MINUS_MINUS"
+ public final void mRULE_MINUS_MINUS() throws RecognitionException {
+ try {
+ int _type = RULE_MINUS_MINUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5541:18: ( '--' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5541:20: '--'
+ {
+ match("--");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_MINUS_MINUS"
+
+ // $ANTLR start "RULE_PARAM_END"
+ public final void mRULE_PARAM_END() throws RecognitionException {
+ try {
+ int _type = RULE_PARAM_END;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5543:16: ( '**)' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5543:18: '**)'
+ {
+ match("**)");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PARAM_END"
+
+ // $ANTLR start "RULE_PARAM_START"
+ public final void mRULE_PARAM_START() throws RecognitionException {
+ try {
+ int _type = RULE_PARAM_START;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5545:18: ( '(**' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5545:20: '(**'
+ {
+ match("(**");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PARAM_START"
+
+ // $ANTLR start "RULE_AT_SIGIL"
+ public final void mRULE_AT_SIGIL() throws RecognitionException {
+ try {
+ int _type = RULE_AT_SIGIL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5547:15: ( '@' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5547:17: '@'
+ {
+ match('@');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_AT_SIGIL"
+
+ // $ANTLR start "RULE_BOOL"
+ public final void mRULE_BOOL() throws RecognitionException {
+ try {
+ int _type = RULE_BOOL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:11: ( ( 'true' | 'false' | 'undefined' | 'null' | 'on' | 'no' | 'yes' | 'off' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:13: ( 'true' | 'false' | 'undefined' | 'null' | 'on' | 'no' | 'yes' | 'off' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:13: ( 'true' | 'false' | 'undefined' | 'null' | 'on' | 'no' | 'yes' | 'off' )
+ int alt4=8;
+ alt4 = dfa4.predict(input);
+ switch (alt4) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:14: 'true'
+ {
+ match("true");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:21: 'false'
+ {
+ match("false");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:29: 'undefined'
+ {
+ match("undefined");
+
+
+ }
+ break;
+ case 4 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:41: 'null'
+ {
+ match("null");
+
+
+ }
+ break;
+ case 5 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:48: 'on'
+ {
+ match("on");
+
+
+ }
+ break;
+ case 6 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:53: 'no'
+ {
+ match("no");
+
+
+ }
+ break;
+ case 7 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:58: 'yes'
+ {
+ match("yes");
+
+
+ }
+ break;
+ case 8 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5549:64: 'off'
+ {
+ match("off");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_BOOL"
+
+ // $ANTLR start "RULE_BY"
+ public final void mRULE_BY() throws RecognitionException {
+ try {
+ int _type = RULE_BY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5551:9: ( 'by' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5551:11: 'by'
+ {
+ match("by");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_BY"
+
+ // $ANTLR start "RULE_CALL_END"
+ public final void mRULE_CALL_END() throws RecognitionException {
+ try {
+ int _type = RULE_CALL_END;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5553:15: ( '*)' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5553:17: '*)'
+ {
+ match("*)");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CALL_END"
+
+ // $ANTLR start "RULE_CALL_START"
+ public final void mRULE_CALL_START() throws RecognitionException {
+ try {
+ int _type = RULE_CALL_START;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5555:17: ( '(*' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5555:19: '(*'
+ {
+ match("(*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CALL_START"
+
+ // $ANTLR start "RULE_CATCH"
+ public final void mRULE_CATCH() throws RecognitionException {
+ try {
+ int _type = RULE_CATCH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5557:12: ( 'catch' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5557:14: 'catch'
+ {
+ match("catch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CATCH"
+
+ // $ANTLR start "RULE_CLASS"
+ public final void mRULE_CLASS() throws RecognitionException {
+ try {
+ int _type = RULE_CLASS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5559:12: ( 'class' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5559:14: 'class'
+ {
+ match("class");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_CLASS"
+
+ // $ANTLR start "RULE_COLON"
+ public final void mRULE_COLON() throws RecognitionException {
+ try {
+ int _type = RULE_COLON;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5561:12: ( ':' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5561:14: ':'
+ {
+ match(':');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COLON"
+
+ // $ANTLR start "RULE_COLON_SLASH"
+ public final void mRULE_COLON_SLASH() throws RecognitionException {
+ try {
+ int _type = RULE_COLON_SLASH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5563:18: ( 'dummy COLON_SLASH' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5563:20: 'dummy COLON_SLASH'
+ {
+ match("dummy COLON_SLASH");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COLON_SLASH"
+
+ // $ANTLR start "RULE_COMMA"
+ public final void mRULE_COMMA() throws RecognitionException {
+ try {
+ int _type = RULE_COMMA;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5565:12: ( ',' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5565:14: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMMA"
+
+ // $ANTLR start "RULE_DOT"
+ public final void mRULE_DOT() throws RecognitionException {
+ try {
+ int _type = RULE_DOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5567:10: ( '.' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5567:12: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DOT"
+
+ // $ANTLR start "RULE_ELSE"
+ public final void mRULE_ELSE() throws RecognitionException {
+ try {
+ int _type = RULE_ELSE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5569:11: ( 'else' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5569:13: 'else'
+ {
+ match("else");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ELSE"
+
+ // $ANTLR start "RULE_EQUAL"
+ public final void mRULE_EQUAL() throws RecognitionException {
+ try {
+ int _type = RULE_EQUAL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5571:12: ( '=' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5571:14: '='
+ {
+ match('=');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_EQUAL"
+
+ // $ANTLR start "RULE_EXTENDS"
+ public final void mRULE_EXTENDS() throws RecognitionException {
+ try {
+ int _type = RULE_EXTENDS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5573:14: ( 'extends' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5573:16: 'extends'
+ {
+ match("extends");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_EXTENDS"
+
+ // $ANTLR start "RULE_FINALLY"
+ public final void mRULE_FINALLY() throws RecognitionException {
+ try {
+ int _type = RULE_FINALLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5575:14: ( 'finally' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5575:16: 'finally'
+ {
+ match("finally");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FINALLY"
+
+ // $ANTLR start "RULE_FOR"
+ public final void mRULE_FOR() throws RecognitionException {
+ try {
+ int _type = RULE_FOR;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5577:10: ( 'for' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5577:12: 'for'
+ {
+ match("for");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FOR"
+
+ // $ANTLR start "RULE_FORIN"
+ public final void mRULE_FORIN() throws RecognitionException {
+ try {
+ int _type = RULE_FORIN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5579:12: ( 'in' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5579:14: 'in'
+ {
+ match("in");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FORIN"
+
+ // $ANTLR start "RULE_FOROF"
+ public final void mRULE_FOROF() throws RecognitionException {
+ try {
+ int _type = RULE_FOROF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5581:12: ( 'of' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5581:14: 'of'
+ {
+ match("of");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FOROF"
+
+ // $ANTLR start "RULE_FUNC_EXIST"
+ public final void mRULE_FUNC_EXIST() throws RecognitionException {
+ try {
+ int _type = RULE_FUNC_EXIST;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5583:17: ( 'dummy FUNC_EXIST' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5583:19: 'dummy FUNC_EXIST'
+ {
+ match("dummy FUNC_EXIST");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_FUNC_EXIST"
+
+ // $ANTLR start "RULE_HERECOMMENT"
+ public final void mRULE_HERECOMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_HERECOMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5585:18: ( 'dummy HERECOMMENT' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5585:20: 'dummy HERECOMMENT'
+ {
+ match("dummy HERECOMMENT");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HERECOMMENT"
+
+ // $ANTLR start "RULE_IF"
+ public final void mRULE_IF() throws RecognitionException {
+ try {
+ int _type = RULE_IF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5587:9: ( ( 'if' | 'unless' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5587:11: ( 'if' | 'unless' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5587:11: ( 'if' | 'unless' )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='i') ) {
+ alt5=1;
+ }
+ else if ( (LA5_0=='u') ) {
+ alt5=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5587:12: 'if'
+ {
+ match("if");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5587:17: 'unless'
+ {
+ match("unless");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IF"
+
+ // $ANTLR start "RULE_INDENT"
+ public final void mRULE_INDENT() throws RecognitionException {
+ try {
+ int _type = RULE_INDENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5589:13: ( '{*' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5589:15: '{*'
+ {
+ match("{*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDENT"
+
+ // $ANTLR start "RULE_INDEX_END"
+ public final void mRULE_INDEX_END() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_END;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5591:16: ( '*]' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5591:18: '*]'
+ {
+ match("*]");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_END"
+
+ // $ANTLR start "RULE_INDEX_PROTO"
+ public final void mRULE_INDEX_PROTO() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_PROTO;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5593:18: ( 'dummy INDEX_PROTO' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5593:20: 'dummy INDEX_PROTO'
+ {
+ match("dummy INDEX_PROTO");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_PROTO"
+
+ // $ANTLR start "RULE_INDEX_SOAK"
+ public final void mRULE_INDEX_SOAK() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_SOAK;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5595:17: ( 'dummy INDEX_SOAK' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5595:19: 'dummy INDEX_SOAK'
+ {
+ match("dummy INDEX_SOAK");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_SOAK"
+
+ // $ANTLR start "RULE_INDEX_START"
+ public final void mRULE_INDEX_START() throws RecognitionException {
+ try {
+ int _type = RULE_INDEX_START;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5597:18: ( '[*' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5597:20: '[*'
+ {
+ match("[*");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INDEX_START"
+
+ // $ANTLR start "RULE_JS"
+ public final void mRULE_JS() throws RecognitionException {
+ try {
+ int _type = RULE_JS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5599:9: ( 'dummy JS' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5599:11: 'dummy JS'
+ {
+ match("dummy JS");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_JS"
+
+ // $ANTLR start "RULE_LBRACKET"
+ public final void mRULE_LBRACKET() throws RecognitionException {
+ try {
+ int _type = RULE_LBRACKET;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5601:15: ( '[' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5601:17: '['
+ {
+ match('[');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LBRACKET"
+
+ // $ANTLR start "RULE_LCURLY"
+ public final void mRULE_LCURLY() throws RecognitionException {
+ try {
+ int _type = RULE_LCURLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5603:13: ( 'dummy LCURLY' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5603:15: 'dummy LCURLY'
+ {
+ match("dummy LCURLY");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LCURLY"
+
+ // $ANTLR start "RULE_LEADING_WHEN"
+ public final void mRULE_LEADING_WHEN() throws RecognitionException {
+ try {
+ int _type = RULE_LEADING_WHEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5605:19: ( 'dummy LEADING_WHEN' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5605:21: 'dummy LEADING_WHEN'
+ {
+ match("dummy LEADING_WHEN");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LEADING_WHEN"
+
+ // $ANTLR start "RULE_LOGIC"
+ public final void mRULE_LOGIC() throws RecognitionException {
+ try {
+ int _type = RULE_LOGIC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5607:12: ( ( '&&' | '||' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5607:14: ( '&&' | '||' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5607:14: ( '&&' | '||' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='&') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='|') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5607:15: '&&'
+ {
+ match("&&");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5607:20: '||'
+ {
+ match("||");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LOGIC"
+
+ // $ANTLR start "RULE_LOOP"
+ public final void mRULE_LOOP() throws RecognitionException {
+ try {
+ int _type = RULE_LOOP;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5609:11: ( 'loop' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5609:13: 'loop'
+ {
+ match("loop");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LOOP"
+
+ // $ANTLR start "RULE_LPAREN"
+ public final void mRULE_LPAREN() throws RecognitionException {
+ try {
+ int _type = RULE_LPAREN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5611:13: ( '(' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5611:15: '('
+ {
+ match('(');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LPAREN"
+
+ // $ANTLR start "RULE_MATH"
+ public final void mRULE_MATH() throws RecognitionException {
+ try {
+ int _type = RULE_MATH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5613:11: ( ( '*' | '/' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5613:13: ( '*' | '/' )
+ {
+ if ( input.LA(1)=='*'||input.LA(1)=='/' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_MATH"
+
+ // $ANTLR start "RULE_MINUS"
+ public final void mRULE_MINUS() throws RecognitionException {
+ try {
+ int _type = RULE_MINUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5615:12: ( '-' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5615:14: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_MINUS"
+
+ // $ANTLR start "RULE_NEW"
+ public final void mRULE_NEW() throws RecognitionException {
+ try {
+ int _type = RULE_NEW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5617:10: ( 'new' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5617:12: 'new'
+ {
+ match("new");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_NEW"
+
+ // $ANTLR start "RULE_NUMBER"
+ public final void mRULE_NUMBER() throws RecognitionException {
+ try {
+ int _type = RULE_NUMBER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5619:13: ( ( '0' .. '9' )+ )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5619:15: ( '0' .. '9' )+
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5619:15: ( '0' .. '9' )+
+ int cnt7=0;
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>='0' && LA7_0<='9')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5619:16: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt7 >= 1 ) break loop7;
+ EarlyExitException eee =
+ new EarlyExitException(7, input);
+ throw eee;
+ }
+ cnt7++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_NUMBER"
+
+ // $ANTLR start "RULE_OUTDENT"
+ public final void mRULE_OUTDENT() throws RecognitionException {
+ try {
+ int _type = RULE_OUTDENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5621:14: ( '*}' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5621:16: '*}'
+ {
+ match("*}");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_OUTDENT"
+
+ // $ANTLR start "RULE_OWN"
+ public final void mRULE_OWN() throws RecognitionException {
+ try {
+ int _type = RULE_OWN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5623:10: ( 'own' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5623:12: 'own'
+ {
+ match("own");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_OWN"
+
+ // $ANTLR start "RULE_PLUS"
+ public final void mRULE_PLUS() throws RecognitionException {
+ try {
+ int _type = RULE_PLUS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5625:11: ( '+' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5625:13: '+'
+ {
+ match('+');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_PLUS"
+
+ // $ANTLR start "RULE_POST_IF"
+ public final void mRULE_POST_IF() throws RecognitionException {
+ try {
+ int _type = RULE_POST_IF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5627:14: ( 'dummy POST_IF' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5627:16: 'dummy POST_IF'
+ {
+ match("dummy POST_IF");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_POST_IF"
+
+ // $ANTLR start "RULE_QUESTION"
+ public final void mRULE_QUESTION() throws RecognitionException {
+ try {
+ int _type = RULE_QUESTION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5629:15: ( '?' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5629:17: '?'
+ {
+ match('?');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_QUESTION"
+
+ // $ANTLR start "RULE_QUESTION_DOT"
+ public final void mRULE_QUESTION_DOT() throws RecognitionException {
+ try {
+ int _type = RULE_QUESTION_DOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5631:19: ( '?.' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5631:21: '?.'
+ {
+ match("?.");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_QUESTION_DOT"
+
+ // $ANTLR start "RULE_RBRACKET"
+ public final void mRULE_RBRACKET() throws RecognitionException {
+ try {
+ int _type = RULE_RBRACKET;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5633:15: ( ']' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5633:17: ']'
+ {
+ match(']');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RBRACKET"
+
+ // $ANTLR start "RULE_RCURLY"
+ public final void mRULE_RCURLY() throws RecognitionException {
+ try {
+ int _type = RULE_RCURLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5635:13: ( 'dummy RCURLY' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5635:15: 'dummy RCURLY'
+ {
+ match("dummy RCURLY");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RCURLY"
+
+ // $ANTLR start "RULE_REGEX"
+ public final void mRULE_REGEX() throws RecognitionException {
+ try {
+ int _type = RULE_REGEX;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5637:12: ( '///' ( options {greedy=false; } : . )* '///' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5637:14: '///' ( options {greedy=false; } : . )* '///'
+ {
+ match("///");
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5637:20: ( options {greedy=false; } : . )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='/') ) {
+ int LA8_1 = input.LA(2);
+
+ if ( (LA8_1=='/') ) {
+ int LA8_3 = input.LA(3);
+
+ if ( (LA8_3=='/') ) {
+ alt8=2;
+ }
+ else if ( ((LA8_3>='\u0000' && LA8_3<='.')||(LA8_3>='0' && LA8_3<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ }
+ else if ( ((LA8_1>='\u0000' && LA8_1<='.')||(LA8_1>='0' && LA8_1<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ }
+ else if ( ((LA8_0>='\u0000' && LA8_0<='.')||(LA8_0>='0' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5637:48: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ match("///");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_REGEX"
+
+ // $ANTLR start "RULE_RELATION"
+ public final void mRULE_RELATION() throws RecognitionException {
+ try {
+ int _type = RULE_RELATION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5639:15: ( ( 'in' | 'of' | 'instanceof' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5639:17: ( 'in' | 'of' | 'instanceof' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5639:17: ( 'in' | 'of' | 'instanceof' )
+ int alt9=3;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='i') ) {
+ int LA9_1 = input.LA(2);
+
+ if ( (LA9_1=='n') ) {
+ int LA9_3 = input.LA(3);
+
+ if ( (LA9_3=='s') ) {
+ alt9=3;
+ }
+ else {
+ alt9=1;}
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA9_0=='o') ) {
+ alt9=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5639:18: 'in'
+ {
+ match("in");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5639:23: 'of'
+ {
+ match("of");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5639:28: 'instanceof'
+ {
+ match("instanceof");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RELATION"
+
+ // $ANTLR start "RULE_RETURN"
+ public final void mRULE_RETURN() throws RecognitionException {
+ try {
+ int _type = RULE_RETURN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5641:13: ( 'return' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5641:15: 'return'
+ {
+ match("return");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RETURN"
+
+ // $ANTLR start "RULE_RPAREN"
+ public final void mRULE_RPAREN() throws RecognitionException {
+ try {
+ int _type = RULE_RPAREN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5643:13: ( ')' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5643:15: ')'
+ {
+ match(')');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_RPAREN"
+
+ // $ANTLR start "RULE_STATEMENT"
+ public final void mRULE_STATEMENT() throws RecognitionException {
+ try {
+ int _type = RULE_STATEMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5645:16: ( ( 'break' | 'continue' | 'debugger' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5645:18: ( 'break' | 'continue' | 'debugger' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5645:18: ( 'break' | 'continue' | 'debugger' )
+ int alt10=3;
+ switch ( input.LA(1) ) {
+ case 'b':
+ {
+ alt10=1;
+ }
+ break;
+ case 'c':
+ {
+ alt10=2;
+ }
+ break;
+ case 'd':
+ {
+ alt10=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt10) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5645:19: 'break'
+ {
+ match("break");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5645:27: 'continue'
+ {
+ match("continue");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5645:38: 'debugger'
+ {
+ match("debugger");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STATEMENT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:13: ( ( '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\'' | '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\'' | '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"' | '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:15: ( '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\'' | '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\'' | '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"' | '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:15: ( '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\'' | '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\'' | '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"' | '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"' )
+ int alt17=4;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='\'') ) {
+ int LA17_1 = input.LA(2);
+
+ if ( (LA17_1=='\'') ) {
+ int LA17_3 = input.LA(3);
+
+ if ( (LA17_3=='\'') ) {
+ alt17=1;
+ }
+ else {
+ alt17=2;}
+ }
+ else if ( ((LA17_1>='\u0000' && LA17_1<='&')||(LA17_1>='(' && LA17_1<='\uFFFF')) ) {
+ alt17=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA17_0=='\"') ) {
+ int LA17_2 = input.LA(2);
+
+ if ( (LA17_2=='\"') ) {
+ int LA17_5 = input.LA(3);
+
+ if ( (LA17_5=='\"') ) {
+ alt17=3;
+ }
+ else {
+ alt17=4;}
+ }
+ else if ( ((LA17_2>='\u0000' && LA17_2<='!')||(LA17_2>='#' && LA17_2<='\uFFFF')) ) {
+ alt17=4;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+
+ throw nvae;
+ }
+ switch (alt17) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:16: '\\'\\'\\'' ( options {greedy=false; } : . )* '\\'\\'\\''
+ {
+ match("'''");
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:25: ( options {greedy=false; } : . )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\'') ) {
+ int LA11_1 = input.LA(2);
+
+ if ( (LA11_1=='\'') ) {
+ int LA11_3 = input.LA(3);
+
+ if ( (LA11_3=='\'') ) {
+ alt11=2;
+ }
+ else if ( ((LA11_3>='\u0000' && LA11_3<='&')||(LA11_3>='(' && LA11_3<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ }
+ else if ( ((LA11_1>='\u0000' && LA11_1<='&')||(LA11_1>='(' && LA11_1<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ }
+ else if ( ((LA11_0>='\u0000' && LA11_0<='&')||(LA11_0>='(' && LA11_0<='\uFFFF')) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:53: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ match("'''");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:66: '\\'' (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )? '\\''
+ {
+ match('\'');
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:71: (~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='\uFFFF')) ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:72: ~ ( '\\'' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:80: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop12:
+ do {
+ int alt12=3;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\\') ) {
+ alt12=1;
+ }
+ else if ( ((LA12_0>='\u0000' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='[')||(LA12_0>=']' && LA12_0<='\uFFFF')) ) {
+ alt12=2;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:81: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:126: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ match('\'');
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:150: '\"\"\"' ( options {greedy=false; } : . )* '\"\"\"'
+ {
+ match("\"\"\"");
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:156: ( options {greedy=false; } : . )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='\"') ) {
+ int LA14_1 = input.LA(2);
+
+ if ( (LA14_1=='\"') ) {
+ int LA14_3 = input.LA(3);
+
+ if ( (LA14_3=='\"') ) {
+ alt14=2;
+ }
+ else if ( ((LA14_3>='\u0000' && LA14_3<='!')||(LA14_3>='#' && LA14_3<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_1>='\u0000' && LA14_1<='!')||(LA14_1>='#' && LA14_1<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_0>='\u0000' && LA14_0<='!')||(LA14_0>='#' && LA14_0<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:184: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ match("\"\"\"");
+
+
+ }
+ break;
+ case 4 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:194: '\"' (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )? '\"'
+ {
+ match('\"');
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:198: (~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( ((LA16_0>='\u0000' && LA16_0<='!')||(LA16_0>='#' && LA16_0<='\uFFFF')) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:199: ~ ( '\"' ) ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:206: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop15:
+ do {
+ int alt15=3;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0=='\\') ) {
+ alt15=1;
+ }
+ else if ( ((LA15_0>='\u0000' && LA15_0<='!')||(LA15_0>='#' && LA15_0<='[')||(LA15_0>=']' && LA15_0<='\uFFFF')) ) {
+ alt15=2;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:207: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5647:252: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ match('\"');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_SUPER"
+ public final void mRULE_SUPER() throws RecognitionException {
+ try {
+ int _type = RULE_SUPER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5649:12: ( 'super' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5649:14: 'super'
+ {
+ match("super");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SUPER"
+
+ // $ANTLR start "RULE_SWITCH"
+ public final void mRULE_SWITCH() throws RecognitionException {
+ try {
+ int _type = RULE_SWITCH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5651:13: ( 'switch' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5651:15: 'switch'
+ {
+ match("switch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SWITCH"
+
+ // $ANTLR start "RULE_TERMINATOR"
+ public final void mRULE_TERMINATOR() throws RecognitionException {
+ try {
+ int _type = RULE_TERMINATOR;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5653:17: ( ( '\\n' )+ )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5653:19: ( '\\n' )+
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5653:19: ( '\\n' )+
+ int cnt18=0;
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0=='\n') ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5653:19: '\\n'
+ {
+ match('\n');
+
+ }
+ break;
+
+ default :
+ if ( cnt18 >= 1 ) break loop18;
+ EarlyExitException eee =
+ new EarlyExitException(18, input);
+ throw eee;
+ }
+ cnt18++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_TERMINATOR"
+
+ // $ANTLR start "RULE_THEN"
+ public final void mRULE_THEN() throws RecognitionException {
+ try {
+ int _type = RULE_THEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5655:11: ( 'then' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5655:13: 'then'
+ {
+ match("then");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_THEN"
+
+ // $ANTLR start "RULE_THIS"
+ public final void mRULE_THIS() throws RecognitionException {
+ try {
+ int _type = RULE_THIS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5657:11: ( 'this' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5657:13: 'this'
+ {
+ match("this");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_THIS"
+
+ // $ANTLR start "RULE_THROW"
+ public final void mRULE_THROW() throws RecognitionException {
+ try {
+ int _type = RULE_THROW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5659:12: ( 'throw' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5659:14: 'throw'
+ {
+ match("throw");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_THROW"
+
+ // $ANTLR start "RULE_TRY"
+ public final void mRULE_TRY() throws RecognitionException {
+ try {
+ int _type = RULE_TRY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5661:10: ( 'try' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5661:12: 'try'
+ {
+ match("try");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_TRY"
+
+ // $ANTLR start "RULE_UNARY"
+ public final void mRULE_UNARY() throws RecognitionException {
+ try {
+ int _type = RULE_UNARY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5663:12: ( ( '!' | '~' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5663:14: ( '!' | '~' )
+ {
+ if ( input.LA(1)=='!'||input.LA(1)=='~' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNARY"
+
+ // $ANTLR start "RULE_UNTIL"
+ public final void mRULE_UNTIL() throws RecognitionException {
+ try {
+ int _type = RULE_UNTIL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5665:12: ( 'until' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5665:14: 'until'
+ {
+ match("until");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNTIL"
+
+ // $ANTLR start "RULE_WHEN"
+ public final void mRULE_WHEN() throws RecognitionException {
+ try {
+ int _type = RULE_WHEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5667:11: ( 'when' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5667:13: 'when'
+ {
+ match("when");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WHEN"
+
+ // $ANTLR start "RULE_WHILE"
+ public final void mRULE_WHILE() throws RecognitionException {
+ try {
+ int _type = RULE_WHILE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5669:12: ( 'while' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5669:14: 'while'
+ {
+ match("while");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WHILE"
+
+ // $ANTLR start "RULE_LOGIC_WORD"
+ public final void mRULE_LOGIC_WORD() throws RecognitionException {
+ try {
+ int _type = RULE_LOGIC_WORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5671:17: ( ( 'and' | 'or' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5671:19: ( 'and' | 'or' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5671:19: ( 'and' | 'or' )
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0=='a') ) {
+ alt19=1;
+ }
+ else if ( (LA19_0=='o') ) {
+ alt19=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+
+ throw nvae;
+ }
+ switch (alt19) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5671:20: 'and'
+ {
+ match("and");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5671:26: 'or'
+ {
+ match("or");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_LOGIC_WORD"
+
+ // $ANTLR start "RULE_COMPARE_WORD"
+ public final void mRULE_COMPARE_WORD() throws RecognitionException {
+ try {
+ int _type = RULE_COMPARE_WORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5673:19: ( ( 'isnt' | 'is' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5673:21: ( 'isnt' | 'is' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5673:21: ( 'isnt' | 'is' )
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0=='i') ) {
+ int LA20_1 = input.LA(2);
+
+ if ( (LA20_1=='s') ) {
+ int LA20_2 = input.LA(3);
+
+ if ( (LA20_2=='n') ) {
+ alt20=1;
+ }
+ else {
+ alt20=2;}
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+
+ throw nvae;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5673:22: 'isnt'
+ {
+ match("isnt");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5673:29: 'is'
+ {
+ match("is");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_COMPARE_WORD"
+
+ // $ANTLR start "RULE_UNARY_WORD"
+ public final void mRULE_UNARY_WORD() throws RecognitionException {
+ try {
+ int _type = RULE_UNARY_WORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5675:17: ( ( 'new' | 'do' | 'not' ) )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5675:19: ( 'new' | 'do' | 'not' )
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5675:19: ( 'new' | 'do' | 'not' )
+ int alt21=3;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0=='n') ) {
+ int LA21_1 = input.LA(2);
+
+ if ( (LA21_1=='e') ) {
+ alt21=1;
+ }
+ else if ( (LA21_1=='o') ) {
+ alt21=3;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA21_0=='d') ) {
+ alt21=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 0, input);
+
+ throw nvae;
+ }
+ switch (alt21) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5675:20: 'new'
+ {
+ match("new");
+
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5675:26: 'do'
+ {
+ match("do");
+
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5675:31: 'not'
+ {
+ match("not");
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_UNARY_WORD"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5677:17: ( '###' ~ ( '#' ) ( options {greedy=false; } : . )* '###' )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5677:19: '###' ~ ( '#' ) ( options {greedy=false; } : . )* '###'
+ {
+ match("###");
+
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\"')||(input.LA(1)>='$' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5677:32: ( options {greedy=false; } : . )*
+ loop22:
+ do {
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0=='#') ) {
+ int LA22_1 = input.LA(2);
+
+ if ( (LA22_1=='#') ) {
+ int LA22_3 = input.LA(3);
+
+ if ( (LA22_3=='#') ) {
+ alt22=2;
+ }
+ else if ( ((LA22_3>='\u0000' && LA22_3<='\"')||(LA22_3>='$' && LA22_3<='\uFFFF')) ) {
+ alt22=1;
+ }
+
+
+ }
+ else if ( ((LA22_1>='\u0000' && LA22_1<='\"')||(LA22_1>='$' && LA22_1<='\uFFFF')) ) {
+ alt22=1;
+ }
+
+
+ }
+ else if ( ((LA22_0>='\u0000' && LA22_0<='\"')||(LA22_0>='$' && LA22_0<='\uFFFF')) ) {
+ alt22=1;
+ }
+
+
+ switch (alt22) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5677:60: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop22;
+ }
+ } while (true);
+
+ match("###");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:17: ( '#' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:19: '#' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match('#');
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:23: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( ((LA23_0>='\u0000' && LA23_0<='\t')||(LA23_0>='\u000B' && LA23_0<='\f')||(LA23_0>='\u000E' && LA23_0<='\uFFFF')) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:23: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ } while (true);
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:39: ( ( '\\r' )? '\\n' )?
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0=='\n'||LA25_0=='\r') ) {
+ alt25=1;
+ }
+ switch (alt25) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:40: ( '\\r' )? '\\n'
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:40: ( '\\r' )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0=='\r') ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5679:40: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5681:9: ( ( ' ' | '\\t' )+ )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5681:11: ( ' ' | '\\t' )+
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5681:11: ( ' ' | '\\t' )+
+ int cnt26=0;
+ loop26:
+ do {
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0=='\t'||LA26_0==' ') ) {
+ alt26=1;
+ }
+
+
+ switch (alt26) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:
+ {
+ if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt26 >= 1 ) break loop26;
+ EarlyExitException eee =
+ new EarlyExitException(26, input);
+ throw eee;
+ }
+ cnt26++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_IDENTIFIER"
+ public final void mRULE_IDENTIFIER() throws RecognitionException {
+ try {
+ int _type = RULE_IDENTIFIER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5683:17: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5683:19: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5683:19: ( '^' )?
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0=='^') ) {
+ alt27=1;
+ }
+ switch (alt27) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5683:19: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:5683:48: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop28:
+ do {
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( ((LA28_0>='0' && LA28_0<='9')||(LA28_0>='A' && LA28_0<='Z')||LA28_0=='_'||(LA28_0>='a' && LA28_0<='z')) ) {
+ alt28=1;
+ }
+
+
+ switch (alt28) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop28;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENTIFIER"
+
+ public void mTokens() throws RecognitionException {
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:8: ( T__86 | RULE_TASK | RULE_ELLIPSIS | RULE_DOT_DOT | RULE_DOUBLE_COLON | RULE_SHIFT | RULE_BOUND_FUNC_ARROW | RULE_FUNC_ARROW | RULE_COMPARE | RULE_COMPOUND_ASSIGN | RULE_PLUS_PLUS | RULE_MINUS_MINUS | RULE_PARAM_END | RULE_PARAM_START | RULE_AT_SIGIL | RULE_BOOL | RULE_BY | RULE_CALL_END | RULE_CALL_START | RULE_CATCH | RULE_CLASS | RULE_COLON | RULE_COLON_SLASH | RULE_COMMA | RULE_DOT | RULE_ELSE | RULE_EQUAL | RULE_EXTENDS | RULE_FINALLY | RULE_FOR | RULE_FORIN | RULE_FOROF | RULE_FUNC_EXIST | RULE_HERECOMMENT | RULE_IF | RULE_INDENT | RULE_INDEX_END | RULE_INDEX_PROTO | RULE_INDEX_SOAK | RULE_INDEX_START | RULE_JS | RULE_LBRACKET | RULE_LCURLY | RULE_LEADING_WHEN | RULE_LOGIC | RULE_LOOP | RULE_LPAREN | RULE_MATH | RULE_MINUS | RULE_NEW | RULE_NUMBER | RULE_OUTDENT | RULE_OWN | RULE_PLUS | RULE_POST_IF | RULE_QUESTION | RULE_QUESTION_DOT | RULE_RBRACKET | RULE_RCURLY | RULE_REGEX | RULE_RELATION | RULE_RETURN | RULE_RPAREN | RULE_STATEMENT | RULE_STRING | RULE_SUPER | RULE_SWITCH | RULE_TERMINATOR | RULE_THEN | RULE_THIS | RULE_THROW | RULE_TRY | RULE_UNARY | RULE_UNTIL | RULE_WHEN | RULE_WHILE | RULE_LOGIC_WORD | RULE_COMPARE_WORD | RULE_UNARY_WORD | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_IDENTIFIER )
+ int alt29=83;
+ alt29 = dfa29.predict(input);
+ switch (alt29) {
+ case 1 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:10: T__86
+ {
+ mT__86();
+
+ }
+ break;
+ case 2 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:16: RULE_TASK
+ {
+ mRULE_TASK();
+
+ }
+ break;
+ case 3 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:26: RULE_ELLIPSIS
+ {
+ mRULE_ELLIPSIS();
+
+ }
+ break;
+ case 4 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:40: RULE_DOT_DOT
+ {
+ mRULE_DOT_DOT();
+
+ }
+ break;
+ case 5 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:53: RULE_DOUBLE_COLON
+ {
+ mRULE_DOUBLE_COLON();
+
+ }
+ break;
+ case 6 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:71: RULE_SHIFT
+ {
+ mRULE_SHIFT();
+
+ }
+ break;
+ case 7 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:82: RULE_BOUND_FUNC_ARROW
+ {
+ mRULE_BOUND_FUNC_ARROW();
+
+ }
+ break;
+ case 8 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:104: RULE_FUNC_ARROW
+ {
+ mRULE_FUNC_ARROW();
+
+ }
+ break;
+ case 9 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:120: RULE_COMPARE
+ {
+ mRULE_COMPARE();
+
+ }
+ break;
+ case 10 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:133: RULE_COMPOUND_ASSIGN
+ {
+ mRULE_COMPOUND_ASSIGN();
+
+ }
+ break;
+ case 11 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:154: RULE_PLUS_PLUS
+ {
+ mRULE_PLUS_PLUS();
+
+ }
+ break;
+ case 12 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:169: RULE_MINUS_MINUS
+ {
+ mRULE_MINUS_MINUS();
+
+ }
+ break;
+ case 13 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:186: RULE_PARAM_END
+ {
+ mRULE_PARAM_END();
+
+ }
+ break;
+ case 14 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:201: RULE_PARAM_START
+ {
+ mRULE_PARAM_START();
+
+ }
+ break;
+ case 15 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:218: RULE_AT_SIGIL
+ {
+ mRULE_AT_SIGIL();
+
+ }
+ break;
+ case 16 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:232: RULE_BOOL
+ {
+ mRULE_BOOL();
+
+ }
+ break;
+ case 17 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:242: RULE_BY
+ {
+ mRULE_BY();
+
+ }
+ break;
+ case 18 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:250: RULE_CALL_END
+ {
+ mRULE_CALL_END();
+
+ }
+ break;
+ case 19 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:264: RULE_CALL_START
+ {
+ mRULE_CALL_START();
+
+ }
+ break;
+ case 20 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:280: RULE_CATCH
+ {
+ mRULE_CATCH();
+
+ }
+ break;
+ case 21 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:291: RULE_CLASS
+ {
+ mRULE_CLASS();
+
+ }
+ break;
+ case 22 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:302: RULE_COLON
+ {
+ mRULE_COLON();
+
+ }
+ break;
+ case 23 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:313: RULE_COLON_SLASH
+ {
+ mRULE_COLON_SLASH();
+
+ }
+ break;
+ case 24 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:330: RULE_COMMA
+ {
+ mRULE_COMMA();
+
+ }
+ break;
+ case 25 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:341: RULE_DOT
+ {
+ mRULE_DOT();
+
+ }
+ break;
+ case 26 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:350: RULE_ELSE
+ {
+ mRULE_ELSE();
+
+ }
+ break;
+ case 27 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:360: RULE_EQUAL
+ {
+ mRULE_EQUAL();
+
+ }
+ break;
+ case 28 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:371: RULE_EXTENDS
+ {
+ mRULE_EXTENDS();
+
+ }
+ break;
+ case 29 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:384: RULE_FINALLY
+ {
+ mRULE_FINALLY();
+
+ }
+ break;
+ case 30 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:397: RULE_FOR
+ {
+ mRULE_FOR();
+
+ }
+ break;
+ case 31 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:406: RULE_FORIN
+ {
+ mRULE_FORIN();
+
+ }
+ break;
+ case 32 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:417: RULE_FOROF
+ {
+ mRULE_FOROF();
+
+ }
+ break;
+ case 33 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:428: RULE_FUNC_EXIST
+ {
+ mRULE_FUNC_EXIST();
+
+ }
+ break;
+ case 34 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:444: RULE_HERECOMMENT
+ {
+ mRULE_HERECOMMENT();
+
+ }
+ break;
+ case 35 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:461: RULE_IF
+ {
+ mRULE_IF();
+
+ }
+ break;
+ case 36 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:469: RULE_INDENT
+ {
+ mRULE_INDENT();
+
+ }
+ break;
+ case 37 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:481: RULE_INDEX_END
+ {
+ mRULE_INDEX_END();
+
+ }
+ break;
+ case 38 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:496: RULE_INDEX_PROTO
+ {
+ mRULE_INDEX_PROTO();
+
+ }
+ break;
+ case 39 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:513: RULE_INDEX_SOAK
+ {
+ mRULE_INDEX_SOAK();
+
+ }
+ break;
+ case 40 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:529: RULE_INDEX_START
+ {
+ mRULE_INDEX_START();
+
+ }
+ break;
+ case 41 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:546: RULE_JS
+ {
+ mRULE_JS();
+
+ }
+ break;
+ case 42 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:554: RULE_LBRACKET
+ {
+ mRULE_LBRACKET();
+
+ }
+ break;
+ case 43 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:568: RULE_LCURLY
+ {
+ mRULE_LCURLY();
+
+ }
+ break;
+ case 44 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:580: RULE_LEADING_WHEN
+ {
+ mRULE_LEADING_WHEN();
+
+ }
+ break;
+ case 45 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:598: RULE_LOGIC
+ {
+ mRULE_LOGIC();
+
+ }
+ break;
+ case 46 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:609: RULE_LOOP
+ {
+ mRULE_LOOP();
+
+ }
+ break;
+ case 47 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:619: RULE_LPAREN
+ {
+ mRULE_LPAREN();
+
+ }
+ break;
+ case 48 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:631: RULE_MATH
+ {
+ mRULE_MATH();
+
+ }
+ break;
+ case 49 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:641: RULE_MINUS
+ {
+ mRULE_MINUS();
+
+ }
+ break;
+ case 50 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:652: RULE_NEW
+ {
+ mRULE_NEW();
+
+ }
+ break;
+ case 51 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:661: RULE_NUMBER
+ {
+ mRULE_NUMBER();
+
+ }
+ break;
+ case 52 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:673: RULE_OUTDENT
+ {
+ mRULE_OUTDENT();
+
+ }
+ break;
+ case 53 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:686: RULE_OWN
+ {
+ mRULE_OWN();
+
+ }
+ break;
+ case 54 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:695: RULE_PLUS
+ {
+ mRULE_PLUS();
+
+ }
+ break;
+ case 55 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:705: RULE_POST_IF
+ {
+ mRULE_POST_IF();
+
+ }
+ break;
+ case 56 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:718: RULE_QUESTION
+ {
+ mRULE_QUESTION();
+
+ }
+ break;
+ case 57 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:732: RULE_QUESTION_DOT
+ {
+ mRULE_QUESTION_DOT();
+
+ }
+ break;
+ case 58 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:750: RULE_RBRACKET
+ {
+ mRULE_RBRACKET();
+
+ }
+ break;
+ case 59 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:764: RULE_RCURLY
+ {
+ mRULE_RCURLY();
+
+ }
+ break;
+ case 60 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:776: RULE_REGEX
+ {
+ mRULE_REGEX();
+
+ }
+ break;
+ case 61 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:787: RULE_RELATION
+ {
+ mRULE_RELATION();
+
+ }
+ break;
+ case 62 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:801: RULE_RETURN
+ {
+ mRULE_RETURN();
+
+ }
+ break;
+ case 63 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:813: RULE_RPAREN
+ {
+ mRULE_RPAREN();
+
+ }
+ break;
+ case 64 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:825: RULE_STATEMENT
+ {
+ mRULE_STATEMENT();
+
+ }
+ break;
+ case 65 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:840: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 66 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:852: RULE_SUPER
+ {
+ mRULE_SUPER();
+
+ }
+ break;
+ case 67 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:863: RULE_SWITCH
+ {
+ mRULE_SWITCH();
+
+ }
+ break;
+ case 68 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:875: RULE_TERMINATOR
+ {
+ mRULE_TERMINATOR();
+
+ }
+ break;
+ case 69 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:891: RULE_THEN
+ {
+ mRULE_THEN();
+
+ }
+ break;
+ case 70 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:901: RULE_THIS
+ {
+ mRULE_THIS();
+
+ }
+ break;
+ case 71 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:911: RULE_THROW
+ {
+ mRULE_THROW();
+
+ }
+ break;
+ case 72 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:922: RULE_TRY
+ {
+ mRULE_TRY();
+
+ }
+ break;
+ case 73 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:931: RULE_UNARY
+ {
+ mRULE_UNARY();
+
+ }
+ break;
+ case 74 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:942: RULE_UNTIL
+ {
+ mRULE_UNTIL();
+
+ }
+ break;
+ case 75 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:953: RULE_WHEN
+ {
+ mRULE_WHEN();
+
+ }
+ break;
+ case 76 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:963: RULE_WHILE
+ {
+ mRULE_WHILE();
+
+ }
+ break;
+ case 77 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:974: RULE_LOGIC_WORD
+ {
+ mRULE_LOGIC_WORD();
+
+ }
+ break;
+ case 78 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:990: RULE_COMPARE_WORD
+ {
+ mRULE_COMPARE_WORD();
+
+ }
+ break;
+ case 79 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:1008: RULE_UNARY_WORD
+ {
+ mRULE_UNARY_WORD();
+
+ }
+ break;
+ case 80 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:1024: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 81 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:1040: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 82 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:1056: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 83 :
+ // ../csep.example.cake/src-gen/csep/example/cake/parser/antlr/internal/InternalCakefile.g:1:1064: RULE_IDENTIFIER
+ {
+ mRULE_IDENTIFIER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA4 dfa4 = new DFA4(this);
+ protected DFA29 dfa29 = new DFA29(this);
+ static final String DFA4_eotS =
+ "\13\uffff";
+ static final String DFA4_eofS =
+ "\13\uffff";
+ static final String DFA4_minS =
+ "\1\146\3\uffff\1\157\1\146\5\uffff";
+ static final String DFA4_maxS =
+ "\1\171\3\uffff\1\165\1\156\5\uffff";
+ static final String DFA4_acceptS =
+ "\1\uffff\1\1\1\2\1\3\2\uffff\1\7\1\4\1\6\1\5\1\10";
+ static final String DFA4_specialS =
+ "\13\uffff}>";
+ static final String[] DFA4_transitionS = {
+ "\1\2\7\uffff\1\4\1\5\4\uffff\1\1\1\3\3\uffff\1\6",
+ "",
+ "",
+ "",
+ "\1\10\5\uffff\1\7",
+ "\1\12\7\uffff\1\11",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
+ static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
+ static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
+ static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
+ static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
+ static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
+ static final short[][] DFA4_transition;
+
+ static {
+ int numStates = DFA4_transitionS.length;
+ DFA4_transition = new short[numStates][];
+ for (int i=0; i