+ *
+ *
+ * @see org.eclipse.xpand3.internal.parser.xpand3node.Xpand3nodePackage#getFileNode()
+ * @model
+ * @generated
+ */
+public interface FileNode extends CompositeNode {
+ /**
+ * Returns the value of the 'Decl' reference list.
+ * The list contents are of type {@link org.eclipse.tmf.common.node.CompositeNode}.
+ *
+ *
+ * If the meaning of the 'Decl' reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Decl' reference list.
+ * @see org.eclipse.xpand3.internal.parser.xpand3node.Xpand3nodePackage#getFileNode_Decl()
+ * @model
+ * @generated
+ */
+ EList getDecl();
+
+ /**
+ * Returns the value of the 'Imp' reference list.
+ * The list contents are of type {@link org.eclipse.tmf.common.node.CompositeNode}.
+ *
+ *
+ * If the meaning of the 'Imp' reference list isn't clear,
+ * there really should be more of a description here...
+ *
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 org.eclipse.xpand3.internal.parser.xpand3node.Xpand3nodePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Xpand3nodePackageImpl() {
+ super(eNS_URI, Xpand3nodeFactory.eINSTANCE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ *
Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ *
Invocation of this method will not affect any packages that have
+ * already been initialized.
+ *
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Xpand3nodePackage init() {
+ if (isInited) return (Xpand3nodePackage)EPackage.Registry.INSTANCE.getEPackage(Xpand3nodePackage.eNS_URI);
+
+ // Obtain or create and register package
+ Xpand3nodePackageImpl theXpand3nodePackage = (Xpand3nodePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof Xpand3nodePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new Xpand3nodePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ NodePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theXpand3nodePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theXpand3nodePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theXpand3nodePackage.freeze();
+
+ return theXpand3nodePackage;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getFileNode() {
+ return fileNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getFileNode_Decl() {
+ return (EReference)fileNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getFileNode_Imp() {
+ return (EReference)fileNodeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getNsImportNode() {
+ return nsImportNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getNsImportNode_Ns() {
+ return (EReference)nsImportNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getDefinitionNode() {
+ return definitionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getDefinitionNode_Name() {
+ return (EReference)definitionNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getDefinitionAroundNode() {
+ return definitionAroundNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getSequenceNode() {
+ return sequenceNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getTextSequenceNode() {
+ return textSequenceNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getTextNode() {
+ return textNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getErrorStatementNode() {
+ return errorStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getExpandStatementNode() {
+ return expandStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getExpressionStmtNode() {
+ return expressionStmtNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getFileStatementNode() {
+ return fileStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getForeachStatementNode() {
+ return foreachStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getIfStatementNode() {
+ return ifStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getElseIfStatementNode() {
+ return elseIfStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getElseStatementNode() {
+ return elseStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getLetStatementNode() {
+ return letStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getProtectStatementNode() {
+ return protectStatementNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getCheckNode() {
+ return checkNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getAroundNode() {
+ return aroundNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getPointcutNode() {
+ return pointcutNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getExtensionNode() {
+ return extensionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getJavaTypeNode() {
+ return javaTypeNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getTest_expressionNode() {
+ return test_expressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getExpressionNode() {
+ return expressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getLetExpressionNode() {
+ return letExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getCastedExpressionNode() {
+ return castedExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getChainExpressionNode() {
+ return chainExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getIfExpressionNode() {
+ return ifExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getSwitchExpressionNode() {
+ return switchExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getCasePartNode() {
+ return casePartNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getOrExpressionNode() {
+ return orExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getAndExpressionNode() {
+ return andExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getImpliesExpressionNode() {
+ return impliesExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getRelationalExpressionNode() {
+ return relationalExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getAdditiveExpressionNode() {
+ return additiveExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getMultiplicativeExpressionNode() {
+ return multiplicativeExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getUnaryExpressionNode() {
+ return unaryExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getInfixExpressionNode() {
+ return infixExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getStringLiteralNode() {
+ return stringLiteralNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getParanthesizedExpressionNode() {
+ return paranthesizedExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getGlobalVarExpressionNode() {
+ return globalVarExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getFeatureCallNode() {
+ return featureCallNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getListLiteralNode() {
+ return listLiteralNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getConstructorCallNode() {
+ return constructorCallNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getBooleanLiteralNode() {
+ return booleanLiteralNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getNullLiteralNode() {
+ return nullLiteralNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getNumberLiteralNode() {
+ return numberLiteralNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getCollectionExpressionNode() {
+ return collectionExpressionNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getDeclaredParameterListNode() {
+ return declaredParameterListNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getDeclaredParameterNode() {
+ return declaredParameterNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getParameterListNode() {
+ return parameterListNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getCollectionTypeNode() {
+ return collectionTypeNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getSimpleTypeNode() {
+ return simpleTypeNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getIdentifierNode() {
+ return identifierNodeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Xpand3nodeFactory getXpand3nodeFactory() {
+ return (Xpand3nodeFactory)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
+ fileNodeEClass = createEClass(FILE_NODE);
+ createEReference(fileNodeEClass, FILE_NODE__DECL);
+ createEReference(fileNodeEClass, FILE_NODE__IMP);
+
+ nsImportNodeEClass = createEClass(NS_IMPORT_NODE);
+ createEReference(nsImportNodeEClass, NS_IMPORT_NODE__NS);
+
+ definitionNodeEClass = createEClass(DEFINITION_NODE);
+ createEReference(definitionNodeEClass, DEFINITION_NODE__NAME);
+
+ definitionAroundNodeEClass = createEClass(DEFINITION_AROUND_NODE);
+
+ sequenceNodeEClass = createEClass(SEQUENCE_NODE);
+
+ textSequenceNodeEClass = createEClass(TEXT_SEQUENCE_NODE);
+
+ textNodeEClass = createEClass(TEXT_NODE);
+
+ errorStatementNodeEClass = createEClass(ERROR_STATEMENT_NODE);
+
+ expandStatementNodeEClass = createEClass(EXPAND_STATEMENT_NODE);
+
+ expressionStmtNodeEClass = createEClass(EXPRESSION_STMT_NODE);
+
+ fileStatementNodeEClass = createEClass(FILE_STATEMENT_NODE);
+
+ foreachStatementNodeEClass = createEClass(FOREACH_STATEMENT_NODE);
+
+ ifStatementNodeEClass = createEClass(IF_STATEMENT_NODE);
+
+ elseIfStatementNodeEClass = createEClass(ELSE_IF_STATEMENT_NODE);
+
+ elseStatementNodeEClass = createEClass(ELSE_STATEMENT_NODE);
+
+ letStatementNodeEClass = createEClass(LET_STATEMENT_NODE);
+
+ protectStatementNodeEClass = createEClass(PROTECT_STATEMENT_NODE);
+
+ checkNodeEClass = createEClass(CHECK_NODE);
+
+ aroundNodeEClass = createEClass(AROUND_NODE);
+
+ pointcutNodeEClass = createEClass(POINTCUT_NODE);
+
+ extensionNodeEClass = createEClass(EXTENSION_NODE);
+
+ javaTypeNodeEClass = createEClass(JAVA_TYPE_NODE);
+
+ test_expressionNodeEClass = createEClass(TEST_EXPRESSION_NODE);
+
+ expressionNodeEClass = createEClass(EXPRESSION_NODE);
+
+ letExpressionNodeEClass = createEClass(LET_EXPRESSION_NODE);
+
+ castedExpressionNodeEClass = createEClass(CASTED_EXPRESSION_NODE);
+
+ chainExpressionNodeEClass = createEClass(CHAIN_EXPRESSION_NODE);
+
+ ifExpressionNodeEClass = createEClass(IF_EXPRESSION_NODE);
+
+ switchExpressionNodeEClass = createEClass(SWITCH_EXPRESSION_NODE);
+
+ casePartNodeEClass = createEClass(CASE_PART_NODE);
+
+ orExpressionNodeEClass = createEClass(OR_EXPRESSION_NODE);
+
+ andExpressionNodeEClass = createEClass(AND_EXPRESSION_NODE);
+
+ impliesExpressionNodeEClass = createEClass(IMPLIES_EXPRESSION_NODE);
+
+ relationalExpressionNodeEClass = createEClass(RELATIONAL_EXPRESSION_NODE);
+
+ additiveExpressionNodeEClass = createEClass(ADDITIVE_EXPRESSION_NODE);
+
+ multiplicativeExpressionNodeEClass = createEClass(MULTIPLICATIVE_EXPRESSION_NODE);
+
+ unaryExpressionNodeEClass = createEClass(UNARY_EXPRESSION_NODE);
+
+ infixExpressionNodeEClass = createEClass(INFIX_EXPRESSION_NODE);
+
+ stringLiteralNodeEClass = createEClass(STRING_LITERAL_NODE);
+
+ paranthesizedExpressionNodeEClass = createEClass(PARANTHESIZED_EXPRESSION_NODE);
+
+ globalVarExpressionNodeEClass = createEClass(GLOBAL_VAR_EXPRESSION_NODE);
+
+ featureCallNodeEClass = createEClass(FEATURE_CALL_NODE);
+
+ listLiteralNodeEClass = createEClass(LIST_LITERAL_NODE);
+
+ constructorCallNodeEClass = createEClass(CONSTRUCTOR_CALL_NODE);
+
+ booleanLiteralNodeEClass = createEClass(BOOLEAN_LITERAL_NODE);
+
+ nullLiteralNodeEClass = createEClass(NULL_LITERAL_NODE);
+
+ numberLiteralNodeEClass = createEClass(NUMBER_LITERAL_NODE);
+
+ collectionExpressionNodeEClass = createEClass(COLLECTION_EXPRESSION_NODE);
+
+ declaredParameterListNodeEClass = createEClass(DECLARED_PARAMETER_LIST_NODE);
+
+ declaredParameterNodeEClass = createEClass(DECLARED_PARAMETER_NODE);
+
+ parameterListNodeEClass = createEClass(PARAMETER_LIST_NODE);
+
+ collectionTypeNodeEClass = createEClass(COLLECTION_TYPE_NODE);
+
+ simpleTypeNodeEClass = createEClass(SIMPLE_TYPE_NODE);
+
+ identifierNodeEClass = createEClass(IDENTIFIER_NODE);
+ }
+
+ /**
+ *
+ *
+ * @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
+ NodePackage theNodePackage = (NodePackage)EPackage.Registry.INSTANCE.getEPackage(NodePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ fileNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ nsImportNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ definitionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ definitionAroundNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ sequenceNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ textSequenceNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ textNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ errorStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ expandStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ expressionStmtNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ fileStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ foreachStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ ifStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ elseIfStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ elseStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ letStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ protectStatementNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ checkNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ aroundNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ pointcutNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ extensionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ javaTypeNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ test_expressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ expressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ letExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ castedExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ chainExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ ifExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ switchExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ casePartNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ orExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ andExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ impliesExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ relationalExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ additiveExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ multiplicativeExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ unaryExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ infixExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ stringLiteralNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ paranthesizedExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ globalVarExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ featureCallNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ listLiteralNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ constructorCallNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ booleanLiteralNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ nullLiteralNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ numberLiteralNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ collectionExpressionNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ declaredParameterListNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ declaredParameterNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ parameterListNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ collectionTypeNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ simpleTypeNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+ identifierNodeEClass.getESuperTypes().add(theNodePackage.getCompositeNode());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(fileNodeEClass, FileNode.class, "FileNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFileNode_Decl(), theNodePackage.getCompositeNode(), null, "decl", null, 0, -1, FileNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFileNode_Imp(), theNodePackage.getCompositeNode(), null, "imp", null, 0, -1, FileNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(nsImportNodeEClass, NsImportNode.class, "NsImportNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNsImportNode_Ns(), theNodePackage.getCompositeNode(), null, "ns", null, 0, 1, NsImportNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(definitionNodeEClass, DefinitionNode.class, "DefinitionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDefinitionNode_Name(), theNodePackage.getCompositeNode(), null, "name", null, 0, 1, DefinitionNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(definitionAroundNodeEClass, DefinitionAroundNode.class, "DefinitionAroundNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(sequenceNodeEClass, SequenceNode.class, "SequenceNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(textSequenceNodeEClass, TextSequenceNode.class, "TextSequenceNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(textNodeEClass, TextNode.class, "TextNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(errorStatementNodeEClass, ErrorStatementNode.class, "ErrorStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(expandStatementNodeEClass, ExpandStatementNode.class, "ExpandStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(expressionStmtNodeEClass, ExpressionStmtNode.class, "ExpressionStmtNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(fileStatementNodeEClass, FileStatementNode.class, "FileStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(foreachStatementNodeEClass, ForeachStatementNode.class, "ForeachStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(ifStatementNodeEClass, IfStatementNode.class, "IfStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(elseIfStatementNodeEClass, ElseIfStatementNode.class, "ElseIfStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(elseStatementNodeEClass, ElseStatementNode.class, "ElseStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(letStatementNodeEClass, LetStatementNode.class, "LetStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(protectStatementNodeEClass, ProtectStatementNode.class, "ProtectStatementNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(checkNodeEClass, CheckNode.class, "CheckNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(aroundNodeEClass, AroundNode.class, "AroundNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(pointcutNodeEClass, PointcutNode.class, "PointcutNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(extensionNodeEClass, ExtensionNode.class, "ExtensionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(javaTypeNodeEClass, JavaTypeNode.class, "JavaTypeNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(test_expressionNodeEClass, Test_expressionNode.class, "Test_expressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(expressionNodeEClass, ExpressionNode.class, "ExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(letExpressionNodeEClass, LetExpressionNode.class, "LetExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(castedExpressionNodeEClass, CastedExpressionNode.class, "CastedExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(chainExpressionNodeEClass, ChainExpressionNode.class, "ChainExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(ifExpressionNodeEClass, IfExpressionNode.class, "IfExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(switchExpressionNodeEClass, SwitchExpressionNode.class, "SwitchExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(casePartNodeEClass, CasePartNode.class, "CasePartNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(orExpressionNodeEClass, OrExpressionNode.class, "OrExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(andExpressionNodeEClass, AndExpressionNode.class, "AndExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(impliesExpressionNodeEClass, ImpliesExpressionNode.class, "ImpliesExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(relationalExpressionNodeEClass, RelationalExpressionNode.class, "RelationalExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(additiveExpressionNodeEClass, AdditiveExpressionNode.class, "AdditiveExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(multiplicativeExpressionNodeEClass, MultiplicativeExpressionNode.class, "MultiplicativeExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(unaryExpressionNodeEClass, UnaryExpressionNode.class, "UnaryExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(infixExpressionNodeEClass, InfixExpressionNode.class, "InfixExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(stringLiteralNodeEClass, StringLiteralNode.class, "StringLiteralNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(paranthesizedExpressionNodeEClass, ParanthesizedExpressionNode.class, "ParanthesizedExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(globalVarExpressionNodeEClass, GlobalVarExpressionNode.class, "GlobalVarExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(featureCallNodeEClass, FeatureCallNode.class, "FeatureCallNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(listLiteralNodeEClass, ListLiteralNode.class, "ListLiteralNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(constructorCallNodeEClass, ConstructorCallNode.class, "ConstructorCallNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(booleanLiteralNodeEClass, BooleanLiteralNode.class, "BooleanLiteralNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(nullLiteralNodeEClass, NullLiteralNode.class, "NullLiteralNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(numberLiteralNodeEClass, NumberLiteralNode.class, "NumberLiteralNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(collectionExpressionNodeEClass, CollectionExpressionNode.class, "CollectionExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(declaredParameterListNodeEClass, DeclaredParameterListNode.class, "DeclaredParameterListNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(declaredParameterNodeEClass, DeclaredParameterNode.class, "DeclaredParameterNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(parameterListNodeEClass, ParameterListNode.class, "ParameterListNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(collectionTypeNodeEClass, CollectionTypeNode.class, "CollectionTypeNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(simpleTypeNodeEClass, SimpleTypeNode.class, "SimpleTypeNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(identifierNodeEClass, IdentifierNode.class, "IdentifierNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //Xpand3nodePackageImpl
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeAdapterFactory.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeAdapterFactory.java
new file mode 100644
index 00000000..867fe5b8
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeAdapterFactory.java
@@ -0,0 +1,1117 @@
+/**
+ *
+ *
+ *
+ * $Id: Xpand3nodeAdapterFactory.java,v 1.1 2008/03/06 08:55:16 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.tmf.common.node.CompositeNode;
+import org.eclipse.tmf.common.node.Node;
+
+import org.eclipse.xpand3.internal.parser.xpand3node.*;
+
+/**
+ *
+ * The Adapter Factory for the model.
+ * It provides an adapter createXXX method for each class of the model.
+ *
+ * @see org.eclipse.xpand3.internal.parser.xpand3node.Xpand3nodePackage
+ * @generated
+ */
+public class Xpand3nodeAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ *
+ *
+ * @generated
+ */
+ protected static Xpand3nodePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ *
+ *
+ * @generated
+ */
+ public Xpand3nodeAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Xpand3nodePackage.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 the delegates to the createXXX methods.
+ *
+ *
+ * @generated
+ */
+ protected Xpand3nodeSwitch modelSwitch =
+ new Xpand3nodeSwitch() {
+ @Override
+ public Adapter caseFileNode(FileNode object) {
+ return createFileNodeAdapter();
+ }
+ @Override
+ public Adapter caseNsImportNode(NsImportNode object) {
+ return createNsImportNodeAdapter();
+ }
+ @Override
+ public Adapter caseDefinitionNode(DefinitionNode object) {
+ return createDefinitionNodeAdapter();
+ }
+ @Override
+ public Adapter caseDefinitionAroundNode(DefinitionAroundNode object) {
+ return createDefinitionAroundNodeAdapter();
+ }
+ @Override
+ public Adapter caseSequenceNode(SequenceNode object) {
+ return createSequenceNodeAdapter();
+ }
+ @Override
+ public Adapter caseTextSequenceNode(TextSequenceNode object) {
+ return createTextSequenceNodeAdapter();
+ }
+ @Override
+ public Adapter caseTextNode(TextNode object) {
+ return createTextNodeAdapter();
+ }
+ @Override
+ public Adapter caseErrorStatementNode(ErrorStatementNode object) {
+ return createErrorStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseExpandStatementNode(ExpandStatementNode object) {
+ return createExpandStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseExpressionStmtNode(ExpressionStmtNode object) {
+ return createExpressionStmtNodeAdapter();
+ }
+ @Override
+ public Adapter caseFileStatementNode(FileStatementNode object) {
+ return createFileStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseForeachStatementNode(ForeachStatementNode object) {
+ return createForeachStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseIfStatementNode(IfStatementNode object) {
+ return createIfStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseElseIfStatementNode(ElseIfStatementNode object) {
+ return createElseIfStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseElseStatementNode(ElseStatementNode object) {
+ return createElseStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseLetStatementNode(LetStatementNode object) {
+ return createLetStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseProtectStatementNode(ProtectStatementNode object) {
+ return createProtectStatementNodeAdapter();
+ }
+ @Override
+ public Adapter caseCheckNode(CheckNode object) {
+ return createCheckNodeAdapter();
+ }
+ @Override
+ public Adapter caseAroundNode(AroundNode object) {
+ return createAroundNodeAdapter();
+ }
+ @Override
+ public Adapter casePointcutNode(PointcutNode object) {
+ return createPointcutNodeAdapter();
+ }
+ @Override
+ public Adapter caseExtensionNode(ExtensionNode object) {
+ return createExtensionNodeAdapter();
+ }
+ @Override
+ public Adapter caseJavaTypeNode(JavaTypeNode object) {
+ return createJavaTypeNodeAdapter();
+ }
+ @Override
+ public Adapter caseTest_expressionNode(Test_expressionNode object) {
+ return createTest_expressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseExpressionNode(ExpressionNode object) {
+ return createExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseLetExpressionNode(LetExpressionNode object) {
+ return createLetExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseCastedExpressionNode(CastedExpressionNode object) {
+ return createCastedExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseChainExpressionNode(ChainExpressionNode object) {
+ return createChainExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseIfExpressionNode(IfExpressionNode object) {
+ return createIfExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseSwitchExpressionNode(SwitchExpressionNode object) {
+ return createSwitchExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseCasePartNode(CasePartNode object) {
+ return createCasePartNodeAdapter();
+ }
+ @Override
+ public Adapter caseOrExpressionNode(OrExpressionNode object) {
+ return createOrExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseAndExpressionNode(AndExpressionNode object) {
+ return createAndExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseImpliesExpressionNode(ImpliesExpressionNode object) {
+ return createImpliesExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseRelationalExpressionNode(RelationalExpressionNode object) {
+ return createRelationalExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseAdditiveExpressionNode(AdditiveExpressionNode object) {
+ return createAdditiveExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseMultiplicativeExpressionNode(MultiplicativeExpressionNode object) {
+ return createMultiplicativeExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseUnaryExpressionNode(UnaryExpressionNode object) {
+ return createUnaryExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseInfixExpressionNode(InfixExpressionNode object) {
+ return createInfixExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseStringLiteralNode(StringLiteralNode object) {
+ return createStringLiteralNodeAdapter();
+ }
+ @Override
+ public Adapter caseParanthesizedExpressionNode(ParanthesizedExpressionNode object) {
+ return createParanthesizedExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseGlobalVarExpressionNode(GlobalVarExpressionNode object) {
+ return createGlobalVarExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseFeatureCallNode(FeatureCallNode object) {
+ return createFeatureCallNodeAdapter();
+ }
+ @Override
+ public Adapter caseListLiteralNode(ListLiteralNode object) {
+ return createListLiteralNodeAdapter();
+ }
+ @Override
+ public Adapter caseConstructorCallNode(ConstructorCallNode object) {
+ return createConstructorCallNodeAdapter();
+ }
+ @Override
+ public Adapter caseBooleanLiteralNode(BooleanLiteralNode object) {
+ return createBooleanLiteralNodeAdapter();
+ }
+ @Override
+ public Adapter caseNullLiteralNode(NullLiteralNode object) {
+ return createNullLiteralNodeAdapter();
+ }
+ @Override
+ public Adapter caseNumberLiteralNode(NumberLiteralNode object) {
+ return createNumberLiteralNodeAdapter();
+ }
+ @Override
+ public Adapter caseCollectionExpressionNode(CollectionExpressionNode object) {
+ return createCollectionExpressionNodeAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredParameterListNode(DeclaredParameterListNode object) {
+ return createDeclaredParameterListNodeAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredParameterNode(DeclaredParameterNode object) {
+ return createDeclaredParameterNodeAdapter();
+ }
+ @Override
+ public Adapter caseParameterListNode(ParameterListNode object) {
+ return createParameterListNodeAdapter();
+ }
+ @Override
+ public Adapter caseCollectionTypeNode(CollectionTypeNode object) {
+ return createCollectionTypeNodeAdapter();
+ }
+ @Override
+ public Adapter caseSimpleTypeNode(SimpleTypeNode object) {
+ return createSimpleTypeNodeAdapter();
+ }
+ @Override
+ public Adapter caseIdentifierNode(IdentifierNode object) {
+ return createIdentifierNodeAdapter();
+ }
+ @Override
+ public Adapter caseNode(Node object) {
+ return createNodeAdapter();
+ }
+ @Override
+ public Adapter caseCompositeNode(CompositeNode object) {
+ return createCompositeNodeAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the target.
+ *
+ *
+ * @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 org.eclipse.xpand3.internal.parser.xpand3node.FileNode File Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.FileNode
+ * @generated
+ */
+ public Adapter createFileNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.NsImportNode Ns Import Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.NsImportNode
+ * @generated
+ */
+ public Adapter createNsImportNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.DefinitionNode Definition Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.DefinitionNode
+ * @generated
+ */
+ public Adapter createDefinitionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.DefinitionAroundNode Definition Around Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.DefinitionAroundNode
+ * @generated
+ */
+ public Adapter createDefinitionAroundNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.SequenceNode Sequence Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.SequenceNode
+ * @generated
+ */
+ public Adapter createSequenceNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.TextSequenceNode Text Sequence Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.TextSequenceNode
+ * @generated
+ */
+ public Adapter createTextSequenceNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.TextNode Text Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.TextNode
+ * @generated
+ */
+ public Adapter createTextNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ErrorStatementNode Error Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ErrorStatementNode
+ * @generated
+ */
+ public Adapter createErrorStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ExpandStatementNode Expand Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ExpandStatementNode
+ * @generated
+ */
+ public Adapter createExpandStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ExpressionStmtNode Expression Stmt Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ExpressionStmtNode
+ * @generated
+ */
+ public Adapter createExpressionStmtNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.FileStatementNode File Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.FileStatementNode
+ * @generated
+ */
+ public Adapter createFileStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ForeachStatementNode Foreach Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ForeachStatementNode
+ * @generated
+ */
+ public Adapter createForeachStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.IfStatementNode If Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.IfStatementNode
+ * @generated
+ */
+ public Adapter createIfStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ElseIfStatementNode Else If Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ElseIfStatementNode
+ * @generated
+ */
+ public Adapter createElseIfStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ElseStatementNode Else Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ElseStatementNode
+ * @generated
+ */
+ public Adapter createElseStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.LetStatementNode Let Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.LetStatementNode
+ * @generated
+ */
+ public Adapter createLetStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ProtectStatementNode Protect Statement Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ProtectStatementNode
+ * @generated
+ */
+ public Adapter createProtectStatementNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.CheckNode Check Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.CheckNode
+ * @generated
+ */
+ public Adapter createCheckNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.AroundNode Around Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.AroundNode
+ * @generated
+ */
+ public Adapter createAroundNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.PointcutNode Pointcut Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.PointcutNode
+ * @generated
+ */
+ public Adapter createPointcutNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ExtensionNode Extension Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ExtensionNode
+ * @generated
+ */
+ public Adapter createExtensionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.JavaTypeNode Java Type Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.JavaTypeNode
+ * @generated
+ */
+ public Adapter createJavaTypeNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.Test_expressionNode Test expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.Test_expressionNode
+ * @generated
+ */
+ public Adapter createTest_expressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ExpressionNode Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ExpressionNode
+ * @generated
+ */
+ public Adapter createExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.LetExpressionNode Let Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.LetExpressionNode
+ * @generated
+ */
+ public Adapter createLetExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.CastedExpressionNode Casted Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.CastedExpressionNode
+ * @generated
+ */
+ public Adapter createCastedExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ChainExpressionNode Chain Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ChainExpressionNode
+ * @generated
+ */
+ public Adapter createChainExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.IfExpressionNode If Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.IfExpressionNode
+ * @generated
+ */
+ public Adapter createIfExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.SwitchExpressionNode Switch Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.SwitchExpressionNode
+ * @generated
+ */
+ public Adapter createSwitchExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.CasePartNode Case Part Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.CasePartNode
+ * @generated
+ */
+ public Adapter createCasePartNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.OrExpressionNode Or Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.OrExpressionNode
+ * @generated
+ */
+ public Adapter createOrExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.AndExpressionNode And Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.AndExpressionNode
+ * @generated
+ */
+ public Adapter createAndExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ImpliesExpressionNode Implies Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ImpliesExpressionNode
+ * @generated
+ */
+ public Adapter createImpliesExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.RelationalExpressionNode Relational Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.RelationalExpressionNode
+ * @generated
+ */
+ public Adapter createRelationalExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.AdditiveExpressionNode Additive Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.AdditiveExpressionNode
+ * @generated
+ */
+ public Adapter createAdditiveExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.MultiplicativeExpressionNode Multiplicative Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.MultiplicativeExpressionNode
+ * @generated
+ */
+ public Adapter createMultiplicativeExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.UnaryExpressionNode Unary Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.UnaryExpressionNode
+ * @generated
+ */
+ public Adapter createUnaryExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.InfixExpressionNode Infix Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.InfixExpressionNode
+ * @generated
+ */
+ public Adapter createInfixExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.StringLiteralNode String Literal Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.StringLiteralNode
+ * @generated
+ */
+ public Adapter createStringLiteralNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ParanthesizedExpressionNode Paranthesized Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ParanthesizedExpressionNode
+ * @generated
+ */
+ public Adapter createParanthesizedExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.GlobalVarExpressionNode Global Var Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.GlobalVarExpressionNode
+ * @generated
+ */
+ public Adapter createGlobalVarExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.FeatureCallNode Feature Call Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.FeatureCallNode
+ * @generated
+ */
+ public Adapter createFeatureCallNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ListLiteralNode List Literal Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ListLiteralNode
+ * @generated
+ */
+ public Adapter createListLiteralNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ConstructorCallNode Constructor Call Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ConstructorCallNode
+ * @generated
+ */
+ public Adapter createConstructorCallNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.BooleanLiteralNode Boolean Literal Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.BooleanLiteralNode
+ * @generated
+ */
+ public Adapter createBooleanLiteralNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.NullLiteralNode Null Literal Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.NullLiteralNode
+ * @generated
+ */
+ public Adapter createNullLiteralNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.NumberLiteralNode Number Literal Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.NumberLiteralNode
+ * @generated
+ */
+ public Adapter createNumberLiteralNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.CollectionExpressionNode Collection Expression Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.CollectionExpressionNode
+ * @generated
+ */
+ public Adapter createCollectionExpressionNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.DeclaredParameterListNode Declared Parameter List Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.DeclaredParameterListNode
+ * @generated
+ */
+ public Adapter createDeclaredParameterListNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.DeclaredParameterNode Declared Parameter Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.DeclaredParameterNode
+ * @generated
+ */
+ public Adapter createDeclaredParameterNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.ParameterListNode Parameter List Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.ParameterListNode
+ * @generated
+ */
+ public Adapter createParameterListNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.CollectionTypeNode Collection Type Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.CollectionTypeNode
+ * @generated
+ */
+ public Adapter createCollectionTypeNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.SimpleTypeNode Simple Type Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.SimpleTypeNode
+ * @generated
+ */
+ public Adapter createSimpleTypeNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.internal.parser.xpand3node.IdentifierNode Identifier Node}'.
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.IdentifierNode
+ * @generated
+ */
+ public Adapter createIdentifierNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.tmf.common.node.Node Node}'.
+ *
+ * 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 org.eclipse.tmf.common.node.Node
+ * @generated
+ */
+ public Adapter createNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.tmf.common.node.CompositeNode Composite Node}'.
+ *
+ * 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 org.eclipse.tmf.common.node.CompositeNode
+ * @generated
+ */
+ public Adapter createCompositeNodeAdapter() {
+ 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;
+ }
+
+} //Xpand3nodeAdapterFactory
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeSwitch.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeSwitch.java
new file mode 100644
index 00000000..582dc55c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeSwitch.java
@@ -0,0 +1,1384 @@
+/**
+ *
+ *
+ *
+ * $Id: Xpand3nodeSwitch.java,v 1.1 2008/03/06 08:55:16 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.tmf.common.node.CompositeNode;
+import org.eclipse.tmf.common.node.Node;
+
+import org.eclipse.xpand3.internal.parser.xpand3node.*;
+
+/**
+ *
+ * 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 org.eclipse.xpand3.internal.parser.xpand3node.Xpand3nodePackage
+ * @generated
+ */
+public class Xpand3nodeSwitch {
+ /**
+ * The cached model package
+ *
+ *
+ * @generated
+ */
+ protected static Xpand3nodePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ *
+ *
+ * @generated
+ */
+ public Xpand3nodeSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Xpand3nodePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls caseXXX 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
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls caseXXX 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
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls caseXXX 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
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Xpand3nodePackage.FILE_NODE: {
+ FileNode fileNode = (FileNode)theEObject;
+ T result = caseFileNode(fileNode);
+ if (result == null) result = caseCompositeNode(fileNode);
+ if (result == null) result = caseNode(fileNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.NS_IMPORT_NODE: {
+ NsImportNode nsImportNode = (NsImportNode)theEObject;
+ T result = caseNsImportNode(nsImportNode);
+ if (result == null) result = caseCompositeNode(nsImportNode);
+ if (result == null) result = caseNode(nsImportNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.DEFINITION_NODE: {
+ DefinitionNode definitionNode = (DefinitionNode)theEObject;
+ T result = caseDefinitionNode(definitionNode);
+ if (result == null) result = caseCompositeNode(definitionNode);
+ if (result == null) result = caseNode(definitionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.DEFINITION_AROUND_NODE: {
+ DefinitionAroundNode definitionAroundNode = (DefinitionAroundNode)theEObject;
+ T result = caseDefinitionAroundNode(definitionAroundNode);
+ if (result == null) result = caseCompositeNode(definitionAroundNode);
+ if (result == null) result = caseNode(definitionAroundNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.SEQUENCE_NODE: {
+ SequenceNode sequenceNode = (SequenceNode)theEObject;
+ T result = caseSequenceNode(sequenceNode);
+ if (result == null) result = caseCompositeNode(sequenceNode);
+ if (result == null) result = caseNode(sequenceNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.TEXT_SEQUENCE_NODE: {
+ TextSequenceNode textSequenceNode = (TextSequenceNode)theEObject;
+ T result = caseTextSequenceNode(textSequenceNode);
+ if (result == null) result = caseCompositeNode(textSequenceNode);
+ if (result == null) result = caseNode(textSequenceNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.TEXT_NODE: {
+ TextNode textNode = (TextNode)theEObject;
+ T result = caseTextNode(textNode);
+ if (result == null) result = caseCompositeNode(textNode);
+ if (result == null) result = caseNode(textNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.ERROR_STATEMENT_NODE: {
+ ErrorStatementNode errorStatementNode = (ErrorStatementNode)theEObject;
+ T result = caseErrorStatementNode(errorStatementNode);
+ if (result == null) result = caseCompositeNode(errorStatementNode);
+ if (result == null) result = caseNode(errorStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.EXPAND_STATEMENT_NODE: {
+ ExpandStatementNode expandStatementNode = (ExpandStatementNode)theEObject;
+ T result = caseExpandStatementNode(expandStatementNode);
+ if (result == null) result = caseCompositeNode(expandStatementNode);
+ if (result == null) result = caseNode(expandStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.EXPRESSION_STMT_NODE: {
+ ExpressionStmtNode expressionStmtNode = (ExpressionStmtNode)theEObject;
+ T result = caseExpressionStmtNode(expressionStmtNode);
+ if (result == null) result = caseCompositeNode(expressionStmtNode);
+ if (result == null) result = caseNode(expressionStmtNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.FILE_STATEMENT_NODE: {
+ FileStatementNode fileStatementNode = (FileStatementNode)theEObject;
+ T result = caseFileStatementNode(fileStatementNode);
+ if (result == null) result = caseCompositeNode(fileStatementNode);
+ if (result == null) result = caseNode(fileStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.FOREACH_STATEMENT_NODE: {
+ ForeachStatementNode foreachStatementNode = (ForeachStatementNode)theEObject;
+ T result = caseForeachStatementNode(foreachStatementNode);
+ if (result == null) result = caseCompositeNode(foreachStatementNode);
+ if (result == null) result = caseNode(foreachStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.IF_STATEMENT_NODE: {
+ IfStatementNode ifStatementNode = (IfStatementNode)theEObject;
+ T result = caseIfStatementNode(ifStatementNode);
+ if (result == null) result = caseCompositeNode(ifStatementNode);
+ if (result == null) result = caseNode(ifStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.ELSE_IF_STATEMENT_NODE: {
+ ElseIfStatementNode elseIfStatementNode = (ElseIfStatementNode)theEObject;
+ T result = caseElseIfStatementNode(elseIfStatementNode);
+ if (result == null) result = caseCompositeNode(elseIfStatementNode);
+ if (result == null) result = caseNode(elseIfStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.ELSE_STATEMENT_NODE: {
+ ElseStatementNode elseStatementNode = (ElseStatementNode)theEObject;
+ T result = caseElseStatementNode(elseStatementNode);
+ if (result == null) result = caseCompositeNode(elseStatementNode);
+ if (result == null) result = caseNode(elseStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.LET_STATEMENT_NODE: {
+ LetStatementNode letStatementNode = (LetStatementNode)theEObject;
+ T result = caseLetStatementNode(letStatementNode);
+ if (result == null) result = caseCompositeNode(letStatementNode);
+ if (result == null) result = caseNode(letStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.PROTECT_STATEMENT_NODE: {
+ ProtectStatementNode protectStatementNode = (ProtectStatementNode)theEObject;
+ T result = caseProtectStatementNode(protectStatementNode);
+ if (result == null) result = caseCompositeNode(protectStatementNode);
+ if (result == null) result = caseNode(protectStatementNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.CHECK_NODE: {
+ CheckNode checkNode = (CheckNode)theEObject;
+ T result = caseCheckNode(checkNode);
+ if (result == null) result = caseCompositeNode(checkNode);
+ if (result == null) result = caseNode(checkNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.AROUND_NODE: {
+ AroundNode aroundNode = (AroundNode)theEObject;
+ T result = caseAroundNode(aroundNode);
+ if (result == null) result = caseCompositeNode(aroundNode);
+ if (result == null) result = caseNode(aroundNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.POINTCUT_NODE: {
+ PointcutNode pointcutNode = (PointcutNode)theEObject;
+ T result = casePointcutNode(pointcutNode);
+ if (result == null) result = caseCompositeNode(pointcutNode);
+ if (result == null) result = caseNode(pointcutNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.EXTENSION_NODE: {
+ ExtensionNode extensionNode = (ExtensionNode)theEObject;
+ T result = caseExtensionNode(extensionNode);
+ if (result == null) result = caseCompositeNode(extensionNode);
+ if (result == null) result = caseNode(extensionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.JAVA_TYPE_NODE: {
+ JavaTypeNode javaTypeNode = (JavaTypeNode)theEObject;
+ T result = caseJavaTypeNode(javaTypeNode);
+ if (result == null) result = caseCompositeNode(javaTypeNode);
+ if (result == null) result = caseNode(javaTypeNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.TEST_EXPRESSION_NODE: {
+ Test_expressionNode test_expressionNode = (Test_expressionNode)theEObject;
+ T result = caseTest_expressionNode(test_expressionNode);
+ if (result == null) result = caseCompositeNode(test_expressionNode);
+ if (result == null) result = caseNode(test_expressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.EXPRESSION_NODE: {
+ ExpressionNode expressionNode = (ExpressionNode)theEObject;
+ T result = caseExpressionNode(expressionNode);
+ if (result == null) result = caseCompositeNode(expressionNode);
+ if (result == null) result = caseNode(expressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.LET_EXPRESSION_NODE: {
+ LetExpressionNode letExpressionNode = (LetExpressionNode)theEObject;
+ T result = caseLetExpressionNode(letExpressionNode);
+ if (result == null) result = caseCompositeNode(letExpressionNode);
+ if (result == null) result = caseNode(letExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.CASTED_EXPRESSION_NODE: {
+ CastedExpressionNode castedExpressionNode = (CastedExpressionNode)theEObject;
+ T result = caseCastedExpressionNode(castedExpressionNode);
+ if (result == null) result = caseCompositeNode(castedExpressionNode);
+ if (result == null) result = caseNode(castedExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.CHAIN_EXPRESSION_NODE: {
+ ChainExpressionNode chainExpressionNode = (ChainExpressionNode)theEObject;
+ T result = caseChainExpressionNode(chainExpressionNode);
+ if (result == null) result = caseCompositeNode(chainExpressionNode);
+ if (result == null) result = caseNode(chainExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.IF_EXPRESSION_NODE: {
+ IfExpressionNode ifExpressionNode = (IfExpressionNode)theEObject;
+ T result = caseIfExpressionNode(ifExpressionNode);
+ if (result == null) result = caseCompositeNode(ifExpressionNode);
+ if (result == null) result = caseNode(ifExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.SWITCH_EXPRESSION_NODE: {
+ SwitchExpressionNode switchExpressionNode = (SwitchExpressionNode)theEObject;
+ T result = caseSwitchExpressionNode(switchExpressionNode);
+ if (result == null) result = caseCompositeNode(switchExpressionNode);
+ if (result == null) result = caseNode(switchExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.CASE_PART_NODE: {
+ CasePartNode casePartNode = (CasePartNode)theEObject;
+ T result = caseCasePartNode(casePartNode);
+ if (result == null) result = caseCompositeNode(casePartNode);
+ if (result == null) result = caseNode(casePartNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.OR_EXPRESSION_NODE: {
+ OrExpressionNode orExpressionNode = (OrExpressionNode)theEObject;
+ T result = caseOrExpressionNode(orExpressionNode);
+ if (result == null) result = caseCompositeNode(orExpressionNode);
+ if (result == null) result = caseNode(orExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.AND_EXPRESSION_NODE: {
+ AndExpressionNode andExpressionNode = (AndExpressionNode)theEObject;
+ T result = caseAndExpressionNode(andExpressionNode);
+ if (result == null) result = caseCompositeNode(andExpressionNode);
+ if (result == null) result = caseNode(andExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.IMPLIES_EXPRESSION_NODE: {
+ ImpliesExpressionNode impliesExpressionNode = (ImpliesExpressionNode)theEObject;
+ T result = caseImpliesExpressionNode(impliesExpressionNode);
+ if (result == null) result = caseCompositeNode(impliesExpressionNode);
+ if (result == null) result = caseNode(impliesExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.RELATIONAL_EXPRESSION_NODE: {
+ RelationalExpressionNode relationalExpressionNode = (RelationalExpressionNode)theEObject;
+ T result = caseRelationalExpressionNode(relationalExpressionNode);
+ if (result == null) result = caseCompositeNode(relationalExpressionNode);
+ if (result == null) result = caseNode(relationalExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.ADDITIVE_EXPRESSION_NODE: {
+ AdditiveExpressionNode additiveExpressionNode = (AdditiveExpressionNode)theEObject;
+ T result = caseAdditiveExpressionNode(additiveExpressionNode);
+ if (result == null) result = caseCompositeNode(additiveExpressionNode);
+ if (result == null) result = caseNode(additiveExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.MULTIPLICATIVE_EXPRESSION_NODE: {
+ MultiplicativeExpressionNode multiplicativeExpressionNode = (MultiplicativeExpressionNode)theEObject;
+ T result = caseMultiplicativeExpressionNode(multiplicativeExpressionNode);
+ if (result == null) result = caseCompositeNode(multiplicativeExpressionNode);
+ if (result == null) result = caseNode(multiplicativeExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.UNARY_EXPRESSION_NODE: {
+ UnaryExpressionNode unaryExpressionNode = (UnaryExpressionNode)theEObject;
+ T result = caseUnaryExpressionNode(unaryExpressionNode);
+ if (result == null) result = caseCompositeNode(unaryExpressionNode);
+ if (result == null) result = caseNode(unaryExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.INFIX_EXPRESSION_NODE: {
+ InfixExpressionNode infixExpressionNode = (InfixExpressionNode)theEObject;
+ T result = caseInfixExpressionNode(infixExpressionNode);
+ if (result == null) result = caseCompositeNode(infixExpressionNode);
+ if (result == null) result = caseNode(infixExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.STRING_LITERAL_NODE: {
+ StringLiteralNode stringLiteralNode = (StringLiteralNode)theEObject;
+ T result = caseStringLiteralNode(stringLiteralNode);
+ if (result == null) result = caseCompositeNode(stringLiteralNode);
+ if (result == null) result = caseNode(stringLiteralNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.PARANTHESIZED_EXPRESSION_NODE: {
+ ParanthesizedExpressionNode paranthesizedExpressionNode = (ParanthesizedExpressionNode)theEObject;
+ T result = caseParanthesizedExpressionNode(paranthesizedExpressionNode);
+ if (result == null) result = caseCompositeNode(paranthesizedExpressionNode);
+ if (result == null) result = caseNode(paranthesizedExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.GLOBAL_VAR_EXPRESSION_NODE: {
+ GlobalVarExpressionNode globalVarExpressionNode = (GlobalVarExpressionNode)theEObject;
+ T result = caseGlobalVarExpressionNode(globalVarExpressionNode);
+ if (result == null) result = caseCompositeNode(globalVarExpressionNode);
+ if (result == null) result = caseNode(globalVarExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.FEATURE_CALL_NODE: {
+ FeatureCallNode featureCallNode = (FeatureCallNode)theEObject;
+ T result = caseFeatureCallNode(featureCallNode);
+ if (result == null) result = caseCompositeNode(featureCallNode);
+ if (result == null) result = caseNode(featureCallNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.LIST_LITERAL_NODE: {
+ ListLiteralNode listLiteralNode = (ListLiteralNode)theEObject;
+ T result = caseListLiteralNode(listLiteralNode);
+ if (result == null) result = caseCompositeNode(listLiteralNode);
+ if (result == null) result = caseNode(listLiteralNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.CONSTRUCTOR_CALL_NODE: {
+ ConstructorCallNode constructorCallNode = (ConstructorCallNode)theEObject;
+ T result = caseConstructorCallNode(constructorCallNode);
+ if (result == null) result = caseCompositeNode(constructorCallNode);
+ if (result == null) result = caseNode(constructorCallNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.BOOLEAN_LITERAL_NODE: {
+ BooleanLiteralNode booleanLiteralNode = (BooleanLiteralNode)theEObject;
+ T result = caseBooleanLiteralNode(booleanLiteralNode);
+ if (result == null) result = caseCompositeNode(booleanLiteralNode);
+ if (result == null) result = caseNode(booleanLiteralNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.NULL_LITERAL_NODE: {
+ NullLiteralNode nullLiteralNode = (NullLiteralNode)theEObject;
+ T result = caseNullLiteralNode(nullLiteralNode);
+ if (result == null) result = caseCompositeNode(nullLiteralNode);
+ if (result == null) result = caseNode(nullLiteralNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.NUMBER_LITERAL_NODE: {
+ NumberLiteralNode numberLiteralNode = (NumberLiteralNode)theEObject;
+ T result = caseNumberLiteralNode(numberLiteralNode);
+ if (result == null) result = caseCompositeNode(numberLiteralNode);
+ if (result == null) result = caseNode(numberLiteralNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.COLLECTION_EXPRESSION_NODE: {
+ CollectionExpressionNode collectionExpressionNode = (CollectionExpressionNode)theEObject;
+ T result = caseCollectionExpressionNode(collectionExpressionNode);
+ if (result == null) result = caseCompositeNode(collectionExpressionNode);
+ if (result == null) result = caseNode(collectionExpressionNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.DECLARED_PARAMETER_LIST_NODE: {
+ DeclaredParameterListNode declaredParameterListNode = (DeclaredParameterListNode)theEObject;
+ T result = caseDeclaredParameterListNode(declaredParameterListNode);
+ if (result == null) result = caseCompositeNode(declaredParameterListNode);
+ if (result == null) result = caseNode(declaredParameterListNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.DECLARED_PARAMETER_NODE: {
+ DeclaredParameterNode declaredParameterNode = (DeclaredParameterNode)theEObject;
+ T result = caseDeclaredParameterNode(declaredParameterNode);
+ if (result == null) result = caseCompositeNode(declaredParameterNode);
+ if (result == null) result = caseNode(declaredParameterNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.PARAMETER_LIST_NODE: {
+ ParameterListNode parameterListNode = (ParameterListNode)theEObject;
+ T result = caseParameterListNode(parameterListNode);
+ if (result == null) result = caseCompositeNode(parameterListNode);
+ if (result == null) result = caseNode(parameterListNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.COLLECTION_TYPE_NODE: {
+ CollectionTypeNode collectionTypeNode = (CollectionTypeNode)theEObject;
+ T result = caseCollectionTypeNode(collectionTypeNode);
+ if (result == null) result = caseCompositeNode(collectionTypeNode);
+ if (result == null) result = caseNode(collectionTypeNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.SIMPLE_TYPE_NODE: {
+ SimpleTypeNode simpleTypeNode = (SimpleTypeNode)theEObject;
+ T result = caseSimpleTypeNode(simpleTypeNode);
+ if (result == null) result = caseCompositeNode(simpleTypeNode);
+ if (result == null) result = caseNode(simpleTypeNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Xpand3nodePackage.IDENTIFIER_NODE: {
+ IdentifierNode identifierNode = (IdentifierNode)theEObject;
+ T result = caseIdentifierNode(identifierNode);
+ if (result == null) result = caseCompositeNode(identifierNode);
+ if (result == null) result = caseNode(identifierNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'File Node'.
+ *
+ * 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 'File Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFileNode(FileNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Ns Import Node'.
+ *
+ * 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 'Ns Import Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNsImportNode(NsImportNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Definition Node'.
+ *
+ * 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 'Definition Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDefinitionNode(DefinitionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Definition Around Node'.
+ *
+ * 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 'Definition Around Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDefinitionAroundNode(DefinitionAroundNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Sequence Node'.
+ *
+ * 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 'Sequence Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequenceNode(SequenceNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Text Sequence Node'.
+ *
+ * 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 'Text Sequence Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextSequenceNode(TextSequenceNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Text Node'.
+ *
+ * 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 'Text Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextNode(TextNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Error Statement Node'.
+ *
+ * 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 'Error Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseErrorStatementNode(ErrorStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Expand Statement Node'.
+ *
+ * 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 'Expand Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExpandStatementNode(ExpandStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Expression Stmt Node'.
+ *
+ * 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 Stmt Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExpressionStmtNode(ExpressionStmtNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'File Statement Node'.
+ *
+ * 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 'File Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFileStatementNode(FileStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Foreach Statement Node'.
+ *
+ * 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 'Foreach Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseForeachStatementNode(ForeachStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'If Statement Node'.
+ *
+ * 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 Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIfStatementNode(IfStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Else If Statement Node'.
+ *
+ * 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 'Else If Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElseIfStatementNode(ElseIfStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Else Statement Node'.
+ *
+ * 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 'Else Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElseStatementNode(ElseStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Let Statement Node'.
+ *
+ * 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 'Let Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLetStatementNode(LetStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Protect Statement Node'.
+ *
+ * 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 'Protect Statement Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProtectStatementNode(ProtectStatementNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Check Node'.
+ *
+ * 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 'Check Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCheckNode(CheckNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Around Node'.
+ *
+ * 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 'Around Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAroundNode(AroundNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Pointcut Node'.
+ *
+ * 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 'Pointcut Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePointcutNode(PointcutNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Extension Node'.
+ *
+ * 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 'Extension Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExtensionNode(ExtensionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Java Type Node'.
+ *
+ * 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 'Java Type Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaTypeNode(JavaTypeNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Test expression Node'.
+ *
+ * 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 'Test expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTest_expressionNode(Test_expressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Expression Node'.
+ *
+ * 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 Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExpressionNode(ExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Let Expression Node'.
+ *
+ * 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 'Let Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLetExpressionNode(LetExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Casted Expression Node'.
+ *
+ * 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 'Casted Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCastedExpressionNode(CastedExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Chain Expression Node'.
+ *
+ * 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 'Chain Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseChainExpressionNode(ChainExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'If Expression Node'.
+ *
+ * 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 Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIfExpressionNode(IfExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Switch Expression Node'.
+ *
+ * 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 Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSwitchExpressionNode(SwitchExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Case Part Node'.
+ *
+ * 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 Part Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCasePartNode(CasePartNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Or Expression Node'.
+ *
+ * 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 'Or Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOrExpressionNode(OrExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'And Expression Node'.
+ *
+ * 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 'And Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAndExpressionNode(AndExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Implies Expression Node'.
+ *
+ * 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 'Implies Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseImpliesExpressionNode(ImpliesExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Relational Expression Node'.
+ *
+ * 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 'Relational Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRelationalExpressionNode(RelationalExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Additive Expression Node'.
+ *
+ * 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 'Additive Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdditiveExpressionNode(AdditiveExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Multiplicative Expression Node'.
+ *
+ * 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 'Multiplicative Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiplicativeExpressionNode(MultiplicativeExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Unary Expression Node'.
+ *
+ * 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 'Unary Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnaryExpressionNode(UnaryExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Infix Expression Node'.
+ *
+ * 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 'Infix Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInfixExpressionNode(InfixExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'String Literal Node'.
+ *
+ * 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 Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStringLiteralNode(StringLiteralNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Paranthesized Expression Node'.
+ *
+ * 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 'Paranthesized Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParanthesizedExpressionNode(ParanthesizedExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Global Var Expression Node'.
+ *
+ * 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 'Global Var Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGlobalVarExpressionNode(GlobalVarExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Feature Call Node'.
+ *
+ * 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 Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeatureCallNode(FeatureCallNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'List Literal Node'.
+ *
+ * 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 'List Literal Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseListLiteralNode(ListLiteralNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Constructor Call Node'.
+ *
+ * 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 'Constructor Call Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstructorCallNode(ConstructorCallNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Boolean Literal Node'.
+ *
+ * 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 'Boolean Literal Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBooleanLiteralNode(BooleanLiteralNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Null Literal Node'.
+ *
+ * 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 'Null Literal Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNullLiteralNode(NullLiteralNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Number Literal Node'.
+ *
+ * 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 Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNumberLiteralNode(NumberLiteralNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Collection Expression Node'.
+ *
+ * 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 'Collection Expression Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCollectionExpressionNode(CollectionExpressionNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Declared Parameter List Node'.
+ *
+ * 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 'Declared Parameter List Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredParameterListNode(DeclaredParameterListNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Declared Parameter Node'.
+ *
+ * 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 'Declared Parameter Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredParameterNode(DeclaredParameterNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Parameter List Node'.
+ *
+ * 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 'Parameter List Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParameterListNode(ParameterListNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Collection Type Node'.
+ *
+ * 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 'Collection Type Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCollectionTypeNode(CollectionTypeNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Simple Type Node'.
+ *
+ * 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 'Simple Type Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSimpleTypeNode(SimpleTypeNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Identifier Node'.
+ *
+ * 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 'Identifier Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIdentifierNode(IdentifierNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Node'.
+ *
+ * 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 'Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNode(Node object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Composite Node'.
+ *
+ * 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 'Composite Node'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompositeNode(CompositeNode 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
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Xpand3nodeSwitch
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AdditiveExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AdditiveExpressionNodeValidator.java
new file mode 100644
index 00000000..e7de1de1
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AdditiveExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: AdditiveExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.AdditiveExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface AdditiveExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AndExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AndExpressionNodeValidator.java
new file mode 100644
index 00000000..63946ea9
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AndExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: AndExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.AndExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface AndExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AroundNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AroundNodeValidator.java
new file mode 100644
index 00000000..f61a3103
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AroundNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: AroundNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.AroundNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface AroundNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/BooleanLiteralNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/BooleanLiteralNodeValidator.java
new file mode 100644
index 00000000..48599f75
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/BooleanLiteralNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: BooleanLiteralNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.BooleanLiteralNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface BooleanLiteralNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CasePartNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CasePartNodeValidator.java
new file mode 100644
index 00000000..2555f3d9
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CasePartNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: CasePartNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.CasePartNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CasePartNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CastedExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CastedExpressionNodeValidator.java
new file mode 100644
index 00000000..0d2a08a8
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CastedExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: CastedExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.CastedExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CastedExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ChainExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ChainExpressionNodeValidator.java
new file mode 100644
index 00000000..b54904eb
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ChainExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ChainExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ChainExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ChainExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CheckNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CheckNodeValidator.java
new file mode 100644
index 00000000..861c8aee
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CheckNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: CheckNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.CheckNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CheckNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionExpressionNodeValidator.java
new file mode 100644
index 00000000..1582b75b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: CollectionExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.CollectionExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CollectionExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionTypeNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionTypeNodeValidator.java
new file mode 100644
index 00000000..e2f2f528
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionTypeNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: CollectionTypeNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.CollectionTypeNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface CollectionTypeNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ConstructorCallNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ConstructorCallNodeValidator.java
new file mode 100644
index 00000000..50134324
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ConstructorCallNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ConstructorCallNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ConstructorCallNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ConstructorCallNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterListNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterListNodeValidator.java
new file mode 100644
index 00000000..f1100c7d
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterListNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: DeclaredParameterListNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.DeclaredParameterListNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredParameterListNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterNodeValidator.java
new file mode 100644
index 00000000..f2f2a83a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: DeclaredParameterNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.DeclaredParameterNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredParameterNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionAroundNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionAroundNodeValidator.java
new file mode 100644
index 00000000..291ecf0d
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionAroundNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: DefinitionAroundNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.DefinitionAroundNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DefinitionAroundNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionNodeValidator.java
new file mode 100644
index 00000000..1bd9a09b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionNodeValidator.java
@@ -0,0 +1,21 @@
+/**
+ *
+ *
+ *
+ * $Id: DefinitionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+import org.eclipse.tmf.common.node.CompositeNode;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.DefinitionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DefinitionNodeValidator {
+ boolean validate();
+
+ boolean validateName(CompositeNode value);
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseIfStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseIfStatementNodeValidator.java
new file mode 100644
index 00000000..e4db74b3
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseIfStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ElseIfStatementNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ElseIfStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ElseIfStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseStatementNodeValidator.java
new file mode 100644
index 00000000..4081d10c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ElseStatementNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ElseStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ElseStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ErrorStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ErrorStatementNodeValidator.java
new file mode 100644
index 00000000..51e8bba4
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ErrorStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ErrorStatementNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ErrorStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ErrorStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpandStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpandStatementNodeValidator.java
new file mode 100644
index 00000000..a2cf2b3f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpandStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ExpandStatementNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ExpandStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ExpandStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionNodeValidator.java
new file mode 100644
index 00000000..10f195a4
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionStmtNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionStmtNodeValidator.java
new file mode 100644
index 00000000..38c32a4a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionStmtNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ExpressionStmtNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ExpressionStmtNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ExpressionStmtNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExtensionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExtensionNodeValidator.java
new file mode 100644
index 00000000..68215545
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExtensionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ExtensionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ExtensionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ExtensionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FeatureCallNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FeatureCallNodeValidator.java
new file mode 100644
index 00000000..e828a348
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FeatureCallNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: FeatureCallNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.FeatureCallNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FeatureCallNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileNodeValidator.java
new file mode 100644
index 00000000..ff8451fd
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileNodeValidator.java
@@ -0,0 +1,24 @@
+/**
+ *
+ *
+ *
+ * $Id: FileNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.tmf.common.node.CompositeNode;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.FileNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FileNodeValidator {
+ boolean validate();
+
+ boolean validateDecl(EList value);
+ boolean validateImp(EList value);
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileStatementNodeValidator.java
new file mode 100644
index 00000000..05a4d2e7
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: FileStatementNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.FileStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FileStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ForeachStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ForeachStatementNodeValidator.java
new file mode 100644
index 00000000..1ac1b596
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ForeachStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ForeachStatementNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ForeachStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ForeachStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/GlobalVarExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/GlobalVarExpressionNodeValidator.java
new file mode 100644
index 00000000..41d540c8
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/GlobalVarExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: GlobalVarExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.GlobalVarExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface GlobalVarExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IdentifierNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IdentifierNodeValidator.java
new file mode 100644
index 00000000..044c5383
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IdentifierNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: IdentifierNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.IdentifierNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface IdentifierNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfExpressionNodeValidator.java
new file mode 100644
index 00000000..f580ca7e
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: IfExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.IfExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface IfExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfStatementNodeValidator.java
new file mode 100644
index 00000000..4dd8fd5d
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: IfStatementNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.IfStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface IfStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ImpliesExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ImpliesExpressionNodeValidator.java
new file mode 100644
index 00000000..8715378b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ImpliesExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ImpliesExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ImpliesExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ImpliesExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/InfixExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/InfixExpressionNodeValidator.java
new file mode 100644
index 00000000..21f1bfc0
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/InfixExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: InfixExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.InfixExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface InfixExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/JavaTypeNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/JavaTypeNodeValidator.java
new file mode 100644
index 00000000..1ca2aad6
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/JavaTypeNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: JavaTypeNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.JavaTypeNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface JavaTypeNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetExpressionNodeValidator.java
new file mode 100644
index 00000000..cac50010
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: LetExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.LetExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface LetExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetStatementNodeValidator.java
new file mode 100644
index 00000000..016bd029
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: LetStatementNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.LetStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface LetStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ListLiteralNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ListLiteralNodeValidator.java
new file mode 100644
index 00000000..0fc1ad2e
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ListLiteralNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ListLiteralNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ListLiteralNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ListLiteralNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/MultiplicativeExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/MultiplicativeExpressionNodeValidator.java
new file mode 100644
index 00000000..015fe81f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/MultiplicativeExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: MultiplicativeExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.MultiplicativeExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface MultiplicativeExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NsImportNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NsImportNodeValidator.java
new file mode 100644
index 00000000..a79fd7d2
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NsImportNodeValidator.java
@@ -0,0 +1,21 @@
+/**
+ *
+ *
+ *
+ * $Id: NsImportNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+import org.eclipse.tmf.common.node.CompositeNode;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.NsImportNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface NsImportNodeValidator {
+ boolean validate();
+
+ boolean validateNs(CompositeNode value);
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NullLiteralNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NullLiteralNodeValidator.java
new file mode 100644
index 00000000..f499f50b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NullLiteralNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: NullLiteralNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.NullLiteralNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface NullLiteralNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NumberLiteralNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NumberLiteralNodeValidator.java
new file mode 100644
index 00000000..b9cba2dc
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NumberLiteralNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: NumberLiteralNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.NumberLiteralNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface NumberLiteralNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/OrExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/OrExpressionNodeValidator.java
new file mode 100644
index 00000000..63e1d014
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/OrExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: OrExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.OrExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface OrExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParameterListNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParameterListNodeValidator.java
new file mode 100644
index 00000000..eea85788
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParameterListNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ParameterListNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ParameterListNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ParameterListNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParanthesizedExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParanthesizedExpressionNodeValidator.java
new file mode 100644
index 00000000..1e5fc93c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParanthesizedExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ParanthesizedExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ParanthesizedExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ParanthesizedExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/PointcutNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/PointcutNodeValidator.java
new file mode 100644
index 00000000..16feaa39
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/PointcutNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: PointcutNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.PointcutNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface PointcutNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ProtectStatementNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ProtectStatementNodeValidator.java
new file mode 100644
index 00000000..d0b3d767
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ProtectStatementNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: ProtectStatementNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.ProtectStatementNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ProtectStatementNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/RelationalExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/RelationalExpressionNodeValidator.java
new file mode 100644
index 00000000..7541fbb2
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/RelationalExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: RelationalExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.RelationalExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface RelationalExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SequenceNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SequenceNodeValidator.java
new file mode 100644
index 00000000..c830f8fc
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SequenceNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: SequenceNodeValidator.java,v 1.1 2008/03/06 08:55:14 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.SequenceNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface SequenceNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SimpleTypeNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SimpleTypeNodeValidator.java
new file mode 100644
index 00000000..c58ac02a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SimpleTypeNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: SimpleTypeNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.SimpleTypeNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface SimpleTypeNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/StringLiteralNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/StringLiteralNodeValidator.java
new file mode 100644
index 00000000..98d55100
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/StringLiteralNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: StringLiteralNodeValidator.java,v 1.1 2008/03/06 08:55:11 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.StringLiteralNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface StringLiteralNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SwitchExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SwitchExpressionNodeValidator.java
new file mode 100644
index 00000000..6f480103
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SwitchExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: SwitchExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.SwitchExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface SwitchExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/Test_expressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/Test_expressionNodeValidator.java
new file mode 100644
index 00000000..574ea320
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/Test_expressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: Test_expressionNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.Test_expressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface Test_expressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextNodeValidator.java
new file mode 100644
index 00000000..a155043e
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: TextNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.TextNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface TextNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextSequenceNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextSequenceNodeValidator.java
new file mode 100644
index 00000000..e68d1acb
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextSequenceNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: TextSequenceNodeValidator.java,v 1.1 2008/03/06 08:55:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.TextSequenceNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface TextSequenceNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/UnaryExpressionNodeValidator.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/UnaryExpressionNodeValidator.java
new file mode 100644
index 00000000..7586bff0
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/UnaryExpressionNodeValidator.java
@@ -0,0 +1,19 @@
+/**
+ *
+ *
+ *
+ * $Id: UnaryExpressionNodeValidator.java,v 1.1 2008/03/06 08:55:12 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.internal.parser.xpand3node.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.internal.parser.xpand3node.UnaryExpressionNode}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface UnaryExpressionNodeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.parser/model/Xpand3.ecore b/plugins/org.eclipse.xpand3.parser/model/Xpand3.ecore
new file mode 100644
index 00000000..390ecd68
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/model/Xpand3.ecore
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.ecore b/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.ecore
new file mode 100644
index 00000000..48d83d34
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.ecore
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.genmodel b/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.genmodel
new file mode 100644
index 00000000..885ff990
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.genmodel
@@ -0,0 +1,72 @@
+
+
+ Xpand3Node.ecore
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.tmf b/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.tmf
new file mode 100644
index 00000000..e898c9fb
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/model/Xpand3Node.tmf
@@ -0,0 +1,438 @@
+grammar Xpand3Node;
+
+normalizable file :
+ (imp+=nsImport)*
+ (decl+=abstractDeclaration )*
+ EOF
+;
+
+nsImport:
+ LG 'IMPORT' ns=simpleType RG |
+ LG 'EXTENSION' ns=simpleType RG |
+ 'import' type ';' |
+ 'extension' type ('reexport')? ';'
+;
+
+abstract normalizable abstractDeclaration :
+ check |
+ around |
+ extension |
+ definition |
+ definitionAround
+;
+
+// XPAND start
+
+definition :
+ LG DEFINE name=identifier ('(' (declaredParameterList (','? '*')? | '*')? ')')? 'FOR' type
+ sequence
+ ENDDEFINE RG
+;
+
+definitionAround :
+ LG AROUND pointcut ('(' (declaredParameterList (','? '*')? | '*')? ')')? 'FOR' type
+ sequence
+ ENDAROUND RG
+;
+
+sequence :
+ textSequence
+ (statement
+ textSequence)*
+;
+
+abstract normalizable statement :
+ simpleStatement
+| fileStatement
+| foreachStatement
+| ifStatement
+| letStatement
+| protectStatement
+;
+
+normalizable textSequence :
+ text (text)*
+;
+
+text :
+ '-'? TEXT
+;
+
+abstract normalizable simpleStatement :
+ errorStatement
+| expandStatement
+| expressionStmt
+;
+
+errorStatement :
+ 'ERROR' expression
+;
+
+expandStatement :
+ 'EXPAND' simpleType ('(' parameterList ')')? (('FOR' expression)
+ | ('FOREACH'expression ('SEPARATOR' expression)?))?
+;
+
+expressionStmt :
+ expression
+;
+
+fileStatement :
+ 'FILE' expression (identifier)?
+ sequence
+ 'ENDFILE'
+;
+
+foreachStatement :
+ 'FOREACH' expression 'AS' identifier ('ITERATOR' identifier)? ('SEPARATOR' expression)?
+ sequence
+ 'ENDFOREACH'
+;
+
+ifStatement :
+ 'IF' expression
+ sequence
+ elseIfStatement*
+ elseStatement?
+ 'ENDIF'
+;
+
+elseIfStatement :
+ 'ELSEIF' expression
+ sequence
+;
+
+elseStatement :
+ 'ELSE'
+ sequence
+;
+
+letStatement :
+ 'LET' expression 'AS' identifier
+ sequence
+ 'ENDLET'
+;
+
+protectStatement :
+ 'PROTECT'
+ 'CSTART' expression
+ 'CEND' expression
+ 'ID' expression 'DISABLE'?
+ sequence
+ 'ENDPROTECT'
+;
+
+// Xtend start
+
+check :
+ 'context' type ('if' expression)? ('ERROR'|'WARNING') expression ':'
+ expression ';'
+;
+
+around :
+ 'around' pointcut '(' (declaredParameterList (','? '*')? | '*')? ')' ':'
+ expression ';'
+;
+
+pointcut :
+ ( '*'
+ |identifier)
+ ( '*'
+ |identifier
+ |'::' )*
+;
+
+extension :
+ ('private'|'cached'|'create')* type? identifier identifier? '(' declaredParameterList? ')' ':'
+ ('JAVA' javaType '.' identifier '('(javaType (',' javaType )*)? ')'|
+ expression )';'
+;
+
+javaType :
+ identifier
+ ('.' (identifier |'Collection' |
+ 'List' |'Set'))*
+;
+
+//
+// Expressions
+//
+
+normalizable test_expression:
+ expression EOF
+;
+
+normalizable expression :
+ letExpression
+;
+
+normalizable letExpression :
+ 'let' identifier '=' castedExpression ':' expression
+| castedExpression
+;
+
+normalizable castedExpression :
+ =>('(' type ')' chainExpression)
+ '(' type ')' chainExpression
+ | chainExpression
+;
+
+normalizable chainExpression :
+ ifExpression ( '->' ifExpression )*
+;
+
+normalizable ifExpression :
+ switchExpression ('?' expression ':' switchExpression )?
+| 'if' expression 'then' switchExpression ('else' switchExpression)?
+;
+
+normalizable switchExpression :
+ 'switch' ('(' orExpression ')')? '{'
+ casePart*
+ 'default' ':' orExpression
+ '}'
+| orExpression
+;
+
+casePart :
+ 'case' expression ':' expression;
+
+normalizable orExpression :
+ andExpression ('||' andExpression )*
+;
+
+normalizable andExpression :
+ impliesExpression ('&&' impliesExpression )*
+;
+
+normalizable impliesExpression :
+ relationalExpression ('implies' relationalExpression )*
+;
+
+normalizable relationalExpression :
+ additiveExpression
+ (('==' | '!=' | '>=' | '<=' | '>' | '<') additiveExpression )*
+;
+
+normalizable additiveExpression :
+ multiplicativeExpression
+ (('+'| '-') multiplicativeExpression )*
+;
+
+normalizable multiplicativeExpression :
+ unaryExpression
+ (('*' | '/') unaryExpression )*
+;
+
+
+normalizable unaryExpression :
+ infixExpression
+| '!' infixExpression
+| '-' infixExpression
+;
+
+normalizable infixExpression :
+ primaryExpression ( '.' featureCall )*
+;
+
+abstract normalizable primaryExpression :
+ stringLiteral
+| featureCall
+| booleanLiteral
+| numberLiteral
+| nullLiteral
+| listLiteral
+| constructorCall
+| globalVarExpression
+| paranthesizedExpression
+;
+
+stringLiteral :
+ StringLiteral
+;
+
+paranthesizedExpression :
+ '(' expression ')'
+;
+
+globalVarExpression :
+ 'GLOBALVAR' identifier ;
+
+normalizable featureCall :
+ identifier '(' (parameterList)? ')'
+| type
+| collectionExpression
+;
+
+listLiteral :
+ '{'(expression (',' expression)*)?'}'
+;
+
+constructorCall :
+ 'new' simpleType
+
+;
+
+booleanLiteral :
+ 'false'|'true'
+;
+
+nullLiteral :
+ 'null'
+;
+
+numberLiteral :
+ IntLiteral
+| IntLiteral '.' IntLiteral
+;
+
+collectionExpression :
+ 'typeSelect'
+ '(' type ')'
+
+ |('collect'
+ | 'select'
+ | 'selectFirst'
+ | 'reject'
+ | 'exists'
+ | 'notExists'
+ | 'sortBy'
+ | 'forAll') '(' (identifier '|')? expression ')'
+
+;
+
+// helper
+
+declaredParameterList :
+ declaredParameter (',' declaredParameter )*
+;
+
+declaredParameter :
+ type identifier
+;
+
+parameterList :
+ expression (',' expression )*
+;
+
+// type
+
+abstract normalizable type :
+ collectionType |
+ simpleType
+;
+
+collectionType :
+ ( 'Collection' | 'List' | 'Set' )
+ ('[' simpleType ']' )?
+;
+
+simpleType :
+ identifier
+ ('::' identifier )*
+;
+
+identifier :
+ Identifier
+;
+
+
+/////////////////////////////////////////
+// LEXER
+////////////////////////////////////////
+
+lexer IntLiteral :
+ <# ('0' | '1'..'9' '0'..'9'*) #>
+
+lexer StringLiteral :
+ <# '\"' ( EscapeSequence | ~('\\'|'\"') )* '\"'
+ | '\'' ( EscapeSequence | ~('\''|'\\') )* '\'' #>
+
+lexer fragment EscapeSequence :
+ <# '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+ | UnicodeEscape
+ | OctalEscape #>
+
+lexer fragment OctalEscape :
+ <# '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7') #>
+
+lexer fragment UnicodeEscape :
+ <# '\\' 'u' HexDigit HexDigit HexDigit HexDigit #>
+
+lexer fragment HexDigit :
+ <# ('0'..'9'|'a'..'f'|'A'..'F') #>
+
+lexer DEFINE :
+ <# {xpandMode=true;} 'DEFINE' #>
+
+lexer ENDDEFINE :
+ <# 'ENDDEFINE' {xpandMode=false;} #>
+
+lexer AROUND :
+ <# {xpandMode=true;}'AROUND' #>
+
+lexer ENDAROUND : <# 'ENDAROUND'{xpandMode=false;} #>
+
+lexer Identifier :
+ <# ('^')? Letter (Letter|JavaIDDigit)* #>
+
+lexer fragment Letter :
+ <# '\u0024' |
+ '\u0041'..'\u005a' |
+ '\u005f' |
+ '\u0061'..'\u007a' |
+ '\u00c0'..'\u00d6' |
+ '\u00d8'..'\u00f6' |
+ '\u00f8'..'\u00ff' |
+ '\u0100'..'\u1fff' |
+ '\u3040'..'\u318f' |
+ '\u3300'..'\u337f' |
+ '\u3400'..'\u3d2d' |
+ '\u4e00'..'\u9fff' |
+ '\uf900'..'\ufaff' #>
+
+lexer fragment JavaIDDigit :
+ <#
+ '\u0030'..'\u0039' |
+ '\u0660'..'\u0669' |
+ '\u06f0'..'\u06f9' |
+ '\u0966'..'\u096f' |
+ '\u09e6'..'\u09ef' |
+ '\u0a66'..'\u0a6f' |
+ '\u0ae6'..'\u0aef' |
+ '\u0b66'..'\u0b6f' |
+ '\u0be7'..'\u0bef' |
+ '\u0c66'..'\u0c6f' |
+ '\u0ce6'..'\u0cef' |
+ '\u0d66'..'\u0d6f' |
+ '\u0e50'..'\u0e59' |
+ '\u0ed0'..'\u0ed9' |
+ '\u1040'..'\u1049'
+ #>
+
+lexer WS :
+ <# (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;} #>
+
+lexer COMMENT :
+ <# '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;} #>
+
+lexer LINE_COMMENT :
+ <# '//' ~('\n'|'\r')* ('\r'? '\n'|EOF) {$channel=HIDDEN;} #>
+
+
+lexer REM_COMMENT_OUT :
+ <# {!xpandMode}?=> LG 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' RG {$channel=HIDDEN;} #>
+
+lexer REM_COMMENT :
+ <# {xpandMode}?=> 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' {$channel=HIDDEN;} #>
+
+lexer TEXT :
+ <# {xpandMode}?=> RG ~(LG)* (LG)? #>
+
+lexer LG :
+ <# '\u00AB' #>
+
+lexer RG :
+ <# '\u00BB' #>
diff --git a/plugins/org.eclipse.xpand3.parser/model/generator.oaw b/plugins/org.eclipse.xpand3.parser/model/generator.oaw
new file mode 100644
index 00000000..74d60382
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/model/generator.oaw
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand3.parser/model/generator.properties b/plugins/org.eclipse.xpand3.parser/model/generator.properties
new file mode 100644
index 00000000..e33ee405
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/model/generator.properties
@@ -0,0 +1,7 @@
+modelName=Xpand3Node
+modelFile=model/${modelName}.tmf
+targetRoot=.
+javaTargetDir=${targetRoot}/src-gen/org/eclipse/xpand3/parser
+modelTargetDir=${targetRoot}/model
+targetPackage=org.eclipse.xpand3.parser
+nodeTargetPackage=org.eclipse.xpand3.internal.parser.xpand3node
diff --git a/plugins/org.eclipse.xpand3.parser/plugin.properties b/plugins/org.eclipse.xpand3.parser/plugin.properties
new file mode 100644
index 00000000..26839d6f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/plugin.properties
@@ -0,0 +1,20 @@
+
+#
+#
+#
+# $Id: plugin.properties,v 1.1 2008/03/06 08:55:17 jkohnlein Exp $
+
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Xpand3 Model
+providerName = www.example.org
diff --git a/plugins/org.eclipse.xpand3.parser/plugin.xml b/plugins/org.eclipse.xpand3.parser/plugin.xml
new file mode 100644
index 00000000..f95b615c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/plugin.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.g b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.g
new file mode 100644
index 00000000..6f6d6d21
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.g
@@ -0,0 +1,460 @@
+grammar Xpand3Node;
+
+
+options {
+ superClass=AbstractNodeParser;
+}
+
+@parser::header {
+package org.eclipse.xpand3.parser;
+
+import org.eclipse.tmf.common.node.*;
+import org.eclipse.xpand3.internal.parser.xpand3node.*;
+
+}
+
+@parser::members {
+ protected Xpand3nodeFactory factory = Xpand3nodeFactory.eINSTANCE;
+}
+
+@lexer::header {
+package org.eclipse.xpand3.parser;
+}
+
+
+@lexer::members {
+ private boolean xpandMode = false;
+}
+
+file returns [CompositeNode cn]
+ @init{ cn = factory.createFileNode(); cn.setRule("file"); }
+ @after{ cn = normalize(cn); } :
+ (((imp=nsImport { addToChildren(cn, imp); ((FileNode) cn).getImp().add(imp); })))* (((decl=abstractDeclaration { addToChildren(cn, decl); ((FileNode) cn).getDecl().add(decl); })))* (EOF)
+;
+nsImport returns [CompositeNode cn]
+ @init{ cn = factory.createNsImportNode(); cn.setRule("nsImport"); } :
+ (LG { addLeafNodeForToken($cn, null); }) ('IMPORT' { addLeafNodeForToken($cn, null); }) (ns=simpleType { addToChildren(cn, ns); ((NsImportNode) cn).setNs(ns); }) (RG { addLeafNodeForToken($cn, null); })
+ | (LG { addLeafNodeForToken($cn, null); }) ('EXTENSION' { addLeafNodeForToken($cn, null); }) (ns=simpleType { addToChildren(cn, ns); ((NsImportNode) cn).setNs(ns); }) (RG { addLeafNodeForToken($cn, null); })
+ | ('import' { addLeafNodeForToken($cn, null); }) (unnamed0=type { addToChildren(cn, unnamed0); }) (';' { addLeafNodeForToken($cn, null); })
+ | ('extension' { addLeafNodeForToken($cn, null); }) (unnamed1=type { addToChildren(cn, unnamed1); }) ((('reexport' { addLeafNodeForToken($cn, null); })))? (';' { addLeafNodeForToken($cn, null); })
+;
+abstractDeclaration returns [CompositeNode cn] :
+ (check { $cn = $check.cn; })
+ | (around { $cn = $around.cn; })
+ | (extension { $cn = $extension.cn; })
+ | (definition { $cn = $definition.cn; })
+ | (definitionAround { $cn = $definitionAround.cn; })
+;
+definition returns [CompositeNode cn]
+ @init{ cn = factory.createDefinitionNode(); cn.setRule("definition"); } :
+ (LG { addLeafNodeForToken($cn, null); }) (DEFINE { addLeafNodeForToken($cn, null); }) (name=identifier { addToChildren(cn, name); ((DefinitionNode) cn).setName(name); }) ((('(' { addLeafNodeForToken($cn, null); }) (((unnamed2=declaredParameterList { addToChildren(cn, unnamed2); }) (((',' { addLeafNodeForToken($cn, null); })? ('*' { addLeafNodeForToken($cn, null); })))?
+ | ('*' { addLeafNodeForToken($cn, null); })))? (')' { addLeafNodeForToken($cn, null); })))? ('FOR' { addLeafNodeForToken($cn, null); }) (unnamed3=type { addToChildren(cn, unnamed3); }) (unnamed4=sequence { addToChildren(cn, unnamed4); }) (ENDDEFINE { addLeafNodeForToken($cn, null); }) (RG { addLeafNodeForToken($cn, null); })
+;
+definitionAround returns [CompositeNode cn]
+ @init{ cn = factory.createDefinitionAroundNode(); cn.setRule("definitionAround"); } :
+ (LG { addLeafNodeForToken($cn, null); }) (AROUND { addLeafNodeForToken($cn, null); }) (unnamed5=pointcut { addToChildren(cn, unnamed5); }) ((('(' { addLeafNodeForToken($cn, null); }) (((unnamed6=declaredParameterList { addToChildren(cn, unnamed6); }) (((',' { addLeafNodeForToken($cn, null); })? ('*' { addLeafNodeForToken($cn, null); })))?
+ | ('*' { addLeafNodeForToken($cn, null); })))? (')' { addLeafNodeForToken($cn, null); })))? ('FOR' { addLeafNodeForToken($cn, null); }) (unnamed7=type { addToChildren(cn, unnamed7); }) (unnamed8=sequence { addToChildren(cn, unnamed8); }) (ENDAROUND { addLeafNodeForToken($cn, null); }) (RG { addLeafNodeForToken($cn, null); })
+;
+sequence returns [CompositeNode cn]
+ @init{ cn = factory.createSequenceNode(); cn.setRule("sequence"); } :
+ (unnamed9=textSequence { addToChildren(cn, unnamed9); }) (((unnamed10=statement { addToChildren(cn, unnamed10); }) (unnamed11=textSequence { addToChildren(cn, unnamed11); })))*
+;
+statement returns [CompositeNode cn] :
+ (simpleStatement { $cn = $simpleStatement.cn; })
+ | (fileStatement { $cn = $fileStatement.cn; })
+ | (foreachStatement { $cn = $foreachStatement.cn; })
+ | (ifStatement { $cn = $ifStatement.cn; })
+ | (letStatement { $cn = $letStatement.cn; })
+ | (protectStatement { $cn = $protectStatement.cn; })
+;
+textSequence returns [CompositeNode cn]
+ @init{ cn = factory.createTextSequenceNode(); cn.setRule("textSequence"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed12=text { addToChildren(cn, unnamed12); }) (((unnamed13=text { addToChildren(cn, unnamed13); })))*
+;
+text returns [CompositeNode cn]
+ @init{ cn = factory.createTextNode(); cn.setRule("text"); } :
+ ('-' { addLeafNodeForToken($cn, null); })? (TEXT { addLeafNodeForToken($cn, null); })
+;
+simpleStatement returns [CompositeNode cn] :
+ (errorStatement { $cn = $errorStatement.cn; })
+ | (expandStatement { $cn = $expandStatement.cn; })
+ | (expressionStmt { $cn = $expressionStmt.cn; })
+;
+errorStatement returns [CompositeNode cn]
+ @init{ cn = factory.createErrorStatementNode(); cn.setRule("errorStatement"); } :
+ ('ERROR' { addLeafNodeForToken($cn, null); }) (unnamed14=expression { addToChildren(cn, unnamed14); })
+;
+expandStatement returns [CompositeNode cn]
+ @init{ cn = factory.createExpandStatementNode(); cn.setRule("expandStatement"); } :
+ ('EXPAND' { addLeafNodeForToken($cn, null); }) (unnamed15=simpleType { addToChildren(cn, unnamed15); }) ((('(' { addLeafNodeForToken($cn, null); }) (unnamed16=parameterList { addToChildren(cn, unnamed16); }) (')' { addLeafNodeForToken($cn, null); })))? ((((('FOR' { addLeafNodeForToken($cn, null); }) (unnamed17=expression { addToChildren(cn, unnamed17); })))
+ | ((('FOREACH' { addLeafNodeForToken($cn, null); }) (unnamed18=expression { addToChildren(cn, unnamed18); }) ((('SEPARATOR' { addLeafNodeForToken($cn, null); }) (unnamed19=expression { addToChildren(cn, unnamed19); })))?))))?
+;
+expressionStmt returns [CompositeNode cn]
+ @init{ cn = factory.createExpressionStmtNode(); cn.setRule("expressionStmt"); } :
+ (unnamed20=expression { addToChildren(cn, unnamed20); })
+;
+fileStatement returns [CompositeNode cn]
+ @init{ cn = factory.createFileStatementNode(); cn.setRule("fileStatement"); } :
+ ('FILE' { addLeafNodeForToken($cn, null); }) (unnamed21=expression { addToChildren(cn, unnamed21); }) (((unnamed22=identifier { addToChildren(cn, unnamed22); })))? (unnamed23=sequence { addToChildren(cn, unnamed23); }) ('ENDFILE' { addLeafNodeForToken($cn, null); })
+;
+foreachStatement returns [CompositeNode cn]
+ @init{ cn = factory.createForeachStatementNode(); cn.setRule("foreachStatement"); } :
+ ('FOREACH' { addLeafNodeForToken($cn, null); }) (unnamed24=expression { addToChildren(cn, unnamed24); }) ('AS' { addLeafNodeForToken($cn, null); }) (unnamed25=identifier { addToChildren(cn, unnamed25); }) ((('ITERATOR' { addLeafNodeForToken($cn, null); }) (unnamed26=identifier { addToChildren(cn, unnamed26); })))? ((('SEPARATOR' { addLeafNodeForToken($cn, null); }) (unnamed27=expression { addToChildren(cn, unnamed27); })))? (unnamed28=sequence { addToChildren(cn, unnamed28); }) ('ENDFOREACH' { addLeafNodeForToken($cn, null); })
+;
+ifStatement returns [CompositeNode cn]
+ @init{ cn = factory.createIfStatementNode(); cn.setRule("ifStatement"); } :
+ ('IF' { addLeafNodeForToken($cn, null); }) (unnamed29=expression { addToChildren(cn, unnamed29); }) (unnamed30=sequence { addToChildren(cn, unnamed30); }) (unnamed31=elseIfStatement { addToChildren(cn, unnamed31); })* (unnamed32=elseStatement { addToChildren(cn, unnamed32); })? ('ENDIF' { addLeafNodeForToken($cn, null); })
+;
+elseIfStatement returns [CompositeNode cn]
+ @init{ cn = factory.createElseIfStatementNode(); cn.setRule("elseIfStatement"); } :
+ ('ELSEIF' { addLeafNodeForToken($cn, null); }) (unnamed33=expression { addToChildren(cn, unnamed33); }) (unnamed34=sequence { addToChildren(cn, unnamed34); })
+;
+elseStatement returns [CompositeNode cn]
+ @init{ cn = factory.createElseStatementNode(); cn.setRule("elseStatement"); } :
+ ('ELSE' { addLeafNodeForToken($cn, null); }) (unnamed35=sequence { addToChildren(cn, unnamed35); })
+;
+letStatement returns [CompositeNode cn]
+ @init{ cn = factory.createLetStatementNode(); cn.setRule("letStatement"); } :
+ ('LET' { addLeafNodeForToken($cn, null); }) (unnamed36=expression { addToChildren(cn, unnamed36); }) ('AS' { addLeafNodeForToken($cn, null); }) (unnamed37=identifier { addToChildren(cn, unnamed37); }) (unnamed38=sequence { addToChildren(cn, unnamed38); }) ('ENDLET' { addLeafNodeForToken($cn, null); })
+;
+protectStatement returns [CompositeNode cn]
+ @init{ cn = factory.createProtectStatementNode(); cn.setRule("protectStatement"); } :
+ ('PROTECT' { addLeafNodeForToken($cn, null); }) ('CSTART' { addLeafNodeForToken($cn, null); }) (unnamed39=expression { addToChildren(cn, unnamed39); }) ('CEND' { addLeafNodeForToken($cn, null); }) (unnamed40=expression { addToChildren(cn, unnamed40); }) ('ID' { addLeafNodeForToken($cn, null); }) (unnamed41=expression { addToChildren(cn, unnamed41); }) ('DISABLE' { addLeafNodeForToken($cn, null); })? (unnamed42=sequence { addToChildren(cn, unnamed42); }) ('ENDPROTECT' { addLeafNodeForToken($cn, null); })
+;
+check returns [CompositeNode cn]
+ @init{ cn = factory.createCheckNode(); cn.setRule("check"); } :
+ ('context' { addLeafNodeForToken($cn, null); }) (unnamed43=type { addToChildren(cn, unnamed43); }) ((('if' { addLeafNodeForToken($cn, null); }) (unnamed44=expression { addToChildren(cn, unnamed44); })))? ((('ERROR' { addLeafNodeForToken($cn, null); })
+ | ('WARNING' { addLeafNodeForToken($cn, null); }))) (unnamed45=expression { addToChildren(cn, unnamed45); }) (':' { addLeafNodeForToken($cn, null); }) (unnamed46=expression { addToChildren(cn, unnamed46); }) (';' { addLeafNodeForToken($cn, null); })
+;
+around returns [CompositeNode cn]
+ @init{ cn = factory.createAroundNode(); cn.setRule("around"); } :
+ ('around' { addLeafNodeForToken($cn, null); }) (unnamed47=pointcut { addToChildren(cn, unnamed47); }) ('(' { addLeafNodeForToken($cn, null); }) (((unnamed48=declaredParameterList { addToChildren(cn, unnamed48); }) (((',' { addLeafNodeForToken($cn, null); })? ('*' { addLeafNodeForToken($cn, null); })))?
+ | ('*' { addLeafNodeForToken($cn, null); })))? (')' { addLeafNodeForToken($cn, null); }) (':' { addLeafNodeForToken($cn, null); }) (unnamed49=expression { addToChildren(cn, unnamed49); }) (';' { addLeafNodeForToken($cn, null); })
+;
+pointcut returns [CompositeNode cn]
+ @init{ cn = factory.createPointcutNode(); cn.setRule("pointcut"); } :
+ ((('*' { addLeafNodeForToken($cn, null); })
+ | (unnamed50=identifier { addToChildren(cn, unnamed50); }))) ((('*' { addLeafNodeForToken($cn, null); })
+ | (unnamed51=identifier { addToChildren(cn, unnamed51); })
+ | ('::' { addLeafNodeForToken($cn, null); })))*
+;
+extension returns [CompositeNode cn]
+ @init{ cn = factory.createExtensionNode(); cn.setRule("extension"); } :
+ ((('private' { addLeafNodeForToken($cn, null); })
+ | ('cached' { addLeafNodeForToken($cn, null); })
+ | ('create' { addLeafNodeForToken($cn, null); })))* (unnamed52=type { addToChildren(cn, unnamed52); })? (unnamed53=identifier { addToChildren(cn, unnamed53); }) (unnamed54=identifier { addToChildren(cn, unnamed54); })? ('(' { addLeafNodeForToken($cn, null); }) (unnamed55=declaredParameterList { addToChildren(cn, unnamed55); })? (')' { addLeafNodeForToken($cn, null); }) (':' { addLeafNodeForToken($cn, null); }) ((('JAVA' { addLeafNodeForToken($cn, null); }) (unnamed56=javaType { addToChildren(cn, unnamed56); }) ('.' { addLeafNodeForToken($cn, null); }) (unnamed57=identifier { addToChildren(cn, unnamed57); }) ('(' { addLeafNodeForToken($cn, null); }) (((unnamed58=javaType { addToChildren(cn, unnamed58); }) (((',' { addLeafNodeForToken($cn, null); }) (unnamed59=javaType { addToChildren(cn, unnamed59); })))*))? (')' { addLeafNodeForToken($cn, null); })
+ | (unnamed60=expression { addToChildren(cn, unnamed60); }))) (';' { addLeafNodeForToken($cn, null); })
+;
+javaType returns [CompositeNode cn]
+ @init{ cn = factory.createJavaTypeNode(); cn.setRule("javaType"); } :
+ (unnamed61=identifier { addToChildren(cn, unnamed61); }) ((('.' { addLeafNodeForToken($cn, null); }) (((unnamed62=identifier { addToChildren(cn, unnamed62); })
+ | ('Collection' { addLeafNodeForToken($cn, null); })
+ | ('List' { addLeafNodeForToken($cn, null); })
+ | ('Set' { addLeafNodeForToken($cn, null); })))))*
+;
+test_expression returns [CompositeNode cn]
+ @init{ cn = factory.createTest_expressionNode(); cn.setRule("test_expression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed63=expression { addToChildren(cn, unnamed63); }) (EOF)
+;
+expression returns [CompositeNode cn]
+ @init{ cn = factory.createExpressionNode(); cn.setRule("expression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed64=letExpression { addToChildren(cn, unnamed64); })
+;
+letExpression returns [CompositeNode cn]
+ @init{ cn = factory.createLetExpressionNode(); cn.setRule("letExpression"); }
+ @after{ cn = normalize(cn); } :
+ ('let' { addLeafNodeForToken($cn, null); }) (unnamed65=identifier { addToChildren(cn, unnamed65); }) ('=' { addLeafNodeForToken($cn, null); }) (unnamed66=castedExpression { addToChildren(cn, unnamed66); }) (':' { addLeafNodeForToken($cn, null); }) (unnamed67=expression { addToChildren(cn, unnamed67); })
+ | (unnamed68=castedExpression { addToChildren(cn, unnamed68); })
+;
+castedExpression returns [CompositeNode cn]
+ @init{ cn = factory.createCastedExpressionNode(); cn.setRule("castedExpression"); }
+ @after{ cn = normalize(cn); } :
+ ('(' type ')' chainExpression)=>(('(' { addLeafNodeForToken($cn, null); }) (unnamed69=type { addToChildren(cn, unnamed69); }) (')' { addLeafNodeForToken($cn, null); }) (unnamed70=chainExpression { addToChildren(cn, unnamed70); }))
+ | (unnamed71=chainExpression { addToChildren(cn, unnamed71); })
+;
+chainExpression returns [CompositeNode cn]
+ @init{ cn = factory.createChainExpressionNode(); cn.setRule("chainExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed72=ifExpression { addToChildren(cn, unnamed72); }) ((('->' { addLeafNodeForToken($cn, null); }) (unnamed73=ifExpression { addToChildren(cn, unnamed73); })))*
+;
+ifExpression returns [CompositeNode cn]
+ @init{ cn = factory.createIfExpressionNode(); cn.setRule("ifExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed74=switchExpression { addToChildren(cn, unnamed74); }) ((('?' { addLeafNodeForToken($cn, null); }) (unnamed75=expression { addToChildren(cn, unnamed75); }) (':' { addLeafNodeForToken($cn, null); }) (unnamed76=switchExpression { addToChildren(cn, unnamed76); })))?
+ | ('if' { addLeafNodeForToken($cn, null); }) (unnamed77=expression { addToChildren(cn, unnamed77); }) ('then' { addLeafNodeForToken($cn, null); }) (unnamed78=switchExpression { addToChildren(cn, unnamed78); }) ((('else' { addLeafNodeForToken($cn, null); }) (unnamed79=switchExpression { addToChildren(cn, unnamed79); })))?
+;
+switchExpression returns [CompositeNode cn]
+ @init{ cn = factory.createSwitchExpressionNode(); cn.setRule("switchExpression"); }
+ @after{ cn = normalize(cn); } :
+ ('switch' { addLeafNodeForToken($cn, null); }) ((('(' { addLeafNodeForToken($cn, null); }) (unnamed80=orExpression { addToChildren(cn, unnamed80); }) (')' { addLeafNodeForToken($cn, null); })))? ('{' { addLeafNodeForToken($cn, null); }) (unnamed81=casePart { addToChildren(cn, unnamed81); })* ('default' { addLeafNodeForToken($cn, null); }) (':' { addLeafNodeForToken($cn, null); }) (unnamed82=orExpression { addToChildren(cn, unnamed82); }) ('}' { addLeafNodeForToken($cn, null); })
+ | (unnamed83=orExpression { addToChildren(cn, unnamed83); })
+;
+casePart returns [CompositeNode cn]
+ @init{ cn = factory.createCasePartNode(); cn.setRule("casePart"); } :
+ ('case' { addLeafNodeForToken($cn, null); }) (unnamed84=expression { addToChildren(cn, unnamed84); }) (':' { addLeafNodeForToken($cn, null); }) (unnamed85=expression { addToChildren(cn, unnamed85); })
+;
+orExpression returns [CompositeNode cn]
+ @init{ cn = factory.createOrExpressionNode(); cn.setRule("orExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed86=andExpression { addToChildren(cn, unnamed86); }) ((('||' { addLeafNodeForToken($cn, null); }) (unnamed87=andExpression { addToChildren(cn, unnamed87); })))*
+;
+andExpression returns [CompositeNode cn]
+ @init{ cn = factory.createAndExpressionNode(); cn.setRule("andExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed88=impliesExpression { addToChildren(cn, unnamed88); }) ((('&&' { addLeafNodeForToken($cn, null); }) (unnamed89=impliesExpression { addToChildren(cn, unnamed89); })))*
+;
+impliesExpression returns [CompositeNode cn]
+ @init{ cn = factory.createImpliesExpressionNode(); cn.setRule("impliesExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed90=relationalExpression { addToChildren(cn, unnamed90); }) ((('implies' { addLeafNodeForToken($cn, null); }) (unnamed91=relationalExpression { addToChildren(cn, unnamed91); })))*
+;
+relationalExpression returns [CompositeNode cn]
+ @init{ cn = factory.createRelationalExpressionNode(); cn.setRule("relationalExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed92=additiveExpression { addToChildren(cn, unnamed92); }) ((((('==' { addLeafNodeForToken($cn, null); })
+ | ('!=' { addLeafNodeForToken($cn, null); })
+ | ('>=' { addLeafNodeForToken($cn, null); })
+ | ('<=' { addLeafNodeForToken($cn, null); })
+ | ('>' { addLeafNodeForToken($cn, null); })
+ | ('<' { addLeafNodeForToken($cn, null); }))) (unnamed93=additiveExpression { addToChildren(cn, unnamed93); })))*
+;
+additiveExpression returns [CompositeNode cn]
+ @init{ cn = factory.createAdditiveExpressionNode(); cn.setRule("additiveExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed94=multiplicativeExpression { addToChildren(cn, unnamed94); }) ((((('+' { addLeafNodeForToken($cn, null); })
+ | ('-' { addLeafNodeForToken($cn, null); }))) (unnamed95=multiplicativeExpression { addToChildren(cn, unnamed95); })))*
+;
+multiplicativeExpression returns [CompositeNode cn]
+ @init{ cn = factory.createMultiplicativeExpressionNode(); cn.setRule("multiplicativeExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed96=unaryExpression { addToChildren(cn, unnamed96); }) ((((('*' { addLeafNodeForToken($cn, null); })
+ | ('/' { addLeafNodeForToken($cn, null); }))) (unnamed97=unaryExpression { addToChildren(cn, unnamed97); })))*
+;
+unaryExpression returns [CompositeNode cn]
+ @init{ cn = factory.createUnaryExpressionNode(); cn.setRule("unaryExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed98=infixExpression { addToChildren(cn, unnamed98); })
+ | ('!' { addLeafNodeForToken($cn, null); }) (unnamed99=infixExpression { addToChildren(cn, unnamed99); })
+ | ('-' { addLeafNodeForToken($cn, null); }) (unnamed100=infixExpression { addToChildren(cn, unnamed100); })
+;
+infixExpression returns [CompositeNode cn]
+ @init{ cn = factory.createInfixExpressionNode(); cn.setRule("infixExpression"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed101=primaryExpression { addToChildren(cn, unnamed101); }) ((('.' { addLeafNodeForToken($cn, null); }) (unnamed102=featureCall { addToChildren(cn, unnamed102); })))*
+;
+primaryExpression returns [CompositeNode cn] :
+ (stringLiteral { $cn = $stringLiteral.cn; })
+ | (featureCall { $cn = $featureCall.cn; })
+ | (booleanLiteral { $cn = $booleanLiteral.cn; })
+ | (numberLiteral { $cn = $numberLiteral.cn; })
+ | (nullLiteral { $cn = $nullLiteral.cn; })
+ | (listLiteral { $cn = $listLiteral.cn; })
+ | (constructorCall { $cn = $constructorCall.cn; })
+ | (globalVarExpression { $cn = $globalVarExpression.cn; })
+ | (paranthesizedExpression { $cn = $paranthesizedExpression.cn; })
+;
+stringLiteral returns [CompositeNode cn]
+ @init{ cn = factory.createStringLiteralNode(); cn.setRule("stringLiteral"); } :
+ (StringLiteral { addLeafNodeForToken($cn, null); })
+;
+paranthesizedExpression returns [CompositeNode cn]
+ @init{ cn = factory.createParanthesizedExpressionNode(); cn.setRule("paranthesizedExpression"); } :
+ ('(' { addLeafNodeForToken($cn, null); }) (unnamed103=expression { addToChildren(cn, unnamed103); }) (')' { addLeafNodeForToken($cn, null); })
+;
+globalVarExpression returns [CompositeNode cn]
+ @init{ cn = factory.createGlobalVarExpressionNode(); cn.setRule("globalVarExpression"); } :
+ ('GLOBALVAR' { addLeafNodeForToken($cn, null); }) (unnamed104=identifier { addToChildren(cn, unnamed104); })
+;
+featureCall returns [CompositeNode cn]
+ @init{ cn = factory.createFeatureCallNode(); cn.setRule("featureCall"); }
+ @after{ cn = normalize(cn); } :
+ (unnamed105=identifier { addToChildren(cn, unnamed105); }) ('(' { addLeafNodeForToken($cn, null); }) (((unnamed106=parameterList { addToChildren(cn, unnamed106); })))? (')' { addLeafNodeForToken($cn, null); })
+ | (unnamed107=type { addToChildren(cn, unnamed107); })
+ | (unnamed108=collectionExpression { addToChildren(cn, unnamed108); })
+;
+listLiteral returns [CompositeNode cn]
+ @init{ cn = factory.createListLiteralNode(); cn.setRule("listLiteral"); } :
+ ('{' { addLeafNodeForToken($cn, null); }) (((unnamed109=expression { addToChildren(cn, unnamed109); }) (((',' { addLeafNodeForToken($cn, null); }) (unnamed110=expression { addToChildren(cn, unnamed110); })))*))? ('}' { addLeafNodeForToken($cn, null); })
+;
+constructorCall returns [CompositeNode cn]
+ @init{ cn = factory.createConstructorCallNode(); cn.setRule("constructorCall"); } :
+ ('new' { addLeafNodeForToken($cn, null); }) (unnamed111=simpleType { addToChildren(cn, unnamed111); })
+;
+booleanLiteral returns [CompositeNode cn]
+ @init{ cn = factory.createBooleanLiteralNode(); cn.setRule("booleanLiteral"); } :
+ ('false' { addLeafNodeForToken($cn, null); })
+ | ('true' { addLeafNodeForToken($cn, null); })
+;
+nullLiteral returns [CompositeNode cn]
+ @init{ cn = factory.createNullLiteralNode(); cn.setRule("nullLiteral"); } :
+ ('null' { addLeafNodeForToken($cn, null); })
+;
+numberLiteral returns [CompositeNode cn]
+ @init{ cn = factory.createNumberLiteralNode(); cn.setRule("numberLiteral"); } :
+ (IntLiteral { addLeafNodeForToken($cn, null); })
+ | (IntLiteral { addLeafNodeForToken($cn, null); }) ('.' { addLeafNodeForToken($cn, null); }) (IntLiteral { addLeafNodeForToken($cn, null); })
+;
+collectionExpression returns [CompositeNode cn]
+ @init{ cn = factory.createCollectionExpressionNode(); cn.setRule("collectionExpression"); } :
+ ('typeSelect' { addLeafNodeForToken($cn, null); }) ('(' { addLeafNodeForToken($cn, null); }) (unnamed112=type { addToChildren(cn, unnamed112); }) (')' { addLeafNodeForToken($cn, null); })
+ | ((('collect' { addLeafNodeForToken($cn, null); })
+ | ('select' { addLeafNodeForToken($cn, null); })
+ | ('selectFirst' { addLeafNodeForToken($cn, null); })
+ | ('reject' { addLeafNodeForToken($cn, null); })
+ | ('exists' { addLeafNodeForToken($cn, null); })
+ | ('notExists' { addLeafNodeForToken($cn, null); })
+ | ('sortBy' { addLeafNodeForToken($cn, null); })
+ | ('forAll' { addLeafNodeForToken($cn, null); }))) ('(' { addLeafNodeForToken($cn, null); }) (((unnamed113=identifier { addToChildren(cn, unnamed113); }) ('|' { addLeafNodeForToken($cn, null); })))? (unnamed114=expression { addToChildren(cn, unnamed114); }) (')' { addLeafNodeForToken($cn, null); })
+;
+declaredParameterList returns [CompositeNode cn]
+ @init{ cn = factory.createDeclaredParameterListNode(); cn.setRule("declaredParameterList"); } :
+ (unnamed115=declaredParameter { addToChildren(cn, unnamed115); }) (((',' { addLeafNodeForToken($cn, null); }) (unnamed116=declaredParameter { addToChildren(cn, unnamed116); })))*
+;
+declaredParameter returns [CompositeNode cn]
+ @init{ cn = factory.createDeclaredParameterNode(); cn.setRule("declaredParameter"); } :
+ (unnamed117=type { addToChildren(cn, unnamed117); }) (unnamed118=identifier { addToChildren(cn, unnamed118); })
+;
+parameterList returns [CompositeNode cn]
+ @init{ cn = factory.createParameterListNode(); cn.setRule("parameterList"); } :
+ (unnamed119=expression { addToChildren(cn, unnamed119); }) (((',' { addLeafNodeForToken($cn, null); }) (unnamed120=expression { addToChildren(cn, unnamed120); })))*
+;
+type returns [CompositeNode cn] :
+ (collectionType { $cn = $collectionType.cn; })
+ | (simpleType { $cn = $simpleType.cn; })
+;
+collectionType returns [CompositeNode cn]
+ @init{ cn = factory.createCollectionTypeNode(); cn.setRule("collectionType"); } :
+ ((('Collection' { addLeafNodeForToken($cn, null); })
+ | ('List' { addLeafNodeForToken($cn, null); })
+ | ('Set' { addLeafNodeForToken($cn, null); }))) ((('[' { addLeafNodeForToken($cn, null); }) (unnamed121=simpleType { addToChildren(cn, unnamed121); }) (']' { addLeafNodeForToken($cn, null); })))?
+;
+simpleType returns [CompositeNode cn]
+ @init{ cn = factory.createSimpleTypeNode(); cn.setRule("simpleType"); } :
+ (unnamed122=identifier { addToChildren(cn, unnamed122); }) ((('::' { addLeafNodeForToken($cn, null); }) (unnamed123=identifier { addToChildren(cn, unnamed123); })))*
+;
+identifier returns [CompositeNode cn]
+ @init{ cn = factory.createIdentifierNode(); cn.setRule("identifier"); } :
+ (Identifier { addLeafNodeForToken($cn, null); })
+;
+
+IntLiteral :
+ ('0' | '1'..'9' '0'..'9'*)
+;
+
+StringLiteral :
+ '\"' ( EscapeSequence | ~('\\'|'\"') )* '\"'
+ | '\'' ( EscapeSequence | ~('\''|'\\') )* '\''
+;
+
+fragment EscapeSequence :
+ '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+ | UnicodeEscape
+ | OctalEscape
+;
+
+fragment OctalEscape :
+ '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7')
+;
+
+fragment UnicodeEscape :
+ '\\' 'u' HexDigit HexDigit HexDigit HexDigit
+;
+
+fragment HexDigit :
+ ('0'..'9'|'a'..'f'|'A'..'F')
+;
+
+DEFINE :
+ {xpandMode=true;} 'DEFINE'
+;
+
+ENDDEFINE :
+ 'ENDDEFINE' {xpandMode=false;}
+;
+
+AROUND :
+ {xpandMode=true;}'AROUND'
+;
+
+ENDAROUND :
+ 'ENDAROUND'{xpandMode=false;}
+;
+
+Identifier :
+ ('^')? Letter (Letter|JavaIDDigit)*
+;
+
+fragment Letter :
+ '\u0024' |
+ '\u0041'..'\u005a' |
+ '\u005f' |
+ '\u0061'..'\u007a' |
+ '\u00c0'..'\u00d6' |
+ '\u00d8'..'\u00f6' |
+ '\u00f8'..'\u00ff' |
+ '\u0100'..'\u1fff' |
+ '\u3040'..'\u318f' |
+ '\u3300'..'\u337f' |
+ '\u3400'..'\u3d2d' |
+ '\u4e00'..'\u9fff' |
+ '\uf900'..'\ufaff'
+;
+
+fragment JavaIDDigit :
+
+ '\u0030'..'\u0039' |
+ '\u0660'..'\u0669' |
+ '\u06f0'..'\u06f9' |
+ '\u0966'..'\u096f' |
+ '\u09e6'..'\u09ef' |
+ '\u0a66'..'\u0a6f' |
+ '\u0ae6'..'\u0aef' |
+ '\u0b66'..'\u0b6f' |
+ '\u0be7'..'\u0bef' |
+ '\u0c66'..'\u0c6f' |
+ '\u0ce6'..'\u0cef' |
+ '\u0d66'..'\u0d6f' |
+ '\u0e50'..'\u0e59' |
+ '\u0ed0'..'\u0ed9' |
+ '\u1040'..'\u1049'
+
+;
+
+WS :
+ (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
+;
+
+COMMENT :
+ '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
+;
+
+LINE_COMMENT :
+ '//' ~('\n'|'\r')* ('\r'? '\n'|EOF) {$channel=HIDDEN;}
+;
+
+REM_COMMENT_OUT :
+ {!xpandMode}?=> LG 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' RG {$channel=HIDDEN;}
+;
+
+REM_COMMENT :
+ {xpandMode}?=> 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' {$channel=HIDDEN;}
+;
+
+TEXT :
+ {xpandMode}?=> RG ~(LG)* (LG)?
+;
+
+LG :
+ '\u00AB'
+;
+
+RG :
+ '\u00BB'
+;
+
+
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.tokens b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.tokens
new file mode 100644
index 00000000..f6ef9e5f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.tokens
@@ -0,0 +1,108 @@
+IntLiteral=12
+Identifier=13
+HexDigit=17
+WS=20
+ENDDEFINE=7
+REM_COMMENT=24
+RG=5
+COMMENT=21
+StringLiteral=11
+LINE_COMMENT=22
+JavaIDDigit=19
+Letter=18
+DEFINE=6
+UnicodeEscape=15
+EscapeSequence=14
+TEXT=10
+ENDAROUND=9
+OctalEscape=16
+REM_COMMENT_OUT=23
+AROUND=8
+LG=4
+'<'=91
+'exists'=105
+'>'=90
+'case'=82
+'context'=58
+'FOREACH'=39
+'let'=72
+'else'=77
+'selectFirst'=103
+'ENDFILE'=42
+'-'=36
+'reexport'=30
+'?'=75
+'!='=87
+'List'=70
+'>='=88
+'GLOBALVAR'=95
+'ELSEIF'=48
+'<='=89
+'||'=83
+'ID'=55
+'typeSelect'=100
+'JAVA'=67
+'='=73
+'forAll'=108
+'ERROR'=37
+'collect'=101
+'::'=63
+'ENDIF'=47
+'ENDFOREACH'=45
+'ENDLET'=51
+'around'=62
+'{'=79
+'then'=76
+'SEPARATOR'=40
+'AS'=43
+'new'=96
+':'=61
+'.'=68
+'*'=33
+'sortBy'=107
+'ITERATOR'=44
+'Set'=71
+'notExists'=106
+'}'=81
+'->'=74
+'create'=66
+'PROTECT'=52
+'extension'=29
+'FOR'=35
+'CEND'=54
+';'=28
+']'=111
+'true'=98
+'default'=80
+'false'=97
+','=32
+'&&'=84
+'LET'=50
+'['=110
+'/'=93
+'implies'=85
+'ELSE'=49
+'IMPORT'=25
+'Collection'=69
+'reject'=104
+'private'=64
+'|'=109
+'EXTENSION'=26
+'EXPAND'=38
+')'=34
+'FILE'=41
+'=='=86
+'ENDPROTECT'=57
+'IF'=46
+'import'=27
+'!'=94
+'CSTART'=53
+'if'=59
+'DISABLE'=56
+'switch'=78
+'('=31
+'select'=102
+'cached'=65
+'null'=99
+'+'=92
+'WARNING'=60
diff --git a/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeLexer.java b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeLexer.java
new file mode 100644
index 00000000..8a32c8c2
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeLexer.java
@@ -0,0 +1,6039 @@
+// $ANTLR 3.0 ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g 2008-03-06 09:17:21
+
+package org.eclipse.xpand3.parser;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class Xpand3NodeLexer extends Lexer {
+ public static final int T29=29;
+ public static final int HexDigit=17;
+ public static final int T70=70;
+ public static final int T74=74;
+ public static final int REM_COMMENT=24;
+ public static final int T85=85;
+ public static final int T102=102;
+ public static final int Letter=18;
+ public static final int T103=103;
+ public static final int T32=32;
+ public static final int T81=81;
+ public static final int T41=41;
+ public static final int LG=4;
+ public static final int T62=62;
+ public static final int T109=109;
+ public static final int T68=68;
+ public static final int T73=73;
+ public static final int T84=84;
+ public static final int T33=33;
+ public static final int Identifier=13;
+ public static final int T78=78;
+ public static final int WS=20;
+ public static final int T42=42;
+ public static final int RG=5;
+ public static final int T96=96;
+ public static final int T71=71;
+ public static final int LINE_COMMENT=22;
+ public static final int T72=72;
+ public static final int T94=94;
+ public static final int T76=76;
+ public static final int UnicodeEscape=15;
+ public static final int T75=75;
+ public static final int T89=89;
+ public static final int T67=67;
+ public static final int TEXT=10;
+ public static final int ENDAROUND=9;
+ public static final int T31=31;
+ public static final int T60=60;
+ public static final int T82=82;
+ public static final int T100=100;
+ public static final int T49=49;
+ public static final int T30=30;
+ public static final int T79=79;
+ public static final int IntLiteral=12;
+ public static final int T36=36;
+ public static final int T58=58;
+ public static final int T93=93;
+ public static final int T35=35;
+ public static final int T107=107;
+ public static final int T83=83;
+ public static final int T61=61;
+ public static final int T45=45;
+ public static final int T34=34;
+ public static final int T101=101;
+ public static final int T64=64;
+ public static final int T25=25;
+ public static final int T91=91;
+ public static final int T105=105;
+ public static final int T37=37;
+ public static final int T86=86;
+ public static final int EscapeSequence=14;
+ public static final int T26=26;
+ public static final int T51=51;
+ public static final int T111=111;
+ public static final int T46=46;
+ public static final int T77=77;
+ public static final int T38=38;
+ public static final int T106=106;
+ public static final int T69=69;
+ public static final int T39=39;
+ public static final int T44=44;
+ public static final int T55=55;
+ public static final int T95=95;
+ public static final int T50=50;
+ public static final int T110=110;
+ public static final int T108=108;
+ public static final int T92=92;
+ public static final int T43=43;
+ public static final int ENDDEFINE=7;
+ public static final int T28=28;
+ public static final int T40=40;
+ public static final int T66=66;
+ public static final int COMMENT=21;
+ public static final int T88=88;
+ public static final int StringLiteral=11;
+ public static final int T63=63;
+ public static final int T57=57;
+ public static final int T65=65;
+ public static final int T98=98;
+ public static final int T56=56;
+ public static final int T87=87;
+ public static final int T80=80;
+ public static final int JavaIDDigit=19;
+ public static final int DEFINE=6;
+ public static final int T59=59;
+ public static final int T97=97;
+ public static final int T48=48;
+ public static final int T54=54;
+ public static final int EOF=-1;
+ public static final int T104=104;
+ public static final int T47=47;
+ public static final int Tokens=112;
+ public static final int T53=53;
+ public static final int OctalEscape=16;
+ public static final int T99=99;
+ public static final int T27=27;
+ public static final int REM_COMMENT_OUT=23;
+ public static final int T52=52;
+ public static final int T90=90;
+ public static final int AROUND=8;
+
+ private boolean xpandMode = false;
+
+ public Xpand3NodeLexer() {;}
+ public Xpand3NodeLexer(CharStream input) {
+ super(input);
+ }
+ public String getGrammarFileName() { return "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g"; }
+
+ // $ANTLR start T25
+ public void mT25() throws RecognitionException {
+ try {
+ int _type = T25;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:9:7: ( 'IMPORT' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:9:7: 'IMPORT'
+ {
+ match("IMPORT");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T25
+
+ // $ANTLR start T26
+ public void mT26() throws RecognitionException {
+ try {
+ int _type = T26;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:10:7: ( 'EXTENSION' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:10:7: 'EXTENSION'
+ {
+ match("EXTENSION");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T26
+
+ // $ANTLR start T27
+ public void mT27() throws RecognitionException {
+ try {
+ int _type = T27;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:11:7: ( 'import' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:11:7: 'import'
+ {
+ match("import");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T27
+
+ // $ANTLR start T28
+ public void mT28() throws RecognitionException {
+ try {
+ int _type = T28;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:12:7: ( ';' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:12:7: ';'
+ {
+ match(';');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T28
+
+ // $ANTLR start T29
+ public void mT29() throws RecognitionException {
+ try {
+ int _type = T29;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:13:7: ( 'extension' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:13:7: 'extension'
+ {
+ match("extension");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T29
+
+ // $ANTLR start T30
+ public void mT30() throws RecognitionException {
+ try {
+ int _type = T30;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:14:7: ( 'reexport' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:14:7: 'reexport'
+ {
+ match("reexport");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T30
+
+ // $ANTLR start T31
+ public void mT31() throws RecognitionException {
+ try {
+ int _type = T31;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:15:7: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:15:7: '('
+ {
+ match('(');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T31
+
+ // $ANTLR start T32
+ public void mT32() throws RecognitionException {
+ try {
+ int _type = T32;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:16:7: ( ',' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:16:7: ','
+ {
+ match(',');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T32
+
+ // $ANTLR start T33
+ public void mT33() throws RecognitionException {
+ try {
+ int _type = T33;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:17:7: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:17:7: '*'
+ {
+ match('*');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T33
+
+ // $ANTLR start T34
+ public void mT34() throws RecognitionException {
+ try {
+ int _type = T34;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:18:7: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:18:7: ')'
+ {
+ match(')');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T34
+
+ // $ANTLR start T35
+ public void mT35() throws RecognitionException {
+ try {
+ int _type = T35;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:19:7: ( 'FOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:19:7: 'FOR'
+ {
+ match("FOR");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T35
+
+ // $ANTLR start T36
+ public void mT36() throws RecognitionException {
+ try {
+ int _type = T36;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:20:7: ( '-' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:20:7: '-'
+ {
+ match('-');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T36
+
+ // $ANTLR start T37
+ public void mT37() throws RecognitionException {
+ try {
+ int _type = T37;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:21:7: ( 'ERROR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:21:7: 'ERROR'
+ {
+ match("ERROR");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T37
+
+ // $ANTLR start T38
+ public void mT38() throws RecognitionException {
+ try {
+ int _type = T38;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:22:7: ( 'EXPAND' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:22:7: 'EXPAND'
+ {
+ match("EXPAND");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T38
+
+ // $ANTLR start T39
+ public void mT39() throws RecognitionException {
+ try {
+ int _type = T39;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:23:7: ( 'FOREACH' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:23:7: 'FOREACH'
+ {
+ match("FOREACH");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T39
+
+ // $ANTLR start T40
+ public void mT40() throws RecognitionException {
+ try {
+ int _type = T40;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:24:7: ( 'SEPARATOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:24:7: 'SEPARATOR'
+ {
+ match("SEPARATOR");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T40
+
+ // $ANTLR start T41
+ public void mT41() throws RecognitionException {
+ try {
+ int _type = T41;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:25:7: ( 'FILE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:25:7: 'FILE'
+ {
+ match("FILE");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T41
+
+ // $ANTLR start T42
+ public void mT42() throws RecognitionException {
+ try {
+ int _type = T42;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:26:7: ( 'ENDFILE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:26:7: 'ENDFILE'
+ {
+ match("ENDFILE");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T42
+
+ // $ANTLR start T43
+ public void mT43() throws RecognitionException {
+ try {
+ int _type = T43;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:27:7: ( 'AS' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:27:7: 'AS'
+ {
+ match("AS");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T43
+
+ // $ANTLR start T44
+ public void mT44() throws RecognitionException {
+ try {
+ int _type = T44;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:28:7: ( 'ITERATOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:28:7: 'ITERATOR'
+ {
+ match("ITERATOR");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T44
+
+ // $ANTLR start T45
+ public void mT45() throws RecognitionException {
+ try {
+ int _type = T45;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:29:7: ( 'ENDFOREACH' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:29:7: 'ENDFOREACH'
+ {
+ match("ENDFOREACH");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T45
+
+ // $ANTLR start T46
+ public void mT46() throws RecognitionException {
+ try {
+ int _type = T46;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:30:7: ( 'IF' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:30:7: 'IF'
+ {
+ match("IF");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T46
+
+ // $ANTLR start T47
+ public void mT47() throws RecognitionException {
+ try {
+ int _type = T47;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:31:7: ( 'ENDIF' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:31:7: 'ENDIF'
+ {
+ match("ENDIF");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T47
+
+ // $ANTLR start T48
+ public void mT48() throws RecognitionException {
+ try {
+ int _type = T48;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:7: ( 'ELSEIF' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:7: 'ELSEIF'
+ {
+ match("ELSEIF");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T48
+
+ // $ANTLR start T49
+ public void mT49() throws RecognitionException {
+ try {
+ int _type = T49;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:33:7: ( 'ELSE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:33:7: 'ELSE'
+ {
+ match("ELSE");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T49
+
+ // $ANTLR start T50
+ public void mT50() throws RecognitionException {
+ try {
+ int _type = T50;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:34:7: ( 'LET' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:34:7: 'LET'
+ {
+ match("LET");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T50
+
+ // $ANTLR start T51
+ public void mT51() throws RecognitionException {
+ try {
+ int _type = T51;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:35:7: ( 'ENDLET' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:35:7: 'ENDLET'
+ {
+ match("ENDLET");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T51
+
+ // $ANTLR start T52
+ public void mT52() throws RecognitionException {
+ try {
+ int _type = T52;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:7: ( 'PROTECT' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:7: 'PROTECT'
+ {
+ match("PROTECT");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T52
+
+ // $ANTLR start T53
+ public void mT53() throws RecognitionException {
+ try {
+ int _type = T53;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:7: ( 'CSTART' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:7: 'CSTART'
+ {
+ match("CSTART");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T53
+
+ // $ANTLR start T54
+ public void mT54() throws RecognitionException {
+ try {
+ int _type = T54;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:7: ( 'CEND' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:7: 'CEND'
+ {
+ match("CEND");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T54
+
+ // $ANTLR start T55
+ public void mT55() throws RecognitionException {
+ try {
+ int _type = T55;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:7: ( 'ID' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:7: 'ID'
+ {
+ match("ID");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T55
+
+ // $ANTLR start T56
+ public void mT56() throws RecognitionException {
+ try {
+ int _type = T56;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:40:7: ( 'DISABLE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:40:7: 'DISABLE'
+ {
+ match("DISABLE");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T56
+
+ // $ANTLR start T57
+ public void mT57() throws RecognitionException {
+ try {
+ int _type = T57;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:41:7: ( 'ENDPROTECT' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:41:7: 'ENDPROTECT'
+ {
+ match("ENDPROTECT");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T57
+
+ // $ANTLR start T58
+ public void mT58() throws RecognitionException {
+ try {
+ int _type = T58;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:42:7: ( 'context' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:42:7: 'context'
+ {
+ match("context");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T58
+
+ // $ANTLR start T59
+ public void mT59() throws RecognitionException {
+ try {
+ int _type = T59;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:43:7: ( 'if' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:43:7: 'if'
+ {
+ match("if");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T59
+
+ // $ANTLR start T60
+ public void mT60() throws RecognitionException {
+ try {
+ int _type = T60;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:44:7: ( 'WARNING' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:44:7: 'WARNING'
+ {
+ match("WARNING");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T60
+
+ // $ANTLR start T61
+ public void mT61() throws RecognitionException {
+ try {
+ int _type = T61;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:45:7: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:45:7: ':'
+ {
+ match(':');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T61
+
+ // $ANTLR start T62
+ public void mT62() throws RecognitionException {
+ try {
+ int _type = T62;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:46:7: ( 'around' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:46:7: 'around'
+ {
+ match("around");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T62
+
+ // $ANTLR start T63
+ public void mT63() throws RecognitionException {
+ try {
+ int _type = T63;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:47:7: ( '::' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:47:7: '::'
+ {
+ match("::");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T63
+
+ // $ANTLR start T64
+ public void mT64() throws RecognitionException {
+ try {
+ int _type = T64;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:48:7: ( 'private' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:48:7: 'private'
+ {
+ match("private");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T64
+
+ // $ANTLR start T65
+ public void mT65() throws RecognitionException {
+ try {
+ int _type = T65;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:49:7: ( 'cached' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:49:7: 'cached'
+ {
+ match("cached");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T65
+
+ // $ANTLR start T66
+ public void mT66() throws RecognitionException {
+ try {
+ int _type = T66;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:7: ( 'create' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:7: 'create'
+ {
+ match("create");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T66
+
+ // $ANTLR start T67
+ public void mT67() throws RecognitionException {
+ try {
+ int _type = T67;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:7: ( 'JAVA' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:7: 'JAVA'
+ {
+ match("JAVA");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T67
+
+ // $ANTLR start T68
+ public void mT68() throws RecognitionException {
+ try {
+ int _type = T68;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:52:7: ( '.' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:52:7: '.'
+ {
+ match('.');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T68
+
+ // $ANTLR start T69
+ public void mT69() throws RecognitionException {
+ try {
+ int _type = T69;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:53:7: ( 'Collection' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:53:7: 'Collection'
+ {
+ match("Collection");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T69
+
+ // $ANTLR start T70
+ public void mT70() throws RecognitionException {
+ try {
+ int _type = T70;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:54:7: ( 'List' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:54:7: 'List'
+ {
+ match("List");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T70
+
+ // $ANTLR start T71
+ public void mT71() throws RecognitionException {
+ try {
+ int _type = T71;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:7: ( 'Set' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:7: 'Set'
+ {
+ match("Set");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T71
+
+ // $ANTLR start T72
+ public void mT72() throws RecognitionException {
+ try {
+ int _type = T72;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:7: ( 'let' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:7: 'let'
+ {
+ match("let");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T72
+
+ // $ANTLR start T73
+ public void mT73() throws RecognitionException {
+ try {
+ int _type = T73;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:57:7: ( '=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:57:7: '='
+ {
+ match('=');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T73
+
+ // $ANTLR start T74
+ public void mT74() throws RecognitionException {
+ try {
+ int _type = T74;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:58:7: ( '->' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:58:7: '->'
+ {
+ match("->");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T74
+
+ // $ANTLR start T75
+ public void mT75() throws RecognitionException {
+ try {
+ int _type = T75;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:59:7: ( '?' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:59:7: '?'
+ {
+ match('?');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T75
+
+ // $ANTLR start T76
+ public void mT76() throws RecognitionException {
+ try {
+ int _type = T76;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:7: ( 'then' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:7: 'then'
+ {
+ match("then");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T76
+
+ // $ANTLR start T77
+ public void mT77() throws RecognitionException {
+ try {
+ int _type = T77;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:61:7: ( 'else' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:61:7: 'else'
+ {
+ match("else");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T77
+
+ // $ANTLR start T78
+ public void mT78() throws RecognitionException {
+ try {
+ int _type = T78;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:62:7: ( 'switch' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:62:7: 'switch'
+ {
+ match("switch");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T78
+
+ // $ANTLR start T79
+ public void mT79() throws RecognitionException {
+ try {
+ int _type = T79;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:63:7: ( '{' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:63:7: '{'
+ {
+ match('{');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T79
+
+ // $ANTLR start T80
+ public void mT80() throws RecognitionException {
+ try {
+ int _type = T80;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:64:7: ( 'default' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:64:7: 'default'
+ {
+ match("default");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T80
+
+ // $ANTLR start T81
+ public void mT81() throws RecognitionException {
+ try {
+ int _type = T81;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:65:7: ( '}' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:65:7: '}'
+ {
+ match('}');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T81
+
+ // $ANTLR start T82
+ public void mT82() throws RecognitionException {
+ try {
+ int _type = T82;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:66:7: ( 'case' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:66:7: 'case'
+ {
+ match("case");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T82
+
+ // $ANTLR start T83
+ public void mT83() throws RecognitionException {
+ try {
+ int _type = T83;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:67:7: ( '||' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:67:7: '||'
+ {
+ match("||");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T83
+
+ // $ANTLR start T84
+ public void mT84() throws RecognitionException {
+ try {
+ int _type = T84;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:68:7: ( '&&' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:68:7: '&&'
+ {
+ match("&&");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T84
+
+ // $ANTLR start T85
+ public void mT85() throws RecognitionException {
+ try {
+ int _type = T85;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:69:7: ( 'implies' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:69:7: 'implies'
+ {
+ match("implies");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T85
+
+ // $ANTLR start T86
+ public void mT86() throws RecognitionException {
+ try {
+ int _type = T86;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:70:7: ( '==' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:70:7: '=='
+ {
+ match("==");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T86
+
+ // $ANTLR start T87
+ public void mT87() throws RecognitionException {
+ try {
+ int _type = T87;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:71:7: ( '!=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:71:7: '!='
+ {
+ match("!=");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T87
+
+ // $ANTLR start T88
+ public void mT88() throws RecognitionException {
+ try {
+ int _type = T88;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:72:7: ( '>=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:72:7: '>='
+ {
+ match(">=");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T88
+
+ // $ANTLR start T89
+ public void mT89() throws RecognitionException {
+ try {
+ int _type = T89;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:7: ( '<=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:7: '<='
+ {
+ match("<=");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T89
+
+ // $ANTLR start T90
+ public void mT90() throws RecognitionException {
+ try {
+ int _type = T90;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:74:7: ( '>' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:74:7: '>'
+ {
+ match('>');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T90
+
+ // $ANTLR start T91
+ public void mT91() throws RecognitionException {
+ try {
+ int _type = T91;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:75:7: ( '<' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:75:7: '<'
+ {
+ match('<');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T91
+
+ // $ANTLR start T92
+ public void mT92() throws RecognitionException {
+ try {
+ int _type = T92;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:76:7: ( '+' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:76:7: '+'
+ {
+ match('+');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T92
+
+ // $ANTLR start T93
+ public void mT93() throws RecognitionException {
+ try {
+ int _type = T93;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:7: ( '/' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:7: '/'
+ {
+ match('/');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T93
+
+ // $ANTLR start T94
+ public void mT94() throws RecognitionException {
+ try {
+ int _type = T94;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:78:7: ( '!' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:78:7: '!'
+ {
+ match('!');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T94
+
+ // $ANTLR start T95
+ public void mT95() throws RecognitionException {
+ try {
+ int _type = T95;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:79:7: ( 'GLOBALVAR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:79:7: 'GLOBALVAR'
+ {
+ match("GLOBALVAR");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T95
+
+ // $ANTLR start T96
+ public void mT96() throws RecognitionException {
+ try {
+ int _type = T96;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:80:7: ( 'new' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:80:7: 'new'
+ {
+ match("new");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T96
+
+ // $ANTLR start T97
+ public void mT97() throws RecognitionException {
+ try {
+ int _type = T97;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:81:7: ( 'false' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:81:7: 'false'
+ {
+ match("false");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T97
+
+ // $ANTLR start T98
+ public void mT98() throws RecognitionException {
+ try {
+ int _type = T98;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:82:7: ( 'true' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:82:7: 'true'
+ {
+ match("true");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T98
+
+ // $ANTLR start T99
+ public void mT99() throws RecognitionException {
+ try {
+ int _type = T99;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:83:7: ( 'null' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:83:7: 'null'
+ {
+ match("null");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T99
+
+ // $ANTLR start T100
+ public void mT100() throws RecognitionException {
+ try {
+ int _type = T100;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:84:8: ( 'typeSelect' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:84:8: 'typeSelect'
+ {
+ match("typeSelect");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T100
+
+ // $ANTLR start T101
+ public void mT101() throws RecognitionException {
+ try {
+ int _type = T101;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:85:8: ( 'collect' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:85:8: 'collect'
+ {
+ match("collect");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T101
+
+ // $ANTLR start T102
+ public void mT102() throws RecognitionException {
+ try {
+ int _type = T102;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:8: ( 'select' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:8: 'select'
+ {
+ match("select");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T102
+
+ // $ANTLR start T103
+ public void mT103() throws RecognitionException {
+ try {
+ int _type = T103;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:87:8: ( 'selectFirst' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:87:8: 'selectFirst'
+ {
+ match("selectFirst");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T103
+
+ // $ANTLR start T104
+ public void mT104() throws RecognitionException {
+ try {
+ int _type = T104;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:88:8: ( 'reject' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:88:8: 'reject'
+ {
+ match("reject");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T104
+
+ // $ANTLR start T105
+ public void mT105() throws RecognitionException {
+ try {
+ int _type = T105;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:89:8: ( 'exists' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:89:8: 'exists'
+ {
+ match("exists");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T105
+
+ // $ANTLR start T106
+ public void mT106() throws RecognitionException {
+ try {
+ int _type = T106;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:8: ( 'notExists' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:8: 'notExists'
+ {
+ match("notExists");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T106
+
+ // $ANTLR start T107
+ public void mT107() throws RecognitionException {
+ try {
+ int _type = T107;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:8: ( 'sortBy' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:8: 'sortBy'
+ {
+ match("sortBy");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T107
+
+ // $ANTLR start T108
+ public void mT108() throws RecognitionException {
+ try {
+ int _type = T108;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:92:8: ( 'forAll' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:92:8: 'forAll'
+ {
+ match("forAll");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T108
+
+ // $ANTLR start T109
+ public void mT109() throws RecognitionException {
+ try {
+ int _type = T109;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:93:8: ( '|' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:93:8: '|'
+ {
+ match('|');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T109
+
+ // $ANTLR start T110
+ public void mT110() throws RecognitionException {
+ try {
+ int _type = T110;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:94:8: ( '[' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:94:8: '['
+ {
+ match('[');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T110
+
+ // $ANTLR start T111
+ public void mT111() throws RecognitionException {
+ try {
+ int _type = T111;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:95:8: ( ']' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:95:8: ']'
+ {
+ match(']');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T111
+
+ // $ANTLR start IntLiteral
+ public void mIntLiteral() throws RecognitionException {
+ try {
+ int _type = IntLiteral;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:3: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:3: ( '0' | '1' .. '9' ( '0' .. '9' )* )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:3: ( '0' | '1' .. '9' ( '0' .. '9' )* )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0=='0') ) {
+ alt2=1;
+ }
+ else if ( ((LA2_0>='1' && LA2_0<='9')) ) {
+ alt2=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("344:3: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:4: '0'
+ {
+ match('0');
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:10: '1' .. '9' ( '0' .. '9' )*
+ {
+ matchRange('1','9');
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:19: ( '0' .. '9' )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>='0' && LA1_0<='9')) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:344:19: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end IntLiteral
+
+ // $ANTLR start StringLiteral
+ public void mStringLiteral() throws RecognitionException {
+ try {
+ int _type = StringLiteral;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:348:3: ( '\\\"' ( EscapeSequence | ~ ( '\\\\' | '\\\"' ) )* '\\\"' | '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\'' )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\"') ) {
+ alt5=1;
+ }
+ else if ( (LA5_0=='\'') ) {
+ alt5=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("347:1: StringLiteral : ( '\\\"' ( EscapeSequence | ~ ( '\\\\' | '\\\"' ) )* '\\\"' | '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\'' );", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:348:3: '\\\"' ( EscapeSequence | ~ ( '\\\\' | '\\\"' ) )* '\\\"'
+ {
+ match('\"');
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:348:8: ( EscapeSequence | ~ ( '\\\\' | '\\\"' ) )*
+ loop3:
+ do {
+ int alt3=3;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='\\') ) {
+ alt3=1;
+ }
+ else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFE')) ) {
+ alt3=2;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:348:10: EscapeSequence
+ {
+ mEscapeSequence();
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:348:27: ~ ( '\\\\' | '\\\"' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:349:8: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\''
+ {
+ match('\'');
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:349:13: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFE')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:349:15: EscapeSequence
+ {
+ mEscapeSequence();
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:349:32: ~ ( '\\'' | '\\\\' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end StringLiteral
+
+ // $ANTLR start EscapeSequence
+ public void mEscapeSequence() throws RecognitionException {
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:353:3: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
+ int alt6=3;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\\') ) {
+ switch ( input.LA(2) ) {
+ case '\"':
+ case '\'':
+ case '\\':
+ case 'b':
+ case 'f':
+ case 'n':
+ case 'r':
+ case 't':
+ {
+ alt6=1;
+ }
+ break;
+ case 'u':
+ {
+ alt6=2;
+ }
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ {
+ alt6=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("352:10: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 6, 1, input);
+
+ throw nvae;
+ }
+
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("352:10: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:353:3: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+ {
+ 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.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:354:9: UnicodeEscape
+ {
+ mUnicodeEscape();
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:355:9: OctalEscape
+ {
+ mOctalEscape();
+
+ }
+ break;
+
+ }
+ }
+ finally {
+ }
+ }
+ // $ANTLR end EscapeSequence
+
+ // $ANTLR start OctalEscape
+ public void mOctalEscape() throws RecognitionException {
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:3: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+ int alt7=3;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='\\') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( ((LA7_1>='0' && LA7_1<='3')) ) {
+ int LA7_2 = input.LA(3);
+
+ if ( ((LA7_2>='0' && LA7_2<='7')) ) {
+ int LA7_5 = input.LA(4);
+
+ if ( ((LA7_5>='0' && LA7_5<='7')) ) {
+ alt7=1;
+ }
+ else {
+ alt7=2;}
+ }
+ else {
+ alt7=3;}
+ }
+ else if ( ((LA7_1>='4' && LA7_1<='7')) ) {
+ int LA7_3 = input.LA(3);
+
+ if ( ((LA7_3>='0' && LA7_3<='7')) ) {
+ alt7=2;
+ }
+ else {
+ alt7=3;}
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("358:10: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 7, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("358:10: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 7, 0, input);
+
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:3: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+ {
+ match('\\');
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:8: ( '0' .. '3' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:9: '0' .. '3'
+ {
+ matchRange('0','3');
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:19: ( '0' .. '7' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:20: '0' .. '7'
+ {
+ matchRange('0','7');
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:30: ( '0' .. '7' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:359:31: '0' .. '7'
+ {
+ matchRange('0','7');
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:360:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+ {
+ match('\\');
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:360:14: ( '0' .. '7' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:360:15: '0' .. '7'
+ {
+ matchRange('0','7');
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:360:25: ( '0' .. '7' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:360:26: '0' .. '7'
+ {
+ matchRange('0','7');
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:361:9: '\\\\' ( '0' .. '7' )
+ {
+ match('\\');
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:361:14: ( '0' .. '7' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:361:15: '0' .. '7'
+ {
+ matchRange('0','7');
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ finally {
+ }
+ }
+ // $ANTLR end OctalEscape
+
+ // $ANTLR start UnicodeEscape
+ public void mUnicodeEscape() throws RecognitionException {
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:365:3: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:365:3: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+ {
+ match('\\');
+ match('u');
+ mHexDigit();
+ mHexDigit();
+ mHexDigit();
+ mHexDigit();
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end UnicodeEscape
+
+ // $ANTLR start HexDigit
+ public void mHexDigit() throws RecognitionException {
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:369:3: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:369:3: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end HexDigit
+
+ // $ANTLR start DEFINE
+ public void mDEFINE() throws RecognitionException {
+ try {
+ int _type = DEFINE;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:373:3: ( 'DEFINE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:373:3: 'DEFINE'
+ {
+ xpandMode=true;
+ match("DEFINE");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end DEFINE
+
+ // $ANTLR start ENDDEFINE
+ public void mENDDEFINE() throws RecognitionException {
+ try {
+ int _type = ENDDEFINE;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:377:3: ( 'ENDDEFINE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:377:3: 'ENDDEFINE'
+ {
+ match("ENDDEFINE");
+
+ xpandMode=false;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end ENDDEFINE
+
+ // $ANTLR start AROUND
+ public void mAROUND() throws RecognitionException {
+ try {
+ int _type = AROUND;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:381:3: ( 'AROUND' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:381:3: 'AROUND'
+ {
+ xpandMode=true;
+ match("AROUND");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end AROUND
+
+ // $ANTLR start ENDAROUND
+ public void mENDAROUND() throws RecognitionException {
+ try {
+ int _type = ENDAROUND;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:385:3: ( 'ENDAROUND' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:385:3: 'ENDAROUND'
+ {
+ match("ENDAROUND");
+
+ xpandMode=false;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end ENDAROUND
+
+ // $ANTLR start Identifier
+ public void mIdentifier() throws RecognitionException {
+ try {
+ int _type = Identifier;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:389:3: ( ( '^' )? Letter ( Letter | JavaIDDigit )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:389:3: ( '^' )? Letter ( Letter | JavaIDDigit )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:389:3: ( '^' )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='^') ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:389:4: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ mLetter();
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:389:17: ( Letter | JavaIDDigit )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='$'||(LA9_0>='0' && LA9_0<='9')||(LA9_0>='A' && LA9_0<='Z')||LA9_0=='_'||(LA9_0>='a' && LA9_0<='z')||(LA9_0>='\u00C0' && LA9_0<='\u00D6')||(LA9_0>='\u00D8' && LA9_0<='\u00F6')||(LA9_0>='\u00F8' && LA9_0<='\u1FFF')||(LA9_0>='\u3040' && LA9_0<='\u318F')||(LA9_0>='\u3300' && LA9_0<='\u337F')||(LA9_0>='\u3400' && LA9_0<='\u3D2D')||(LA9_0>='\u4E00' && LA9_0<='\u9FFF')||(LA9_0>='\uF900' && LA9_0<='\uFAFF')) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:
+ {
+ if ( input.LA(1)=='$'||(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.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u1FFF')||(input.LA(1)>='\u3040' && input.LA(1)<='\u318F')||(input.LA(1)>='\u3300' && input.LA(1)<='\u337F')||(input.LA(1)>='\u3400' && input.LA(1)<='\u3D2D')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FFF')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFAFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end Identifier
+
+ // $ANTLR start Letter
+ public void mLetter() throws RecognitionException {
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:393:3: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:
+ {
+ if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u1FFF')||(input.LA(1)>='\u3040' && input.LA(1)<='\u318F')||(input.LA(1)>='\u3300' && input.LA(1)<='\u337F')||(input.LA(1)>='\u3400' && input.LA(1)<='\u3D2D')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FFF')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFAFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end Letter
+
+ // $ANTLR start JavaIDDigit
+ public void mJavaIDDigit() throws RecognitionException {
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:410:8: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' .. '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' .. '\\u0ed9' | '\\u1040' .. '\\u1049' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u06F0' && input.LA(1)<='\u06F9')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09EF')||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A6F')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end JavaIDDigit
+
+ // $ANTLR start WS
+ public void mWS() throws RecognitionException {
+ try {
+ int _type = WS;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:429:3: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:429:3: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end WS
+
+ // $ANTLR start COMMENT
+ public void mCOMMENT() throws RecognitionException {
+ try {
+ int _type = COMMENT;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:433:3: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:433:3: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:433:8: ( options {greedy=false; } : . )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='*') ) {
+ int LA10_1 = input.LA(2);
+
+ if ( (LA10_1=='/') ) {
+ alt10=2;
+ }
+ else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFE')) ) {
+ alt10=1;
+ }
+
+
+ }
+ else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFE')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:433:36: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ match("*/");
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end COMMENT
+
+ // $ANTLR start LINE_COMMENT
+ public void mLINE_COMMENT() throws RecognitionException {
+ try {
+ int _type = LINE_COMMENT;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:3: ( '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' | EOF ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:3: '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' | EOF )
+ {
+ match("//");
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:8: (~ ( '\\n' | '\\r' ) )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\u0000' && LA11_0<='\t')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\uFFFE')) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:8: ~ ( '\\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)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:22: ( ( '\\r' )? '\\n' | EOF )
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='\n'||LA13_0=='\r') ) {
+ alt13=1;
+ }
+ else {
+ alt13=2;}
+ switch (alt13) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:23: ( '\\r' )? '\\n'
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:23: ( '\\r' )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\r') ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:23: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:437:34: EOF
+ {
+ match(EOF);
+
+ }
+ break;
+
+ }
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LINE_COMMENT
+
+ // $ANTLR start REM_COMMENT_OUT
+ public void mREM_COMMENT_OUT() throws RecognitionException {
+ try {
+ int _type = REM_COMMENT_OUT;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:441:3: ({...}? => LG 'REM' RG ( options {greedy=false; } : . )* '\\u00ABENDREM' RG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:441:3: {...}? => LG 'REM' RG ( options {greedy=false; } : . )* '\\u00ABENDREM' RG
+ {
+ if ( !(!xpandMode) ) {
+ throw new FailedPredicateException(input, "REM_COMMENT_OUT", "!xpandMode");
+ }
+ mLG();
+ match("REM");
+
+ mRG();
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:441:31: ( options {greedy=false; } : . )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='\u00AB') ) {
+ int LA14_1 = input.LA(2);
+
+ if ( (LA14_1=='E') ) {
+ int LA14_3 = input.LA(3);
+
+ if ( (LA14_3=='N') ) {
+ int LA14_4 = input.LA(4);
+
+ if ( (LA14_4=='D') ) {
+ int LA14_5 = input.LA(5);
+
+ if ( (LA14_5=='R') ) {
+ int LA14_6 = input.LA(6);
+
+ if ( (LA14_6=='E') ) {
+ int LA14_7 = input.LA(7);
+
+ if ( (LA14_7=='M') ) {
+ int LA14_8 = input.LA(8);
+
+ if ( (LA14_8=='\u00BB') ) {
+ alt14=2;
+ }
+ else if ( ((LA14_8>='\u0000' && LA14_8<='\u00BA')||(LA14_8>='\u00BC' && LA14_8<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_7>='\u0000' && LA14_7<='L')||(LA14_7>='N' && LA14_7<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_6>='\u0000' && LA14_6<='D')||(LA14_6>='F' && LA14_6<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_5>='\u0000' && LA14_5<='Q')||(LA14_5>='S' && LA14_5<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_4>='\u0000' && LA14_4<='C')||(LA14_4>='E' && LA14_4<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_3>='\u0000' && LA14_3<='M')||(LA14_3>='O' && LA14_3<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_1>='\u0000' && LA14_1<='D')||(LA14_1>='F' && LA14_1<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_0>='\u0000' && LA14_0<='\u00AA')||(LA14_0>='\u00AC' && LA14_0<='\uFFFE')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:441:59: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ match("\u00ABENDREM");
+
+ mRG();
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end REM_COMMENT_OUT
+
+ // $ANTLR start REM_COMMENT
+ public void mREM_COMMENT() throws RecognitionException {
+ try {
+ int _type = REM_COMMENT;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:445:3: ({...}? => 'REM' RG ( options {greedy=false; } : . )* '\\u00ABENDREM' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:445:3: {...}? => 'REM' RG ( options {greedy=false; } : . )* '\\u00ABENDREM'
+ {
+ if ( !(xpandMode) ) {
+ throw new FailedPredicateException(input, "REM_COMMENT", "xpandMode");
+ }
+ match("REM");
+
+ mRG();
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:445:27: ( options {greedy=false; } : . )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0=='\u00AB') ) {
+ int LA15_1 = input.LA(2);
+
+ if ( (LA15_1=='E') ) {
+ int LA15_3 = input.LA(3);
+
+ if ( (LA15_3=='N') ) {
+ int LA15_4 = input.LA(4);
+
+ if ( (LA15_4=='D') ) {
+ int LA15_5 = input.LA(5);
+
+ if ( (LA15_5=='R') ) {
+ int LA15_6 = input.LA(6);
+
+ if ( (LA15_6=='E') ) {
+ int LA15_7 = input.LA(7);
+
+ if ( (LA15_7=='M') ) {
+ alt15=2;
+ }
+ else if ( ((LA15_7>='\u0000' && LA15_7<='L')||(LA15_7>='N' && LA15_7<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ }
+ else if ( ((LA15_6>='\u0000' && LA15_6<='D')||(LA15_6>='F' && LA15_6<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ }
+ else if ( ((LA15_5>='\u0000' && LA15_5<='Q')||(LA15_5>='S' && LA15_5<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ }
+ else if ( ((LA15_4>='\u0000' && LA15_4<='C')||(LA15_4>='E' && LA15_4<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ }
+ else if ( ((LA15_3>='\u0000' && LA15_3<='M')||(LA15_3>='O' && LA15_3<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ }
+ else if ( ((LA15_1>='\u0000' && LA15_1<='D')||(LA15_1>='F' && LA15_1<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ }
+ else if ( ((LA15_0>='\u0000' && LA15_0<='\u00AA')||(LA15_0>='\u00AC' && LA15_0<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:445:55: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ match("\u00ABENDREM");
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end REM_COMMENT
+
+ // $ANTLR start TEXT
+ public void mTEXT() throws RecognitionException {
+ try {
+ int _type = TEXT;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:449:3: ({...}? => RG (~ ( LG ) )* ( LG )? )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:449:3: {...}? => RG (~ ( LG ) )* ( LG )?
+ {
+ if ( !(xpandMode) ) {
+ throw new FailedPredicateException(input, "TEXT", "xpandMode");
+ }
+ mRG();
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:449:21: (~ ( LG ) )*
+ loop16:
+ do {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( ((LA16_0>='\u0000' && LA16_0<='\u00AA')||(LA16_0>='\u00AC' && LA16_0<='\uFFFE')) ) {
+ alt16=1;
+ }
+
+
+ switch (alt16) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:449:21: ~ ( LG )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\u00AA')||(input.LA(1)>='\u00AC' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:449:28: ( LG )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='\u00AB') ) {
+ alt17=1;
+ }
+ switch (alt17) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:449:29: LG
+ {
+ mLG();
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end TEXT
+
+ // $ANTLR start LG
+ public void mLG() throws RecognitionException {
+ try {
+ int _type = LG;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:453:3: ( '\\u00AB' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:453:3: '\\u00AB'
+ {
+ match('\u00AB');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LG
+
+ // $ANTLR start RG
+ public void mRG() throws RecognitionException {
+ try {
+ int _type = RG;
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:457:3: ( '\\u00BB' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:457:3: '\\u00BB'
+ {
+ match('\u00BB');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RG
+
+ public void mTokens() throws RecognitionException {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:10: ( T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | IntLiteral | StringLiteral | DEFINE | ENDDEFINE | AROUND | ENDAROUND | Identifier | WS | COMMENT | LINE_COMMENT | REM_COMMENT_OUT | REM_COMMENT | TEXT | LG | RG )
+ int alt18=102;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0=='I') ) {
+ switch ( input.LA(2) ) {
+ case 'F':
+ {
+ int LA18_53 = input.LA(3);
+
+ if ( (LA18_53=='$'||(LA18_53>='0' && LA18_53<='9')||(LA18_53>='A' && LA18_53<='Z')||LA18_53=='_'||(LA18_53>='a' && LA18_53<='z')||(LA18_53>='\u00C0' && LA18_53<='\u00D6')||(LA18_53>='\u00D8' && LA18_53<='\u00F6')||(LA18_53>='\u00F8' && LA18_53<='\u1FFF')||(LA18_53>='\u3040' && LA18_53<='\u318F')||(LA18_53>='\u3300' && LA18_53<='\u337F')||(LA18_53>='\u3400' && LA18_53<='\u3D2D')||(LA18_53>='\u4E00' && LA18_53<='\u9FFF')||(LA18_53>='\uF900' && LA18_53<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=22;}
+ }
+ break;
+ case 'D':
+ {
+ int LA18_54 = input.LA(3);
+
+ if ( (LA18_54=='$'||(LA18_54>='0' && LA18_54<='9')||(LA18_54>='A' && LA18_54<='Z')||LA18_54=='_'||(LA18_54>='a' && LA18_54<='z')||(LA18_54>='\u00C0' && LA18_54<='\u00D6')||(LA18_54>='\u00D8' && LA18_54<='\u00F6')||(LA18_54>='\u00F8' && LA18_54<='\u1FFF')||(LA18_54>='\u3040' && LA18_54<='\u318F')||(LA18_54>='\u3300' && LA18_54<='\u337F')||(LA18_54>='\u3400' && LA18_54<='\u3D2D')||(LA18_54>='\u4E00' && LA18_54<='\u9FFF')||(LA18_54>='\uF900' && LA18_54<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=31;}
+ }
+ break;
+ case 'T':
+ {
+ int LA18_55 = input.LA(3);
+
+ if ( (LA18_55=='E') ) {
+ int LA18_125 = input.LA(4);
+
+ if ( (LA18_125=='R') ) {
+ int LA18_178 = input.LA(5);
+
+ if ( (LA18_178=='A') ) {
+ int LA18_235 = input.LA(6);
+
+ if ( (LA18_235=='T') ) {
+ int LA18_288 = input.LA(7);
+
+ if ( (LA18_288=='O') ) {
+ int LA18_331 = input.LA(8);
+
+ if ( (LA18_331=='R') ) {
+ int LA18_372 = input.LA(9);
+
+ if ( (LA18_372=='$'||(LA18_372>='0' && LA18_372<='9')||(LA18_372>='A' && LA18_372<='Z')||LA18_372=='_'||(LA18_372>='a' && LA18_372<='z')||(LA18_372>='\u00C0' && LA18_372<='\u00D6')||(LA18_372>='\u00D8' && LA18_372<='\u00F6')||(LA18_372>='\u00F8' && LA18_372<='\u1FFF')||(LA18_372>='\u3040' && LA18_372<='\u318F')||(LA18_372>='\u3300' && LA18_372<='\u337F')||(LA18_372>='\u3400' && LA18_372<='\u3D2D')||(LA18_372>='\u4E00' && LA18_372<='\u9FFF')||(LA18_372>='\uF900' && LA18_372<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=20;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'M':
+ {
+ int LA18_56 = input.LA(3);
+
+ if ( (LA18_56=='P') ) {
+ int LA18_126 = input.LA(4);
+
+ if ( (LA18_126=='O') ) {
+ int LA18_179 = input.LA(5);
+
+ if ( (LA18_179=='R') ) {
+ int LA18_236 = input.LA(6);
+
+ if ( (LA18_236=='T') ) {
+ int LA18_289 = input.LA(7);
+
+ if ( (LA18_289=='$'||(LA18_289>='0' && LA18_289<='9')||(LA18_289>='A' && LA18_289<='Z')||LA18_289=='_'||(LA18_289>='a' && LA18_289<='z')||(LA18_289>='\u00C0' && LA18_289<='\u00D6')||(LA18_289>='\u00D8' && LA18_289<='\u00F6')||(LA18_289>='\u00F8' && LA18_289<='\u1FFF')||(LA18_289>='\u3040' && LA18_289<='\u318F')||(LA18_289>='\u3300' && LA18_289<='\u337F')||(LA18_289>='\u3400' && LA18_289<='\u3D2D')||(LA18_289>='\u4E00' && LA18_289<='\u9FFF')||(LA18_289>='\uF900' && LA18_289<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=1;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='E') ) {
+ switch ( input.LA(2) ) {
+ case 'N':
+ {
+ int LA18_57 = input.LA(3);
+
+ if ( (LA18_57=='D') ) {
+ switch ( input.LA(4) ) {
+ case 'P':
+ {
+ int LA18_180 = input.LA(5);
+
+ if ( (LA18_180=='R') ) {
+ int LA18_237 = input.LA(6);
+
+ if ( (LA18_237=='O') ) {
+ int LA18_290 = input.LA(7);
+
+ if ( (LA18_290=='T') ) {
+ int LA18_333 = input.LA(8);
+
+ if ( (LA18_333=='E') ) {
+ int LA18_373 = input.LA(9);
+
+ if ( (LA18_373=='C') ) {
+ int LA18_397 = input.LA(10);
+
+ if ( (LA18_397=='T') ) {
+ int LA18_410 = input.LA(11);
+
+ if ( (LA18_410=='$'||(LA18_410>='0' && LA18_410<='9')||(LA18_410>='A' && LA18_410<='Z')||LA18_410=='_'||(LA18_410>='a' && LA18_410<='z')||(LA18_410>='\u00C0' && LA18_410<='\u00D6')||(LA18_410>='\u00D8' && LA18_410<='\u00F6')||(LA18_410>='\u00F8' && LA18_410<='\u1FFF')||(LA18_410>='\u3040' && LA18_410<='\u318F')||(LA18_410>='\u3300' && LA18_410<='\u337F')||(LA18_410>='\u3400' && LA18_410<='\u3D2D')||(LA18_410>='\u4E00' && LA18_410<='\u9FFF')||(LA18_410>='\uF900' && LA18_410<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=33;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'D':
+ {
+ int LA18_181 = input.LA(5);
+
+ if ( (LA18_181=='E') ) {
+ int LA18_238 = input.LA(6);
+
+ if ( (LA18_238=='F') ) {
+ int LA18_291 = input.LA(7);
+
+ if ( (LA18_291=='I') ) {
+ int LA18_334 = input.LA(8);
+
+ if ( (LA18_334=='N') ) {
+ int LA18_374 = input.LA(9);
+
+ if ( (LA18_374=='E') ) {
+ int LA18_398 = input.LA(10);
+
+ if ( (LA18_398=='$'||(LA18_398>='0' && LA18_398<='9')||(LA18_398>='A' && LA18_398<='Z')||LA18_398=='_'||(LA18_398>='a' && LA18_398<='z')||(LA18_398>='\u00C0' && LA18_398<='\u00D6')||(LA18_398>='\u00D8' && LA18_398<='\u00F6')||(LA18_398>='\u00F8' && LA18_398<='\u1FFF')||(LA18_398>='\u3040' && LA18_398<='\u318F')||(LA18_398>='\u3300' && LA18_398<='\u337F')||(LA18_398>='\u3400' && LA18_398<='\u3D2D')||(LA18_398>='\u4E00' && LA18_398<='\u9FFF')||(LA18_398>='\uF900' && LA18_398<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=91;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'L':
+ {
+ int LA18_182 = input.LA(5);
+
+ if ( (LA18_182=='E') ) {
+ int LA18_239 = input.LA(6);
+
+ if ( (LA18_239=='T') ) {
+ int LA18_292 = input.LA(7);
+
+ if ( (LA18_292=='$'||(LA18_292>='0' && LA18_292<='9')||(LA18_292>='A' && LA18_292<='Z')||LA18_292=='_'||(LA18_292>='a' && LA18_292<='z')||(LA18_292>='\u00C0' && LA18_292<='\u00D6')||(LA18_292>='\u00D8' && LA18_292<='\u00F6')||(LA18_292>='\u00F8' && LA18_292<='\u1FFF')||(LA18_292>='\u3040' && LA18_292<='\u318F')||(LA18_292>='\u3300' && LA18_292<='\u337F')||(LA18_292>='\u3400' && LA18_292<='\u3D2D')||(LA18_292>='\u4E00' && LA18_292<='\u9FFF')||(LA18_292>='\uF900' && LA18_292<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=27;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'A':
+ {
+ int LA18_183 = input.LA(5);
+
+ if ( (LA18_183=='R') ) {
+ int LA18_240 = input.LA(6);
+
+ if ( (LA18_240=='O') ) {
+ int LA18_293 = input.LA(7);
+
+ if ( (LA18_293=='U') ) {
+ int LA18_336 = input.LA(8);
+
+ if ( (LA18_336=='N') ) {
+ int LA18_375 = input.LA(9);
+
+ if ( (LA18_375=='D') ) {
+ int LA18_399 = input.LA(10);
+
+ if ( (LA18_399=='$'||(LA18_399>='0' && LA18_399<='9')||(LA18_399>='A' && LA18_399<='Z')||LA18_399=='_'||(LA18_399>='a' && LA18_399<='z')||(LA18_399>='\u00C0' && LA18_399<='\u00D6')||(LA18_399>='\u00D8' && LA18_399<='\u00F6')||(LA18_399>='\u00F8' && LA18_399<='\u1FFF')||(LA18_399>='\u3040' && LA18_399<='\u318F')||(LA18_399>='\u3300' && LA18_399<='\u337F')||(LA18_399>='\u3400' && LA18_399<='\u3D2D')||(LA18_399>='\u4E00' && LA18_399<='\u9FFF')||(LA18_399>='\uF900' && LA18_399<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=93;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'F':
+ {
+ switch ( input.LA(5) ) {
+ case 'I':
+ {
+ int LA18_241 = input.LA(6);
+
+ if ( (LA18_241=='L') ) {
+ int LA18_294 = input.LA(7);
+
+ if ( (LA18_294=='E') ) {
+ int LA18_337 = input.LA(8);
+
+ if ( (LA18_337=='$'||(LA18_337>='0' && LA18_337<='9')||(LA18_337>='A' && LA18_337<='Z')||LA18_337=='_'||(LA18_337>='a' && LA18_337<='z')||(LA18_337>='\u00C0' && LA18_337<='\u00D6')||(LA18_337>='\u00D8' && LA18_337<='\u00F6')||(LA18_337>='\u00F8' && LA18_337<='\u1FFF')||(LA18_337>='\u3040' && LA18_337<='\u318F')||(LA18_337>='\u3300' && LA18_337<='\u337F')||(LA18_337>='\u3400' && LA18_337<='\u3D2D')||(LA18_337>='\u4E00' && LA18_337<='\u9FFF')||(LA18_337>='\uF900' && LA18_337<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=18;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'O':
+ {
+ int LA18_242 = input.LA(6);
+
+ if ( (LA18_242=='R') ) {
+ int LA18_295 = input.LA(7);
+
+ if ( (LA18_295=='E') ) {
+ int LA18_338 = input.LA(8);
+
+ if ( (LA18_338=='A') ) {
+ int LA18_377 = input.LA(9);
+
+ if ( (LA18_377=='C') ) {
+ int LA18_400 = input.LA(10);
+
+ if ( (LA18_400=='H') ) {
+ int LA18_413 = input.LA(11);
+
+ if ( (LA18_413=='$'||(LA18_413>='0' && LA18_413<='9')||(LA18_413>='A' && LA18_413<='Z')||LA18_413=='_'||(LA18_413>='a' && LA18_413<='z')||(LA18_413>='\u00C0' && LA18_413<='\u00D6')||(LA18_413>='\u00D8' && LA18_413<='\u00F6')||(LA18_413>='\u00F8' && LA18_413<='\u1FFF')||(LA18_413>='\u3040' && LA18_413<='\u318F')||(LA18_413>='\u3300' && LA18_413<='\u337F')||(LA18_413>='\u3400' && LA18_413<='\u3D2D')||(LA18_413>='\u4E00' && LA18_413<='\u9FFF')||(LA18_413>='\uF900' && LA18_413<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=21;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ break;
+ case 'I':
+ {
+ int LA18_185 = input.LA(5);
+
+ if ( (LA18_185=='F') ) {
+ int LA18_243 = input.LA(6);
+
+ if ( (LA18_243=='$'||(LA18_243>='0' && LA18_243<='9')||(LA18_243>='A' && LA18_243<='Z')||LA18_243=='_'||(LA18_243>='a' && LA18_243<='z')||(LA18_243>='\u00C0' && LA18_243<='\u00D6')||(LA18_243>='\u00D8' && LA18_243<='\u00F6')||(LA18_243>='\u00F8' && LA18_243<='\u1FFF')||(LA18_243>='\u3040' && LA18_243<='\u318F')||(LA18_243>='\u3300' && LA18_243<='\u337F')||(LA18_243>='\u3400' && LA18_243<='\u3D2D')||(LA18_243>='\u4E00' && LA18_243<='\u9FFF')||(LA18_243>='\uF900' && LA18_243<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=23;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'X':
+ {
+ switch ( input.LA(3) ) {
+ case 'T':
+ {
+ int LA18_128 = input.LA(4);
+
+ if ( (LA18_128=='E') ) {
+ int LA18_186 = input.LA(5);
+
+ if ( (LA18_186=='N') ) {
+ int LA18_244 = input.LA(6);
+
+ if ( (LA18_244=='S') ) {
+ int LA18_297 = input.LA(7);
+
+ if ( (LA18_297=='I') ) {
+ int LA18_339 = input.LA(8);
+
+ if ( (LA18_339=='O') ) {
+ int LA18_378 = input.LA(9);
+
+ if ( (LA18_378=='N') ) {
+ int LA18_401 = input.LA(10);
+
+ if ( (LA18_401=='$'||(LA18_401>='0' && LA18_401<='9')||(LA18_401>='A' && LA18_401<='Z')||LA18_401=='_'||(LA18_401>='a' && LA18_401<='z')||(LA18_401>='\u00C0' && LA18_401<='\u00D6')||(LA18_401>='\u00D8' && LA18_401<='\u00F6')||(LA18_401>='\u00F8' && LA18_401<='\u1FFF')||(LA18_401>='\u3040' && LA18_401<='\u318F')||(LA18_401>='\u3300' && LA18_401<='\u337F')||(LA18_401>='\u3400' && LA18_401<='\u3D2D')||(LA18_401>='\u4E00' && LA18_401<='\u9FFF')||(LA18_401>='\uF900' && LA18_401<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=2;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'P':
+ {
+ int LA18_129 = input.LA(4);
+
+ if ( (LA18_129=='A') ) {
+ int LA18_187 = input.LA(5);
+
+ if ( (LA18_187=='N') ) {
+ int LA18_245 = input.LA(6);
+
+ if ( (LA18_245=='D') ) {
+ int LA18_298 = input.LA(7);
+
+ if ( (LA18_298=='$'||(LA18_298>='0' && LA18_298<='9')||(LA18_298>='A' && LA18_298<='Z')||LA18_298=='_'||(LA18_298>='a' && LA18_298<='z')||(LA18_298>='\u00C0' && LA18_298<='\u00D6')||(LA18_298>='\u00D8' && LA18_298<='\u00F6')||(LA18_298>='\u00F8' && LA18_298<='\u1FFF')||(LA18_298>='\u3040' && LA18_298<='\u318F')||(LA18_298>='\u3300' && LA18_298<='\u337F')||(LA18_298>='\u3400' && LA18_298<='\u3D2D')||(LA18_298>='\u4E00' && LA18_298<='\u9FFF')||(LA18_298>='\uF900' && LA18_298<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=14;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ break;
+ case 'R':
+ {
+ int LA18_59 = input.LA(3);
+
+ if ( (LA18_59=='R') ) {
+ int LA18_130 = input.LA(4);
+
+ if ( (LA18_130=='O') ) {
+ int LA18_188 = input.LA(5);
+
+ if ( (LA18_188=='R') ) {
+ int LA18_246 = input.LA(6);
+
+ if ( (LA18_246=='$'||(LA18_246>='0' && LA18_246<='9')||(LA18_246>='A' && LA18_246<='Z')||LA18_246=='_'||(LA18_246>='a' && LA18_246<='z')||(LA18_246>='\u00C0' && LA18_246<='\u00D6')||(LA18_246>='\u00D8' && LA18_246<='\u00F6')||(LA18_246>='\u00F8' && LA18_246<='\u1FFF')||(LA18_246>='\u3040' && LA18_246<='\u318F')||(LA18_246>='\u3300' && LA18_246<='\u337F')||(LA18_246>='\u3400' && LA18_246<='\u3D2D')||(LA18_246>='\u4E00' && LA18_246<='\u9FFF')||(LA18_246>='\uF900' && LA18_246<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=13;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'L':
+ {
+ int LA18_60 = input.LA(3);
+
+ if ( (LA18_60=='S') ) {
+ int LA18_131 = input.LA(4);
+
+ if ( (LA18_131=='E') ) {
+ int LA18_189 = input.LA(5);
+
+ if ( (LA18_189=='I') ) {
+ int LA18_247 = input.LA(6);
+
+ if ( (LA18_247=='F') ) {
+ int LA18_300 = input.LA(7);
+
+ if ( (LA18_300=='$'||(LA18_300>='0' && LA18_300<='9')||(LA18_300>='A' && LA18_300<='Z')||LA18_300=='_'||(LA18_300>='a' && LA18_300<='z')||(LA18_300>='\u00C0' && LA18_300<='\u00D6')||(LA18_300>='\u00D8' && LA18_300<='\u00F6')||(LA18_300>='\u00F8' && LA18_300<='\u1FFF')||(LA18_300>='\u3040' && LA18_300<='\u318F')||(LA18_300>='\u3300' && LA18_300<='\u337F')||(LA18_300>='\u3400' && LA18_300<='\u3D2D')||(LA18_300>='\u4E00' && LA18_300<='\u9FFF')||(LA18_300>='\uF900' && LA18_300<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=24;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_189=='$'||(LA18_189>='0' && LA18_189<='9')||(LA18_189>='A' && LA18_189<='H')||(LA18_189>='J' && LA18_189<='Z')||LA18_189=='_'||(LA18_189>='a' && LA18_189<='z')||(LA18_189>='\u00C0' && LA18_189<='\u00D6')||(LA18_189>='\u00D8' && LA18_189<='\u00F6')||(LA18_189>='\u00F8' && LA18_189<='\u1FFF')||(LA18_189>='\u3040' && LA18_189<='\u318F')||(LA18_189>='\u3300' && LA18_189<='\u337F')||(LA18_189>='\u3400' && LA18_189<='\u3D2D')||(LA18_189>='\u4E00' && LA18_189<='\u9FFF')||(LA18_189>='\uF900' && LA18_189<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=25;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='i') ) {
+ switch ( input.LA(2) ) {
+ case 'm':
+ {
+ int LA18_61 = input.LA(3);
+
+ if ( (LA18_61=='p') ) {
+ switch ( input.LA(4) ) {
+ case 'o':
+ {
+ int LA18_190 = input.LA(5);
+
+ if ( (LA18_190=='r') ) {
+ int LA18_249 = input.LA(6);
+
+ if ( (LA18_249=='t') ) {
+ int LA18_301 = input.LA(7);
+
+ if ( (LA18_301=='$'||(LA18_301>='0' && LA18_301<='9')||(LA18_301>='A' && LA18_301<='Z')||LA18_301=='_'||(LA18_301>='a' && LA18_301<='z')||(LA18_301>='\u00C0' && LA18_301<='\u00D6')||(LA18_301>='\u00D8' && LA18_301<='\u00F6')||(LA18_301>='\u00F8' && LA18_301<='\u1FFF')||(LA18_301>='\u3040' && LA18_301<='\u318F')||(LA18_301>='\u3300' && LA18_301<='\u337F')||(LA18_301>='\u3400' && LA18_301<='\u3D2D')||(LA18_301>='\u4E00' && LA18_301<='\u9FFF')||(LA18_301>='\uF900' && LA18_301<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=3;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'l':
+ {
+ int LA18_191 = input.LA(5);
+
+ if ( (LA18_191=='i') ) {
+ int LA18_250 = input.LA(6);
+
+ if ( (LA18_250=='e') ) {
+ int LA18_302 = input.LA(7);
+
+ if ( (LA18_302=='s') ) {
+ int LA18_343 = input.LA(8);
+
+ if ( (LA18_343=='$'||(LA18_343>='0' && LA18_343<='9')||(LA18_343>='A' && LA18_343<='Z')||LA18_343=='_'||(LA18_343>='a' && LA18_343<='z')||(LA18_343>='\u00C0' && LA18_343<='\u00D6')||(LA18_343>='\u00D8' && LA18_343<='\u00F6')||(LA18_343>='\u00F8' && LA18_343<='\u1FFF')||(LA18_343>='\u3040' && LA18_343<='\u318F')||(LA18_343>='\u3300' && LA18_343<='\u337F')||(LA18_343>='\u3400' && LA18_343<='\u3D2D')||(LA18_343>='\u4E00' && LA18_343<='\u9FFF')||(LA18_343>='\uF900' && LA18_343<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=61;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'f':
+ {
+ int LA18_62 = input.LA(3);
+
+ if ( (LA18_62=='$'||(LA18_62>='0' && LA18_62<='9')||(LA18_62>='A' && LA18_62<='Z')||LA18_62=='_'||(LA18_62>='a' && LA18_62<='z')||(LA18_62>='\u00C0' && LA18_62<='\u00D6')||(LA18_62>='\u00D8' && LA18_62<='\u00F6')||(LA18_62>='\u00F8' && LA18_62<='\u1FFF')||(LA18_62>='\u3040' && LA18_62<='\u318F')||(LA18_62>='\u3300' && LA18_62<='\u337F')||(LA18_62>='\u3400' && LA18_62<='\u3D2D')||(LA18_62>='\u4E00' && LA18_62<='\u9FFF')||(LA18_62>='\uF900' && LA18_62<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=35;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0==';') ) {
+ alt18=4;
+ }
+ else if ( (LA18_0=='e') ) {
+ switch ( input.LA(2) ) {
+ case 'l':
+ {
+ int LA18_63 = input.LA(3);
+
+ if ( (LA18_63=='s') ) {
+ int LA18_134 = input.LA(4);
+
+ if ( (LA18_134=='e') ) {
+ int LA18_192 = input.LA(5);
+
+ if ( (LA18_192=='$'||(LA18_192>='0' && LA18_192<='9')||(LA18_192>='A' && LA18_192<='Z')||LA18_192=='_'||(LA18_192>='a' && LA18_192<='z')||(LA18_192>='\u00C0' && LA18_192<='\u00D6')||(LA18_192>='\u00D8' && LA18_192<='\u00F6')||(LA18_192>='\u00F8' && LA18_192<='\u1FFF')||(LA18_192>='\u3040' && LA18_192<='\u318F')||(LA18_192>='\u3300' && LA18_192<='\u337F')||(LA18_192>='\u3400' && LA18_192<='\u3D2D')||(LA18_192>='\u4E00' && LA18_192<='\u9FFF')||(LA18_192>='\uF900' && LA18_192<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=53;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'x':
+ {
+ switch ( input.LA(3) ) {
+ case 't':
+ {
+ int LA18_135 = input.LA(4);
+
+ if ( (LA18_135=='e') ) {
+ int LA18_193 = input.LA(5);
+
+ if ( (LA18_193=='n') ) {
+ int LA18_252 = input.LA(6);
+
+ if ( (LA18_252=='s') ) {
+ int LA18_303 = input.LA(7);
+
+ if ( (LA18_303=='i') ) {
+ int LA18_344 = input.LA(8);
+
+ if ( (LA18_344=='o') ) {
+ int LA18_380 = input.LA(9);
+
+ if ( (LA18_380=='n') ) {
+ int LA18_402 = input.LA(10);
+
+ if ( (LA18_402=='$'||(LA18_402>='0' && LA18_402<='9')||(LA18_402>='A' && LA18_402<='Z')||LA18_402=='_'||(LA18_402>='a' && LA18_402<='z')||(LA18_402>='\u00C0' && LA18_402<='\u00D6')||(LA18_402>='\u00D8' && LA18_402<='\u00F6')||(LA18_402>='\u00F8' && LA18_402<='\u1FFF')||(LA18_402>='\u3040' && LA18_402<='\u318F')||(LA18_402>='\u3300' && LA18_402<='\u337F')||(LA18_402>='\u3400' && LA18_402<='\u3D2D')||(LA18_402>='\u4E00' && LA18_402<='\u9FFF')||(LA18_402>='\uF900' && LA18_402<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=5;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'i':
+ {
+ int LA18_136 = input.LA(4);
+
+ if ( (LA18_136=='s') ) {
+ int LA18_194 = input.LA(5);
+
+ if ( (LA18_194=='t') ) {
+ int LA18_253 = input.LA(6);
+
+ if ( (LA18_253=='s') ) {
+ int LA18_304 = input.LA(7);
+
+ if ( (LA18_304=='$'||(LA18_304>='0' && LA18_304<='9')||(LA18_304>='A' && LA18_304<='Z')||LA18_304=='_'||(LA18_304>='a' && LA18_304<='z')||(LA18_304>='\u00C0' && LA18_304<='\u00D6')||(LA18_304>='\u00D8' && LA18_304<='\u00F6')||(LA18_304>='\u00F8' && LA18_304<='\u1FFF')||(LA18_304>='\u3040' && LA18_304<='\u318F')||(LA18_304>='\u3300' && LA18_304<='\u337F')||(LA18_304>='\u3400' && LA18_304<='\u3D2D')||(LA18_304>='\u4E00' && LA18_304<='\u9FFF')||(LA18_304>='\uF900' && LA18_304<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=81;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='r') ) {
+ int LA18_6 = input.LA(2);
+
+ if ( (LA18_6=='e') ) {
+ switch ( input.LA(3) ) {
+ case 'e':
+ {
+ int LA18_137 = input.LA(4);
+
+ if ( (LA18_137=='x') ) {
+ int LA18_195 = input.LA(5);
+
+ if ( (LA18_195=='p') ) {
+ int LA18_254 = input.LA(6);
+
+ if ( (LA18_254=='o') ) {
+ int LA18_305 = input.LA(7);
+
+ if ( (LA18_305=='r') ) {
+ int LA18_346 = input.LA(8);
+
+ if ( (LA18_346=='t') ) {
+ int LA18_381 = input.LA(9);
+
+ if ( (LA18_381=='$'||(LA18_381>='0' && LA18_381<='9')||(LA18_381>='A' && LA18_381<='Z')||LA18_381=='_'||(LA18_381>='a' && LA18_381<='z')||(LA18_381>='\u00C0' && LA18_381<='\u00D6')||(LA18_381>='\u00D8' && LA18_381<='\u00F6')||(LA18_381>='\u00F8' && LA18_381<='\u1FFF')||(LA18_381>='\u3040' && LA18_381<='\u318F')||(LA18_381>='\u3300' && LA18_381<='\u337F')||(LA18_381>='\u3400' && LA18_381<='\u3D2D')||(LA18_381>='\u4E00' && LA18_381<='\u9FFF')||(LA18_381>='\uF900' && LA18_381<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=6;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'j':
+ {
+ int LA18_138 = input.LA(4);
+
+ if ( (LA18_138=='e') ) {
+ int LA18_196 = input.LA(5);
+
+ if ( (LA18_196=='c') ) {
+ int LA18_255 = input.LA(6);
+
+ if ( (LA18_255=='t') ) {
+ int LA18_306 = input.LA(7);
+
+ if ( (LA18_306=='$'||(LA18_306>='0' && LA18_306<='9')||(LA18_306>='A' && LA18_306<='Z')||LA18_306=='_'||(LA18_306>='a' && LA18_306<='z')||(LA18_306>='\u00C0' && LA18_306<='\u00D6')||(LA18_306>='\u00D8' && LA18_306<='\u00F6')||(LA18_306>='\u00F8' && LA18_306<='\u1FFF')||(LA18_306>='\u3040' && LA18_306<='\u318F')||(LA18_306>='\u3300' && LA18_306<='\u337F')||(LA18_306>='\u3400' && LA18_306<='\u3D2D')||(LA18_306>='\u4E00' && LA18_306<='\u9FFF')||(LA18_306>='\uF900' && LA18_306<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=80;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='(') ) {
+ alt18=7;
+ }
+ else if ( (LA18_0==',') ) {
+ alt18=8;
+ }
+ else if ( (LA18_0=='*') ) {
+ alt18=9;
+ }
+ else if ( (LA18_0==')') ) {
+ alt18=10;
+ }
+ else if ( (LA18_0=='F') ) {
+ switch ( input.LA(2) ) {
+ case 'O':
+ {
+ int LA18_66 = input.LA(3);
+
+ if ( (LA18_66=='R') ) {
+ int LA18_139 = input.LA(4);
+
+ if ( (LA18_139=='E') ) {
+ int LA18_197 = input.LA(5);
+
+ if ( (LA18_197=='A') ) {
+ int LA18_256 = input.LA(6);
+
+ if ( (LA18_256=='C') ) {
+ int LA18_307 = input.LA(7);
+
+ if ( (LA18_307=='H') ) {
+ int LA18_348 = input.LA(8);
+
+ if ( (LA18_348=='$'||(LA18_348>='0' && LA18_348<='9')||(LA18_348>='A' && LA18_348<='Z')||LA18_348=='_'||(LA18_348>='a' && LA18_348<='z')||(LA18_348>='\u00C0' && LA18_348<='\u00D6')||(LA18_348>='\u00D8' && LA18_348<='\u00F6')||(LA18_348>='\u00F8' && LA18_348<='\u1FFF')||(LA18_348>='\u3040' && LA18_348<='\u318F')||(LA18_348>='\u3300' && LA18_348<='\u337F')||(LA18_348>='\u3400' && LA18_348<='\u3D2D')||(LA18_348>='\u4E00' && LA18_348<='\u9FFF')||(LA18_348>='\uF900' && LA18_348<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=15;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_139=='$'||(LA18_139>='0' && LA18_139<='9')||(LA18_139>='A' && LA18_139<='D')||(LA18_139>='F' && LA18_139<='Z')||LA18_139=='_'||(LA18_139>='a' && LA18_139<='z')||(LA18_139>='\u00C0' && LA18_139<='\u00D6')||(LA18_139>='\u00D8' && LA18_139<='\u00F6')||(LA18_139>='\u00F8' && LA18_139<='\u1FFF')||(LA18_139>='\u3040' && LA18_139<='\u318F')||(LA18_139>='\u3300' && LA18_139<='\u337F')||(LA18_139>='\u3400' && LA18_139<='\u3D2D')||(LA18_139>='\u4E00' && LA18_139<='\u9FFF')||(LA18_139>='\uF900' && LA18_139<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=11;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'I':
+ {
+ int LA18_67 = input.LA(3);
+
+ if ( (LA18_67=='L') ) {
+ int LA18_140 = input.LA(4);
+
+ if ( (LA18_140=='E') ) {
+ int LA18_199 = input.LA(5);
+
+ if ( (LA18_199=='$'||(LA18_199>='0' && LA18_199<='9')||(LA18_199>='A' && LA18_199<='Z')||LA18_199=='_'||(LA18_199>='a' && LA18_199<='z')||(LA18_199>='\u00C0' && LA18_199<='\u00D6')||(LA18_199>='\u00D8' && LA18_199<='\u00F6')||(LA18_199>='\u00F8' && LA18_199<='\u1FFF')||(LA18_199>='\u3040' && LA18_199<='\u318F')||(LA18_199>='\u3300' && LA18_199<='\u337F')||(LA18_199>='\u3400' && LA18_199<='\u3D2D')||(LA18_199>='\u4E00' && LA18_199<='\u9FFF')||(LA18_199>='\uF900' && LA18_199<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=17;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='-') ) {
+ int LA18_12 = input.LA(2);
+
+ if ( (LA18_12=='>') ) {
+ alt18=50;
+ }
+ else {
+ alt18=12;}
+ }
+ else if ( (LA18_0=='S') ) {
+ switch ( input.LA(2) ) {
+ case 'e':
+ {
+ int LA18_70 = input.LA(3);
+
+ if ( (LA18_70=='t') ) {
+ int LA18_141 = input.LA(4);
+
+ if ( (LA18_141=='$'||(LA18_141>='0' && LA18_141<='9')||(LA18_141>='A' && LA18_141<='Z')||LA18_141=='_'||(LA18_141>='a' && LA18_141<='z')||(LA18_141>='\u00C0' && LA18_141<='\u00D6')||(LA18_141>='\u00D8' && LA18_141<='\u00F6')||(LA18_141>='\u00F8' && LA18_141<='\u1FFF')||(LA18_141>='\u3040' && LA18_141<='\u318F')||(LA18_141>='\u3300' && LA18_141<='\u337F')||(LA18_141>='\u3400' && LA18_141<='\u3D2D')||(LA18_141>='\u4E00' && LA18_141<='\u9FFF')||(LA18_141>='\uF900' && LA18_141<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=47;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'E':
+ {
+ int LA18_71 = input.LA(3);
+
+ if ( (LA18_71=='P') ) {
+ int LA18_142 = input.LA(4);
+
+ if ( (LA18_142=='A') ) {
+ int LA18_201 = input.LA(5);
+
+ if ( (LA18_201=='R') ) {
+ int LA18_258 = input.LA(6);
+
+ if ( (LA18_258=='A') ) {
+ int LA18_308 = input.LA(7);
+
+ if ( (LA18_308=='T') ) {
+ int LA18_349 = input.LA(8);
+
+ if ( (LA18_349=='O') ) {
+ int LA18_383 = input.LA(9);
+
+ if ( (LA18_383=='R') ) {
+ int LA18_404 = input.LA(10);
+
+ if ( (LA18_404=='$'||(LA18_404>='0' && LA18_404<='9')||(LA18_404>='A' && LA18_404<='Z')||LA18_404=='_'||(LA18_404>='a' && LA18_404<='z')||(LA18_404>='\u00C0' && LA18_404<='\u00D6')||(LA18_404>='\u00D8' && LA18_404<='\u00F6')||(LA18_404>='\u00F8' && LA18_404<='\u1FFF')||(LA18_404>='\u3040' && LA18_404<='\u318F')||(LA18_404>='\u3300' && LA18_404<='\u337F')||(LA18_404>='\u3400' && LA18_404<='\u3D2D')||(LA18_404>='\u4E00' && LA18_404<='\u9FFF')||(LA18_404>='\uF900' && LA18_404<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=16;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='A') ) {
+ switch ( input.LA(2) ) {
+ case 'S':
+ {
+ int LA18_72 = input.LA(3);
+
+ if ( (LA18_72=='$'||(LA18_72>='0' && LA18_72<='9')||(LA18_72>='A' && LA18_72<='Z')||LA18_72=='_'||(LA18_72>='a' && LA18_72<='z')||(LA18_72>='\u00C0' && LA18_72<='\u00D6')||(LA18_72>='\u00D8' && LA18_72<='\u00F6')||(LA18_72>='\u00F8' && LA18_72<='\u1FFF')||(LA18_72>='\u3040' && LA18_72<='\u318F')||(LA18_72>='\u3300' && LA18_72<='\u337F')||(LA18_72>='\u3400' && LA18_72<='\u3D2D')||(LA18_72>='\u4E00' && LA18_72<='\u9FFF')||(LA18_72>='\uF900' && LA18_72<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=19;}
+ }
+ break;
+ case 'R':
+ {
+ int LA18_73 = input.LA(3);
+
+ if ( (LA18_73=='O') ) {
+ int LA18_144 = input.LA(4);
+
+ if ( (LA18_144=='U') ) {
+ int LA18_202 = input.LA(5);
+
+ if ( (LA18_202=='N') ) {
+ int LA18_259 = input.LA(6);
+
+ if ( (LA18_259=='D') ) {
+ int LA18_309 = input.LA(7);
+
+ if ( (LA18_309=='$'||(LA18_309>='0' && LA18_309<='9')||(LA18_309>='A' && LA18_309<='Z')||LA18_309=='_'||(LA18_309>='a' && LA18_309<='z')||(LA18_309>='\u00C0' && LA18_309<='\u00D6')||(LA18_309>='\u00D8' && LA18_309<='\u00F6')||(LA18_309>='\u00F8' && LA18_309<='\u1FFF')||(LA18_309>='\u3040' && LA18_309<='\u318F')||(LA18_309>='\u3300' && LA18_309<='\u337F')||(LA18_309>='\u3400' && LA18_309<='\u3D2D')||(LA18_309>='\u4E00' && LA18_309<='\u9FFF')||(LA18_309>='\uF900' && LA18_309<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=92;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='L') ) {
+ switch ( input.LA(2) ) {
+ case 'E':
+ {
+ int LA18_74 = input.LA(3);
+
+ if ( (LA18_74=='T') ) {
+ int LA18_145 = input.LA(4);
+
+ if ( (LA18_145=='$'||(LA18_145>='0' && LA18_145<='9')||(LA18_145>='A' && LA18_145<='Z')||LA18_145=='_'||(LA18_145>='a' && LA18_145<='z')||(LA18_145>='\u00C0' && LA18_145<='\u00D6')||(LA18_145>='\u00D8' && LA18_145<='\u00F6')||(LA18_145>='\u00F8' && LA18_145<='\u1FFF')||(LA18_145>='\u3040' && LA18_145<='\u318F')||(LA18_145>='\u3300' && LA18_145<='\u337F')||(LA18_145>='\u3400' && LA18_145<='\u3D2D')||(LA18_145>='\u4E00' && LA18_145<='\u9FFF')||(LA18_145>='\uF900' && LA18_145<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=26;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'i':
+ {
+ int LA18_75 = input.LA(3);
+
+ if ( (LA18_75=='s') ) {
+ int LA18_146 = input.LA(4);
+
+ if ( (LA18_146=='t') ) {
+ int LA18_204 = input.LA(5);
+
+ if ( (LA18_204=='$'||(LA18_204>='0' && LA18_204<='9')||(LA18_204>='A' && LA18_204<='Z')||LA18_204=='_'||(LA18_204>='a' && LA18_204<='z')||(LA18_204>='\u00C0' && LA18_204<='\u00D6')||(LA18_204>='\u00D8' && LA18_204<='\u00F6')||(LA18_204>='\u00F8' && LA18_204<='\u1FFF')||(LA18_204>='\u3040' && LA18_204<='\u318F')||(LA18_204>='\u3300' && LA18_204<='\u337F')||(LA18_204>='\u3400' && LA18_204<='\u3D2D')||(LA18_204>='\u4E00' && LA18_204<='\u9FFF')||(LA18_204>='\uF900' && LA18_204<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=46;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='P') ) {
+ int LA18_16 = input.LA(2);
+
+ if ( (LA18_16=='R') ) {
+ int LA18_76 = input.LA(3);
+
+ if ( (LA18_76=='O') ) {
+ int LA18_147 = input.LA(4);
+
+ if ( (LA18_147=='T') ) {
+ int LA18_205 = input.LA(5);
+
+ if ( (LA18_205=='E') ) {
+ int LA18_261 = input.LA(6);
+
+ if ( (LA18_261=='C') ) {
+ int LA18_310 = input.LA(7);
+
+ if ( (LA18_310=='T') ) {
+ int LA18_351 = input.LA(8);
+
+ if ( (LA18_351=='$'||(LA18_351>='0' && LA18_351<='9')||(LA18_351>='A' && LA18_351<='Z')||LA18_351=='_'||(LA18_351>='a' && LA18_351<='z')||(LA18_351>='\u00C0' && LA18_351<='\u00D6')||(LA18_351>='\u00D8' && LA18_351<='\u00F6')||(LA18_351>='\u00F8' && LA18_351<='\u1FFF')||(LA18_351>='\u3040' && LA18_351<='\u318F')||(LA18_351>='\u3300' && LA18_351<='\u337F')||(LA18_351>='\u3400' && LA18_351<='\u3D2D')||(LA18_351>='\u4E00' && LA18_351<='\u9FFF')||(LA18_351>='\uF900' && LA18_351<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=28;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='C') ) {
+ switch ( input.LA(2) ) {
+ case 'o':
+ {
+ int LA18_77 = input.LA(3);
+
+ if ( (LA18_77=='l') ) {
+ int LA18_148 = input.LA(4);
+
+ if ( (LA18_148=='l') ) {
+ int LA18_206 = input.LA(5);
+
+ if ( (LA18_206=='e') ) {
+ int LA18_262 = input.LA(6);
+
+ if ( (LA18_262=='c') ) {
+ int LA18_311 = input.LA(7);
+
+ if ( (LA18_311=='t') ) {
+ int LA18_352 = input.LA(8);
+
+ if ( (LA18_352=='i') ) {
+ int LA18_385 = input.LA(9);
+
+ if ( (LA18_385=='o') ) {
+ int LA18_405 = input.LA(10);
+
+ if ( (LA18_405=='n') ) {
+ int LA18_417 = input.LA(11);
+
+ if ( (LA18_417=='$'||(LA18_417>='0' && LA18_417<='9')||(LA18_417>='A' && LA18_417<='Z')||LA18_417=='_'||(LA18_417>='a' && LA18_417<='z')||(LA18_417>='\u00C0' && LA18_417<='\u00D6')||(LA18_417>='\u00D8' && LA18_417<='\u00F6')||(LA18_417>='\u00F8' && LA18_417<='\u1FFF')||(LA18_417>='\u3040' && LA18_417<='\u318F')||(LA18_417>='\u3300' && LA18_417<='\u337F')||(LA18_417>='\u3400' && LA18_417<='\u3D2D')||(LA18_417>='\u4E00' && LA18_417<='\u9FFF')||(LA18_417>='\uF900' && LA18_417<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=45;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'E':
+ {
+ int LA18_78 = input.LA(3);
+
+ if ( (LA18_78=='N') ) {
+ int LA18_149 = input.LA(4);
+
+ if ( (LA18_149=='D') ) {
+ int LA18_207 = input.LA(5);
+
+ if ( (LA18_207=='$'||(LA18_207>='0' && LA18_207<='9')||(LA18_207>='A' && LA18_207<='Z')||LA18_207=='_'||(LA18_207>='a' && LA18_207<='z')||(LA18_207>='\u00C0' && LA18_207<='\u00D6')||(LA18_207>='\u00D8' && LA18_207<='\u00F6')||(LA18_207>='\u00F8' && LA18_207<='\u1FFF')||(LA18_207>='\u3040' && LA18_207<='\u318F')||(LA18_207>='\u3300' && LA18_207<='\u337F')||(LA18_207>='\u3400' && LA18_207<='\u3D2D')||(LA18_207>='\u4E00' && LA18_207<='\u9FFF')||(LA18_207>='\uF900' && LA18_207<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=30;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'S':
+ {
+ int LA18_79 = input.LA(3);
+
+ if ( (LA18_79=='T') ) {
+ int LA18_150 = input.LA(4);
+
+ if ( (LA18_150=='A') ) {
+ int LA18_208 = input.LA(5);
+
+ if ( (LA18_208=='R') ) {
+ int LA18_264 = input.LA(6);
+
+ if ( (LA18_264=='T') ) {
+ int LA18_312 = input.LA(7);
+
+ if ( (LA18_312=='$'||(LA18_312>='0' && LA18_312<='9')||(LA18_312>='A' && LA18_312<='Z')||LA18_312=='_'||(LA18_312>='a' && LA18_312<='z')||(LA18_312>='\u00C0' && LA18_312<='\u00D6')||(LA18_312>='\u00D8' && LA18_312<='\u00F6')||(LA18_312>='\u00F8' && LA18_312<='\u1FFF')||(LA18_312>='\u3040' && LA18_312<='\u318F')||(LA18_312>='\u3300' && LA18_312<='\u337F')||(LA18_312>='\u3400' && LA18_312<='\u3D2D')||(LA18_312>='\u4E00' && LA18_312<='\u9FFF')||(LA18_312>='\uF900' && LA18_312<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=29;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='D') ) {
+ switch ( input.LA(2) ) {
+ case 'I':
+ {
+ int LA18_80 = input.LA(3);
+
+ if ( (LA18_80=='S') ) {
+ int LA18_151 = input.LA(4);
+
+ if ( (LA18_151=='A') ) {
+ int LA18_209 = input.LA(5);
+
+ if ( (LA18_209=='B') ) {
+ int LA18_265 = input.LA(6);
+
+ if ( (LA18_265=='L') ) {
+ int LA18_313 = input.LA(7);
+
+ if ( (LA18_313=='E') ) {
+ int LA18_354 = input.LA(8);
+
+ if ( (LA18_354=='$'||(LA18_354>='0' && LA18_354<='9')||(LA18_354>='A' && LA18_354<='Z')||LA18_354=='_'||(LA18_354>='a' && LA18_354<='z')||(LA18_354>='\u00C0' && LA18_354<='\u00D6')||(LA18_354>='\u00D8' && LA18_354<='\u00F6')||(LA18_354>='\u00F8' && LA18_354<='\u1FFF')||(LA18_354>='\u3040' && LA18_354<='\u318F')||(LA18_354>='\u3300' && LA18_354<='\u337F')||(LA18_354>='\u3400' && LA18_354<='\u3D2D')||(LA18_354>='\u4E00' && LA18_354<='\u9FFF')||(LA18_354>='\uF900' && LA18_354<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=32;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'E':
+ {
+ int LA18_81 = input.LA(3);
+
+ if ( (LA18_81=='F') ) {
+ int LA18_152 = input.LA(4);
+
+ if ( (LA18_152=='I') ) {
+ int LA18_210 = input.LA(5);
+
+ if ( (LA18_210=='N') ) {
+ int LA18_266 = input.LA(6);
+
+ if ( (LA18_266=='E') ) {
+ int LA18_314 = input.LA(7);
+
+ if ( (LA18_314=='$'||(LA18_314>='0' && LA18_314<='9')||(LA18_314>='A' && LA18_314<='Z')||LA18_314=='_'||(LA18_314>='a' && LA18_314<='z')||(LA18_314>='\u00C0' && LA18_314<='\u00D6')||(LA18_314>='\u00D8' && LA18_314<='\u00F6')||(LA18_314>='\u00F8' && LA18_314<='\u1FFF')||(LA18_314>='\u3040' && LA18_314<='\u318F')||(LA18_314>='\u3300' && LA18_314<='\u337F')||(LA18_314>='\u3400' && LA18_314<='\u3D2D')||(LA18_314>='\u4E00' && LA18_314<='\u9FFF')||(LA18_314>='\uF900' && LA18_314<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=90;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='c') ) {
+ switch ( input.LA(2) ) {
+ case 'a':
+ {
+ switch ( input.LA(3) ) {
+ case 'c':
+ {
+ int LA18_153 = input.LA(4);
+
+ if ( (LA18_153=='h') ) {
+ int LA18_211 = input.LA(5);
+
+ if ( (LA18_211=='e') ) {
+ int LA18_267 = input.LA(6);
+
+ if ( (LA18_267=='d') ) {
+ int LA18_315 = input.LA(7);
+
+ if ( (LA18_315=='$'||(LA18_315>='0' && LA18_315<='9')||(LA18_315>='A' && LA18_315<='Z')||LA18_315=='_'||(LA18_315>='a' && LA18_315<='z')||(LA18_315>='\u00C0' && LA18_315<='\u00D6')||(LA18_315>='\u00D8' && LA18_315<='\u00F6')||(LA18_315>='\u00F8' && LA18_315<='\u1FFF')||(LA18_315>='\u3040' && LA18_315<='\u318F')||(LA18_315>='\u3300' && LA18_315<='\u337F')||(LA18_315>='\u3400' && LA18_315<='\u3D2D')||(LA18_315>='\u4E00' && LA18_315<='\u9FFF')||(LA18_315>='\uF900' && LA18_315<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=41;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 's':
+ {
+ int LA18_154 = input.LA(4);
+
+ if ( (LA18_154=='e') ) {
+ int LA18_212 = input.LA(5);
+
+ if ( (LA18_212=='$'||(LA18_212>='0' && LA18_212<='9')||(LA18_212>='A' && LA18_212<='Z')||LA18_212=='_'||(LA18_212>='a' && LA18_212<='z')||(LA18_212>='\u00C0' && LA18_212<='\u00D6')||(LA18_212>='\u00D8' && LA18_212<='\u00F6')||(LA18_212>='\u00F8' && LA18_212<='\u1FFF')||(LA18_212>='\u3040' && LA18_212<='\u318F')||(LA18_212>='\u3300' && LA18_212<='\u337F')||(LA18_212>='\u3400' && LA18_212<='\u3D2D')||(LA18_212>='\u4E00' && LA18_212<='\u9FFF')||(LA18_212>='\uF900' && LA18_212<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=58;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ break;
+ case 'o':
+ {
+ switch ( input.LA(3) ) {
+ case 'n':
+ {
+ int LA18_155 = input.LA(4);
+
+ if ( (LA18_155=='t') ) {
+ int LA18_213 = input.LA(5);
+
+ if ( (LA18_213=='e') ) {
+ int LA18_269 = input.LA(6);
+
+ if ( (LA18_269=='x') ) {
+ int LA18_316 = input.LA(7);
+
+ if ( (LA18_316=='t') ) {
+ int LA18_357 = input.LA(8);
+
+ if ( (LA18_357=='$'||(LA18_357>='0' && LA18_357<='9')||(LA18_357>='A' && LA18_357<='Z')||LA18_357=='_'||(LA18_357>='a' && LA18_357<='z')||(LA18_357>='\u00C0' && LA18_357<='\u00D6')||(LA18_357>='\u00D8' && LA18_357<='\u00F6')||(LA18_357>='\u00F8' && LA18_357<='\u1FFF')||(LA18_357>='\u3040' && LA18_357<='\u318F')||(LA18_357>='\u3300' && LA18_357<='\u337F')||(LA18_357>='\u3400' && LA18_357<='\u3D2D')||(LA18_357>='\u4E00' && LA18_357<='\u9FFF')||(LA18_357>='\uF900' && LA18_357<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=34;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'l':
+ {
+ int LA18_156 = input.LA(4);
+
+ if ( (LA18_156=='l') ) {
+ int LA18_214 = input.LA(5);
+
+ if ( (LA18_214=='e') ) {
+ int LA18_270 = input.LA(6);
+
+ if ( (LA18_270=='c') ) {
+ int LA18_317 = input.LA(7);
+
+ if ( (LA18_317=='t') ) {
+ int LA18_358 = input.LA(8);
+
+ if ( (LA18_358=='$'||(LA18_358>='0' && LA18_358<='9')||(LA18_358>='A' && LA18_358<='Z')||LA18_358=='_'||(LA18_358>='a' && LA18_358<='z')||(LA18_358>='\u00C0' && LA18_358<='\u00D6')||(LA18_358>='\u00D8' && LA18_358<='\u00F6')||(LA18_358>='\u00F8' && LA18_358<='\u1FFF')||(LA18_358>='\u3040' && LA18_358<='\u318F')||(LA18_358>='\u3300' && LA18_358<='\u337F')||(LA18_358>='\u3400' && LA18_358<='\u3D2D')||(LA18_358>='\u4E00' && LA18_358<='\u9FFF')||(LA18_358>='\uF900' && LA18_358<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=77;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ break;
+ case 'r':
+ {
+ int LA18_84 = input.LA(3);
+
+ if ( (LA18_84=='e') ) {
+ int LA18_157 = input.LA(4);
+
+ if ( (LA18_157=='a') ) {
+ int LA18_215 = input.LA(5);
+
+ if ( (LA18_215=='t') ) {
+ int LA18_271 = input.LA(6);
+
+ if ( (LA18_271=='e') ) {
+ int LA18_318 = input.LA(7);
+
+ if ( (LA18_318=='$'||(LA18_318>='0' && LA18_318<='9')||(LA18_318>='A' && LA18_318<='Z')||LA18_318=='_'||(LA18_318>='a' && LA18_318<='z')||(LA18_318>='\u00C0' && LA18_318<='\u00D6')||(LA18_318>='\u00D8' && LA18_318<='\u00F6')||(LA18_318>='\u00F8' && LA18_318<='\u1FFF')||(LA18_318>='\u3040' && LA18_318<='\u318F')||(LA18_318>='\u3300' && LA18_318<='\u337F')||(LA18_318>='\u3400' && LA18_318<='\u3D2D')||(LA18_318>='\u4E00' && LA18_318<='\u9FFF')||(LA18_318>='\uF900' && LA18_318<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=42;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='W') ) {
+ int LA18_20 = input.LA(2);
+
+ if ( (LA18_20=='A') ) {
+ int LA18_85 = input.LA(3);
+
+ if ( (LA18_85=='R') ) {
+ int LA18_158 = input.LA(4);
+
+ if ( (LA18_158=='N') ) {
+ int LA18_216 = input.LA(5);
+
+ if ( (LA18_216=='I') ) {
+ int LA18_272 = input.LA(6);
+
+ if ( (LA18_272=='N') ) {
+ int LA18_319 = input.LA(7);
+
+ if ( (LA18_319=='G') ) {
+ int LA18_360 = input.LA(8);
+
+ if ( (LA18_360=='$'||(LA18_360>='0' && LA18_360<='9')||(LA18_360>='A' && LA18_360<='Z')||LA18_360=='_'||(LA18_360>='a' && LA18_360<='z')||(LA18_360>='\u00C0' && LA18_360<='\u00D6')||(LA18_360>='\u00D8' && LA18_360<='\u00F6')||(LA18_360>='\u00F8' && LA18_360<='\u1FFF')||(LA18_360>='\u3040' && LA18_360<='\u318F')||(LA18_360>='\u3300' && LA18_360<='\u337F')||(LA18_360>='\u3400' && LA18_360<='\u3D2D')||(LA18_360>='\u4E00' && LA18_360<='\u9FFF')||(LA18_360>='\uF900' && LA18_360<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=36;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0==':') ) {
+ int LA18_21 = input.LA(2);
+
+ if ( (LA18_21==':') ) {
+ alt18=39;
+ }
+ else {
+ alt18=37;}
+ }
+ else if ( (LA18_0=='a') ) {
+ int LA18_22 = input.LA(2);
+
+ if ( (LA18_22=='r') ) {
+ int LA18_88 = input.LA(3);
+
+ if ( (LA18_88=='o') ) {
+ int LA18_159 = input.LA(4);
+
+ if ( (LA18_159=='u') ) {
+ int LA18_217 = input.LA(5);
+
+ if ( (LA18_217=='n') ) {
+ int LA18_273 = input.LA(6);
+
+ if ( (LA18_273=='d') ) {
+ int LA18_320 = input.LA(7);
+
+ if ( (LA18_320=='$'||(LA18_320>='0' && LA18_320<='9')||(LA18_320>='A' && LA18_320<='Z')||LA18_320=='_'||(LA18_320>='a' && LA18_320<='z')||(LA18_320>='\u00C0' && LA18_320<='\u00D6')||(LA18_320>='\u00D8' && LA18_320<='\u00F6')||(LA18_320>='\u00F8' && LA18_320<='\u1FFF')||(LA18_320>='\u3040' && LA18_320<='\u318F')||(LA18_320>='\u3300' && LA18_320<='\u337F')||(LA18_320>='\u3400' && LA18_320<='\u3D2D')||(LA18_320>='\u4E00' && LA18_320<='\u9FFF')||(LA18_320>='\uF900' && LA18_320<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=38;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='p') ) {
+ int LA18_23 = input.LA(2);
+
+ if ( (LA18_23=='r') ) {
+ int LA18_89 = input.LA(3);
+
+ if ( (LA18_89=='i') ) {
+ int LA18_160 = input.LA(4);
+
+ if ( (LA18_160=='v') ) {
+ int LA18_218 = input.LA(5);
+
+ if ( (LA18_218=='a') ) {
+ int LA18_274 = input.LA(6);
+
+ if ( (LA18_274=='t') ) {
+ int LA18_321 = input.LA(7);
+
+ if ( (LA18_321=='e') ) {
+ int LA18_362 = input.LA(8);
+
+ if ( (LA18_362=='$'||(LA18_362>='0' && LA18_362<='9')||(LA18_362>='A' && LA18_362<='Z')||LA18_362=='_'||(LA18_362>='a' && LA18_362<='z')||(LA18_362>='\u00C0' && LA18_362<='\u00D6')||(LA18_362>='\u00D8' && LA18_362<='\u00F6')||(LA18_362>='\u00F8' && LA18_362<='\u1FFF')||(LA18_362>='\u3040' && LA18_362<='\u318F')||(LA18_362>='\u3300' && LA18_362<='\u337F')||(LA18_362>='\u3400' && LA18_362<='\u3D2D')||(LA18_362>='\u4E00' && LA18_362<='\u9FFF')||(LA18_362>='\uF900' && LA18_362<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=40;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='J') ) {
+ int LA18_24 = input.LA(2);
+
+ if ( (LA18_24=='A') ) {
+ int LA18_90 = input.LA(3);
+
+ if ( (LA18_90=='V') ) {
+ int LA18_161 = input.LA(4);
+
+ if ( (LA18_161=='A') ) {
+ int LA18_219 = input.LA(5);
+
+ if ( (LA18_219=='$'||(LA18_219>='0' && LA18_219<='9')||(LA18_219>='A' && LA18_219<='Z')||LA18_219=='_'||(LA18_219>='a' && LA18_219<='z')||(LA18_219>='\u00C0' && LA18_219<='\u00D6')||(LA18_219>='\u00D8' && LA18_219<='\u00F6')||(LA18_219>='\u00F8' && LA18_219<='\u1FFF')||(LA18_219>='\u3040' && LA18_219<='\u318F')||(LA18_219>='\u3300' && LA18_219<='\u337F')||(LA18_219>='\u3400' && LA18_219<='\u3D2D')||(LA18_219>='\u4E00' && LA18_219<='\u9FFF')||(LA18_219>='\uF900' && LA18_219<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=43;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='.') ) {
+ alt18=44;
+ }
+ else if ( (LA18_0=='l') ) {
+ int LA18_26 = input.LA(2);
+
+ if ( (LA18_26=='e') ) {
+ int LA18_91 = input.LA(3);
+
+ if ( (LA18_91=='t') ) {
+ int LA18_162 = input.LA(4);
+
+ if ( (LA18_162=='$'||(LA18_162>='0' && LA18_162<='9')||(LA18_162>='A' && LA18_162<='Z')||LA18_162=='_'||(LA18_162>='a' && LA18_162<='z')||(LA18_162>='\u00C0' && LA18_162<='\u00D6')||(LA18_162>='\u00D8' && LA18_162<='\u00F6')||(LA18_162>='\u00F8' && LA18_162<='\u1FFF')||(LA18_162>='\u3040' && LA18_162<='\u318F')||(LA18_162>='\u3300' && LA18_162<='\u337F')||(LA18_162>='\u3400' && LA18_162<='\u3D2D')||(LA18_162>='\u4E00' && LA18_162<='\u9FFF')||(LA18_162>='\uF900' && LA18_162<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=48;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='=') ) {
+ int LA18_27 = input.LA(2);
+
+ if ( (LA18_27=='=') ) {
+ alt18=62;
+ }
+ else {
+ alt18=49;}
+ }
+ else if ( (LA18_0=='?') ) {
+ alt18=51;
+ }
+ else if ( (LA18_0=='t') ) {
+ switch ( input.LA(2) ) {
+ case 'y':
+ {
+ int LA18_94 = input.LA(3);
+
+ if ( (LA18_94=='p') ) {
+ int LA18_163 = input.LA(4);
+
+ if ( (LA18_163=='e') ) {
+ int LA18_221 = input.LA(5);
+
+ if ( (LA18_221=='S') ) {
+ int LA18_276 = input.LA(6);
+
+ if ( (LA18_276=='e') ) {
+ int LA18_322 = input.LA(7);
+
+ if ( (LA18_322=='l') ) {
+ int LA18_363 = input.LA(8);
+
+ if ( (LA18_363=='e') ) {
+ int LA18_391 = input.LA(9);
+
+ if ( (LA18_391=='c') ) {
+ int LA18_406 = input.LA(10);
+
+ if ( (LA18_406=='t') ) {
+ int LA18_418 = input.LA(11);
+
+ if ( (LA18_418=='$'||(LA18_418>='0' && LA18_418<='9')||(LA18_418>='A' && LA18_418<='Z')||LA18_418=='_'||(LA18_418>='a' && LA18_418<='z')||(LA18_418>='\u00C0' && LA18_418<='\u00D6')||(LA18_418>='\u00D8' && LA18_418<='\u00F6')||(LA18_418>='\u00F8' && LA18_418<='\u1FFF')||(LA18_418>='\u3040' && LA18_418<='\u318F')||(LA18_418>='\u3300' && LA18_418<='\u337F')||(LA18_418>='\u3400' && LA18_418<='\u3D2D')||(LA18_418>='\u4E00' && LA18_418<='\u9FFF')||(LA18_418>='\uF900' && LA18_418<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=76;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'h':
+ {
+ int LA18_95 = input.LA(3);
+
+ if ( (LA18_95=='e') ) {
+ int LA18_164 = input.LA(4);
+
+ if ( (LA18_164=='n') ) {
+ int LA18_222 = input.LA(5);
+
+ if ( (LA18_222=='$'||(LA18_222>='0' && LA18_222<='9')||(LA18_222>='A' && LA18_222<='Z')||LA18_222=='_'||(LA18_222>='a' && LA18_222<='z')||(LA18_222>='\u00C0' && LA18_222<='\u00D6')||(LA18_222>='\u00D8' && LA18_222<='\u00F6')||(LA18_222>='\u00F8' && LA18_222<='\u1FFF')||(LA18_222>='\u3040' && LA18_222<='\u318F')||(LA18_222>='\u3300' && LA18_222<='\u337F')||(LA18_222>='\u3400' && LA18_222<='\u3D2D')||(LA18_222>='\u4E00' && LA18_222<='\u9FFF')||(LA18_222>='\uF900' && LA18_222<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=52;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'r':
+ {
+ int LA18_96 = input.LA(3);
+
+ if ( (LA18_96=='u') ) {
+ int LA18_165 = input.LA(4);
+
+ if ( (LA18_165=='e') ) {
+ int LA18_223 = input.LA(5);
+
+ if ( (LA18_223=='$'||(LA18_223>='0' && LA18_223<='9')||(LA18_223>='A' && LA18_223<='Z')||LA18_223=='_'||(LA18_223>='a' && LA18_223<='z')||(LA18_223>='\u00C0' && LA18_223<='\u00D6')||(LA18_223>='\u00D8' && LA18_223<='\u00F6')||(LA18_223>='\u00F8' && LA18_223<='\u1FFF')||(LA18_223>='\u3040' && LA18_223<='\u318F')||(LA18_223>='\u3300' && LA18_223<='\u337F')||(LA18_223>='\u3400' && LA18_223<='\u3D2D')||(LA18_223>='\u4E00' && LA18_223<='\u9FFF')||(LA18_223>='\uF900' && LA18_223<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=74;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='s') ) {
+ switch ( input.LA(2) ) {
+ case 'e':
+ {
+ int LA18_97 = input.LA(3);
+
+ if ( (LA18_97=='l') ) {
+ int LA18_166 = input.LA(4);
+
+ if ( (LA18_166=='e') ) {
+ int LA18_224 = input.LA(5);
+
+ if ( (LA18_224=='c') ) {
+ int LA18_279 = input.LA(6);
+
+ if ( (LA18_279=='t') ) {
+ int LA18_323 = input.LA(7);
+
+ if ( (LA18_323=='F') ) {
+ int LA18_364 = input.LA(8);
+
+ if ( (LA18_364=='i') ) {
+ int LA18_392 = input.LA(9);
+
+ if ( (LA18_392=='r') ) {
+ int LA18_407 = input.LA(10);
+
+ if ( (LA18_407=='s') ) {
+ int LA18_419 = input.LA(11);
+
+ if ( (LA18_419=='t') ) {
+ int LA18_426 = input.LA(12);
+
+ if ( (LA18_426=='$'||(LA18_426>='0' && LA18_426<='9')||(LA18_426>='A' && LA18_426<='Z')||LA18_426=='_'||(LA18_426>='a' && LA18_426<='z')||(LA18_426>='\u00C0' && LA18_426<='\u00D6')||(LA18_426>='\u00D8' && LA18_426<='\u00F6')||(LA18_426>='\u00F8' && LA18_426<='\u1FFF')||(LA18_426>='\u3040' && LA18_426<='\u318F')||(LA18_426>='\u3300' && LA18_426<='\u337F')||(LA18_426>='\u3400' && LA18_426<='\u3D2D')||(LA18_426>='\u4E00' && LA18_426<='\u9FFF')||(LA18_426>='\uF900' && LA18_426<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=79;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_323=='$'||(LA18_323>='0' && LA18_323<='9')||(LA18_323>='A' && LA18_323<='E')||(LA18_323>='G' && LA18_323<='Z')||LA18_323=='_'||(LA18_323>='a' && LA18_323<='z')||(LA18_323>='\u00C0' && LA18_323<='\u00D6')||(LA18_323>='\u00D8' && LA18_323<='\u00F6')||(LA18_323>='\u00F8' && LA18_323<='\u1FFF')||(LA18_323>='\u3040' && LA18_323<='\u318F')||(LA18_323>='\u3300' && LA18_323<='\u337F')||(LA18_323>='\u3400' && LA18_323<='\u3D2D')||(LA18_323>='\u4E00' && LA18_323<='\u9FFF')||(LA18_323>='\uF900' && LA18_323<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=78;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'w':
+ {
+ int LA18_98 = input.LA(3);
+
+ if ( (LA18_98=='i') ) {
+ int LA18_167 = input.LA(4);
+
+ if ( (LA18_167=='t') ) {
+ int LA18_225 = input.LA(5);
+
+ if ( (LA18_225=='c') ) {
+ int LA18_280 = input.LA(6);
+
+ if ( (LA18_280=='h') ) {
+ int LA18_324 = input.LA(7);
+
+ if ( (LA18_324=='$'||(LA18_324>='0' && LA18_324<='9')||(LA18_324>='A' && LA18_324<='Z')||LA18_324=='_'||(LA18_324>='a' && LA18_324<='z')||(LA18_324>='\u00C0' && LA18_324<='\u00D6')||(LA18_324>='\u00D8' && LA18_324<='\u00F6')||(LA18_324>='\u00F8' && LA18_324<='\u1FFF')||(LA18_324>='\u3040' && LA18_324<='\u318F')||(LA18_324>='\u3300' && LA18_324<='\u337F')||(LA18_324>='\u3400' && LA18_324<='\u3D2D')||(LA18_324>='\u4E00' && LA18_324<='\u9FFF')||(LA18_324>='\uF900' && LA18_324<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=54;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'o':
+ {
+ int LA18_99 = input.LA(3);
+
+ if ( (LA18_99=='r') ) {
+ int LA18_168 = input.LA(4);
+
+ if ( (LA18_168=='t') ) {
+ int LA18_226 = input.LA(5);
+
+ if ( (LA18_226=='B') ) {
+ int LA18_281 = input.LA(6);
+
+ if ( (LA18_281=='y') ) {
+ int LA18_325 = input.LA(7);
+
+ if ( (LA18_325=='$'||(LA18_325>='0' && LA18_325<='9')||(LA18_325>='A' && LA18_325<='Z')||LA18_325=='_'||(LA18_325>='a' && LA18_325<='z')||(LA18_325>='\u00C0' && LA18_325<='\u00D6')||(LA18_325>='\u00D8' && LA18_325<='\u00F6')||(LA18_325>='\u00F8' && LA18_325<='\u1FFF')||(LA18_325>='\u3040' && LA18_325<='\u318F')||(LA18_325>='\u3300' && LA18_325<='\u337F')||(LA18_325>='\u3400' && LA18_325<='\u3D2D')||(LA18_325>='\u4E00' && LA18_325<='\u9FFF')||(LA18_325>='\uF900' && LA18_325<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=83;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='{') ) {
+ alt18=55;
+ }
+ else if ( (LA18_0=='d') ) {
+ int LA18_32 = input.LA(2);
+
+ if ( (LA18_32=='e') ) {
+ int LA18_100 = input.LA(3);
+
+ if ( (LA18_100=='f') ) {
+ int LA18_169 = input.LA(4);
+
+ if ( (LA18_169=='a') ) {
+ int LA18_227 = input.LA(5);
+
+ if ( (LA18_227=='u') ) {
+ int LA18_282 = input.LA(6);
+
+ if ( (LA18_282=='l') ) {
+ int LA18_326 = input.LA(7);
+
+ if ( (LA18_326=='t') ) {
+ int LA18_368 = input.LA(8);
+
+ if ( (LA18_368=='$'||(LA18_368>='0' && LA18_368<='9')||(LA18_368>='A' && LA18_368<='Z')||LA18_368=='_'||(LA18_368>='a' && LA18_368<='z')||(LA18_368>='\u00C0' && LA18_368<='\u00D6')||(LA18_368>='\u00D8' && LA18_368<='\u00F6')||(LA18_368>='\u00F8' && LA18_368<='\u1FFF')||(LA18_368>='\u3040' && LA18_368<='\u318F')||(LA18_368>='\u3300' && LA18_368<='\u337F')||(LA18_368>='\u3400' && LA18_368<='\u3D2D')||(LA18_368>='\u4E00' && LA18_368<='\u9FFF')||(LA18_368>='\uF900' && LA18_368<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=56;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='}') ) {
+ alt18=57;
+ }
+ else if ( (LA18_0=='|') ) {
+ int LA18_34 = input.LA(2);
+
+ if ( (LA18_34=='|') ) {
+ alt18=59;
+ }
+ else {
+ alt18=85;}
+ }
+ else if ( (LA18_0=='&') ) {
+ alt18=60;
+ }
+ else if ( (LA18_0=='!') ) {
+ int LA18_36 = input.LA(2);
+
+ if ( (LA18_36=='=') ) {
+ alt18=63;
+ }
+ else {
+ alt18=70;}
+ }
+ else if ( (LA18_0=='>') ) {
+ int LA18_37 = input.LA(2);
+
+ if ( (LA18_37=='=') ) {
+ alt18=64;
+ }
+ else {
+ alt18=66;}
+ }
+ else if ( (LA18_0=='<') ) {
+ int LA18_38 = input.LA(2);
+
+ if ( (LA18_38=='=') ) {
+ alt18=65;
+ }
+ else {
+ alt18=67;}
+ }
+ else if ( (LA18_0=='+') ) {
+ alt18=68;
+ }
+ else if ( (LA18_0=='/') ) {
+ switch ( input.LA(2) ) {
+ case '/':
+ {
+ alt18=97;
+ }
+ break;
+ case '*':
+ {
+ alt18=96;
+ }
+ break;
+ default:
+ alt18=69;}
+
+ }
+ else if ( (LA18_0=='G') ) {
+ int LA18_41 = input.LA(2);
+
+ if ( (LA18_41=='L') ) {
+ int LA18_112 = input.LA(3);
+
+ if ( (LA18_112=='O') ) {
+ int LA18_170 = input.LA(4);
+
+ if ( (LA18_170=='B') ) {
+ int LA18_228 = input.LA(5);
+
+ if ( (LA18_228=='A') ) {
+ int LA18_283 = input.LA(6);
+
+ if ( (LA18_283=='L') ) {
+ int LA18_327 = input.LA(7);
+
+ if ( (LA18_327=='V') ) {
+ int LA18_369 = input.LA(8);
+
+ if ( (LA18_369=='A') ) {
+ int LA18_394 = input.LA(9);
+
+ if ( (LA18_394=='R') ) {
+ int LA18_408 = input.LA(10);
+
+ if ( (LA18_408=='$'||(LA18_408>='0' && LA18_408<='9')||(LA18_408>='A' && LA18_408<='Z')||LA18_408=='_'||(LA18_408>='a' && LA18_408<='z')||(LA18_408>='\u00C0' && LA18_408<='\u00D6')||(LA18_408>='\u00D8' && LA18_408<='\u00F6')||(LA18_408>='\u00F8' && LA18_408<='\u1FFF')||(LA18_408>='\u3040' && LA18_408<='\u318F')||(LA18_408>='\u3300' && LA18_408<='\u337F')||(LA18_408>='\u3400' && LA18_408<='\u3D2D')||(LA18_408>='\u4E00' && LA18_408<='\u9FFF')||(LA18_408>='\uF900' && LA18_408<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=71;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( (LA18_0=='n') ) {
+ switch ( input.LA(2) ) {
+ case 'u':
+ {
+ int LA18_113 = input.LA(3);
+
+ if ( (LA18_113=='l') ) {
+ int LA18_171 = input.LA(4);
+
+ if ( (LA18_171=='l') ) {
+ int LA18_229 = input.LA(5);
+
+ if ( (LA18_229=='$'||(LA18_229>='0' && LA18_229<='9')||(LA18_229>='A' && LA18_229<='Z')||LA18_229=='_'||(LA18_229>='a' && LA18_229<='z')||(LA18_229>='\u00C0' && LA18_229<='\u00D6')||(LA18_229>='\u00D8' && LA18_229<='\u00F6')||(LA18_229>='\u00F8' && LA18_229<='\u1FFF')||(LA18_229>='\u3040' && LA18_229<='\u318F')||(LA18_229>='\u3300' && LA18_229<='\u337F')||(LA18_229>='\u3400' && LA18_229<='\u3D2D')||(LA18_229>='\u4E00' && LA18_229<='\u9FFF')||(LA18_229>='\uF900' && LA18_229<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=75;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'e':
+ {
+ int LA18_114 = input.LA(3);
+
+ if ( (LA18_114=='w') ) {
+ int LA18_172 = input.LA(4);
+
+ if ( (LA18_172=='$'||(LA18_172>='0' && LA18_172<='9')||(LA18_172>='A' && LA18_172<='Z')||LA18_172=='_'||(LA18_172>='a' && LA18_172<='z')||(LA18_172>='\u00C0' && LA18_172<='\u00D6')||(LA18_172>='\u00D8' && LA18_172<='\u00F6')||(LA18_172>='\u00F8' && LA18_172<='\u1FFF')||(LA18_172>='\u3040' && LA18_172<='\u318F')||(LA18_172>='\u3300' && LA18_172<='\u337F')||(LA18_172>='\u3400' && LA18_172<='\u3D2D')||(LA18_172>='\u4E00' && LA18_172<='\u9FFF')||(LA18_172>='\uF900' && LA18_172<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=72;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'o':
+ {
+ int LA18_115 = input.LA(3);
+
+ if ( (LA18_115=='t') ) {
+ int LA18_173 = input.LA(4);
+
+ if ( (LA18_173=='E') ) {
+ int LA18_231 = input.LA(5);
+
+ if ( (LA18_231=='x') ) {
+ int LA18_285 = input.LA(6);
+
+ if ( (LA18_285=='i') ) {
+ int LA18_328 = input.LA(7);
+
+ if ( (LA18_328=='s') ) {
+ int LA18_370 = input.LA(8);
+
+ if ( (LA18_370=='t') ) {
+ int LA18_395 = input.LA(9);
+
+ if ( (LA18_395=='s') ) {
+ int LA18_409 = input.LA(10);
+
+ if ( (LA18_409=='$'||(LA18_409>='0' && LA18_409<='9')||(LA18_409>='A' && LA18_409<='Z')||LA18_409=='_'||(LA18_409>='a' && LA18_409<='z')||(LA18_409>='\u00C0' && LA18_409<='\u00D6')||(LA18_409>='\u00D8' && LA18_409<='\u00F6')||(LA18_409>='\u00F8' && LA18_409<='\u1FFF')||(LA18_409>='\u3040' && LA18_409<='\u318F')||(LA18_409>='\u3300' && LA18_409<='\u337F')||(LA18_409>='\u3400' && LA18_409<='\u3D2D')||(LA18_409>='\u4E00' && LA18_409<='\u9FFF')||(LA18_409>='\uF900' && LA18_409<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=82;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='f') ) {
+ switch ( input.LA(2) ) {
+ case 'a':
+ {
+ int LA18_116 = input.LA(3);
+
+ if ( (LA18_116=='l') ) {
+ int LA18_174 = input.LA(4);
+
+ if ( (LA18_174=='s') ) {
+ int LA18_232 = input.LA(5);
+
+ if ( (LA18_232=='e') ) {
+ int LA18_286 = input.LA(6);
+
+ if ( (LA18_286=='$'||(LA18_286>='0' && LA18_286<='9')||(LA18_286>='A' && LA18_286<='Z')||LA18_286=='_'||(LA18_286>='a' && LA18_286<='z')||(LA18_286>='\u00C0' && LA18_286<='\u00D6')||(LA18_286>='\u00D8' && LA18_286<='\u00F6')||(LA18_286>='\u00F8' && LA18_286<='\u1FFF')||(LA18_286>='\u3040' && LA18_286<='\u318F')||(LA18_286>='\u3300' && LA18_286<='\u337F')||(LA18_286>='\u3400' && LA18_286<='\u3D2D')||(LA18_286>='\u4E00' && LA18_286<='\u9FFF')||(LA18_286>='\uF900' && LA18_286<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=73;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ case 'o':
+ {
+ int LA18_117 = input.LA(3);
+
+ if ( (LA18_117=='r') ) {
+ int LA18_175 = input.LA(4);
+
+ if ( (LA18_175=='A') ) {
+ int LA18_233 = input.LA(5);
+
+ if ( (LA18_233=='l') ) {
+ int LA18_287 = input.LA(6);
+
+ if ( (LA18_287=='l') ) {
+ int LA18_330 = input.LA(7);
+
+ if ( (LA18_330=='$'||(LA18_330>='0' && LA18_330<='9')||(LA18_330>='A' && LA18_330<='Z')||LA18_330=='_'||(LA18_330>='a' && LA18_330<='z')||(LA18_330>='\u00C0' && LA18_330<='\u00D6')||(LA18_330>='\u00D8' && LA18_330<='\u00F6')||(LA18_330>='\u00F8' && LA18_330<='\u1FFF')||(LA18_330>='\u3040' && LA18_330<='\u318F')||(LA18_330>='\u3300' && LA18_330<='\u337F')||(LA18_330>='\u3400' && LA18_330<='\u3D2D')||(LA18_330>='\u4E00' && LA18_330<='\u9FFF')||(LA18_330>='\uF900' && LA18_330<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else {
+ alt18=84;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ break;
+ default:
+ alt18=94;}
+
+ }
+ else if ( (LA18_0=='[') ) {
+ alt18=86;
+ }
+ else if ( (LA18_0==']') ) {
+ alt18=87;
+ }
+ else if ( ((LA18_0>='0' && LA18_0<='9')) ) {
+ alt18=88;
+ }
+ else if ( (LA18_0=='\"'||LA18_0=='\'') ) {
+ alt18=89;
+ }
+ else if ( (LA18_0=='$'||LA18_0=='B'||LA18_0=='H'||LA18_0=='K'||(LA18_0>='M' && LA18_0<='O')||LA18_0=='Q'||(LA18_0>='T' && LA18_0<='V')||(LA18_0>='X' && LA18_0<='Z')||(LA18_0>='^' && LA18_0<='_')||LA18_0=='b'||(LA18_0>='g' && LA18_0<='h')||(LA18_0>='j' && LA18_0<='k')||LA18_0=='m'||LA18_0=='o'||LA18_0=='q'||(LA18_0>='u' && LA18_0<='z')||(LA18_0>='\u00C0' && LA18_0<='\u00D6')||(LA18_0>='\u00D8' && LA18_0<='\u00F6')||(LA18_0>='\u00F8' && LA18_0<='\u1FFF')||(LA18_0>='\u3040' && LA18_0<='\u318F')||(LA18_0>='\u3300' && LA18_0<='\u337F')||(LA18_0>='\u3400' && LA18_0<='\u3D2D')||(LA18_0>='\u4E00' && LA18_0<='\u9FFF')||(LA18_0>='\uF900' && LA18_0<='\uFAFF')) ) {
+ alt18=94;
+ }
+ else if ( (LA18_0=='R') ) {
+ int LA18_49 = input.LA(2);
+
+ if ( (LA18_49=='E') ) {
+ int LA18_118 = input.LA(3);
+
+ if ( (LA18_118=='M') ) {
+ int LA18_176 = input.LA(4);
+
+ if ( (LA18_176=='\u00BB') && (xpandMode)) {
+ alt18=99;
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else {
+ alt18=94;}
+ }
+ else if ( ((LA18_0>='\t' && LA18_0<='\n')||(LA18_0>='\f' && LA18_0<='\r')||LA18_0==' ') ) {
+ alt18=95;
+ }
+ else if ( (LA18_0=='\u00AB') ) {
+ int LA18_51 = input.LA(2);
+
+ if ( (LA18_51=='R') && (!xpandMode)) {
+ alt18=98;
+ }
+ else {
+ alt18=101;}
+ }
+ else if ( (LA18_0=='\u00BB') ) {
+ int LA18_52 = input.LA(2);
+
+ if ( ((LA18_52>='\u0000' && LA18_52<='\uFFFE')) && (xpandMode)) {
+ alt18=100;
+ }
+ else if ( (xpandMode) ) {
+ alt18=100;
+ }
+ else if ( (true) ) {
+ alt18=102;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1:1: Tokens : ( T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | IntLiteral | StringLiteral | DEFINE | ENDDEFINE | AROUND | ENDAROUND | Identifier | WS | COMMENT | LINE_COMMENT | REM_COMMENT_OUT | REM_COMMENT | TEXT | LG | RG );", 18, 52, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1:1: Tokens : ( T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | IntLiteral | StringLiteral | DEFINE | ENDDEFINE | AROUND | ENDAROUND | Identifier | WS | COMMENT | LINE_COMMENT | REM_COMMENT_OUT | REM_COMMENT | TEXT | LG | RG );", 18, 0, input);
+
+ throw nvae;
+ }
+ switch (alt18) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:10: T25
+ {
+ mT25();
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:14: T26
+ {
+ mT26();
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:18: T27
+ {
+ mT27();
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:22: T28
+ {
+ mT28();
+
+ }
+ break;
+ case 5 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:26: T29
+ {
+ mT29();
+
+ }
+ break;
+ case 6 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:30: T30
+ {
+ mT30();
+
+ }
+ break;
+ case 7 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:34: T31
+ {
+ mT31();
+
+ }
+ break;
+ case 8 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:38: T32
+ {
+ mT32();
+
+ }
+ break;
+ case 9 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:42: T33
+ {
+ mT33();
+
+ }
+ break;
+ case 10 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:46: T34
+ {
+ mT34();
+
+ }
+ break;
+ case 11 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:50: T35
+ {
+ mT35();
+
+ }
+ break;
+ case 12 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:54: T36
+ {
+ mT36();
+
+ }
+ break;
+ case 13 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:58: T37
+ {
+ mT37();
+
+ }
+ break;
+ case 14 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:62: T38
+ {
+ mT38();
+
+ }
+ break;
+ case 15 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:66: T39
+ {
+ mT39();
+
+ }
+ break;
+ case 16 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:70: T40
+ {
+ mT40();
+
+ }
+ break;
+ case 17 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:74: T41
+ {
+ mT41();
+
+ }
+ break;
+ case 18 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:78: T42
+ {
+ mT42();
+
+ }
+ break;
+ case 19 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:82: T43
+ {
+ mT43();
+
+ }
+ break;
+ case 20 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:86: T44
+ {
+ mT44();
+
+ }
+ break;
+ case 21 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:90: T45
+ {
+ mT45();
+
+ }
+ break;
+ case 22 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:94: T46
+ {
+ mT46();
+
+ }
+ break;
+ case 23 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:98: T47
+ {
+ mT47();
+
+ }
+ break;
+ case 24 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:102: T48
+ {
+ mT48();
+
+ }
+ break;
+ case 25 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:106: T49
+ {
+ mT49();
+
+ }
+ break;
+ case 26 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:110: T50
+ {
+ mT50();
+
+ }
+ break;
+ case 27 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:114: T51
+ {
+ mT51();
+
+ }
+ break;
+ case 28 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:118: T52
+ {
+ mT52();
+
+ }
+ break;
+ case 29 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:122: T53
+ {
+ mT53();
+
+ }
+ break;
+ case 30 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:126: T54
+ {
+ mT54();
+
+ }
+ break;
+ case 31 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:130: T55
+ {
+ mT55();
+
+ }
+ break;
+ case 32 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:134: T56
+ {
+ mT56();
+
+ }
+ break;
+ case 33 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:138: T57
+ {
+ mT57();
+
+ }
+ break;
+ case 34 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:142: T58
+ {
+ mT58();
+
+ }
+ break;
+ case 35 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:146: T59
+ {
+ mT59();
+
+ }
+ break;
+ case 36 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:150: T60
+ {
+ mT60();
+
+ }
+ break;
+ case 37 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:154: T61
+ {
+ mT61();
+
+ }
+ break;
+ case 38 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:158: T62
+ {
+ mT62();
+
+ }
+ break;
+ case 39 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:162: T63
+ {
+ mT63();
+
+ }
+ break;
+ case 40 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:166: T64
+ {
+ mT64();
+
+ }
+ break;
+ case 41 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:170: T65
+ {
+ mT65();
+
+ }
+ break;
+ case 42 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:174: T66
+ {
+ mT66();
+
+ }
+ break;
+ case 43 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:178: T67
+ {
+ mT67();
+
+ }
+ break;
+ case 44 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:182: T68
+ {
+ mT68();
+
+ }
+ break;
+ case 45 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:186: T69
+ {
+ mT69();
+
+ }
+ break;
+ case 46 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:190: T70
+ {
+ mT70();
+
+ }
+ break;
+ case 47 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:194: T71
+ {
+ mT71();
+
+ }
+ break;
+ case 48 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:198: T72
+ {
+ mT72();
+
+ }
+ break;
+ case 49 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:202: T73
+ {
+ mT73();
+
+ }
+ break;
+ case 50 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:206: T74
+ {
+ mT74();
+
+ }
+ break;
+ case 51 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:210: T75
+ {
+ mT75();
+
+ }
+ break;
+ case 52 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:214: T76
+ {
+ mT76();
+
+ }
+ break;
+ case 53 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:218: T77
+ {
+ mT77();
+
+ }
+ break;
+ case 54 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:222: T78
+ {
+ mT78();
+
+ }
+ break;
+ case 55 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:226: T79
+ {
+ mT79();
+
+ }
+ break;
+ case 56 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:230: T80
+ {
+ mT80();
+
+ }
+ break;
+ case 57 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:234: T81
+ {
+ mT81();
+
+ }
+ break;
+ case 58 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:238: T82
+ {
+ mT82();
+
+ }
+ break;
+ case 59 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:242: T83
+ {
+ mT83();
+
+ }
+ break;
+ case 60 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:246: T84
+ {
+ mT84();
+
+ }
+ break;
+ case 61 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:250: T85
+ {
+ mT85();
+
+ }
+ break;
+ case 62 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:254: T86
+ {
+ mT86();
+
+ }
+ break;
+ case 63 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:258: T87
+ {
+ mT87();
+
+ }
+ break;
+ case 64 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:262: T88
+ {
+ mT88();
+
+ }
+ break;
+ case 65 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:266: T89
+ {
+ mT89();
+
+ }
+ break;
+ case 66 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:270: T90
+ {
+ mT90();
+
+ }
+ break;
+ case 67 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:274: T91
+ {
+ mT91();
+
+ }
+ break;
+ case 68 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:278: T92
+ {
+ mT92();
+
+ }
+ break;
+ case 69 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:282: T93
+ {
+ mT93();
+
+ }
+ break;
+ case 70 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:286: T94
+ {
+ mT94();
+
+ }
+ break;
+ case 71 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:290: T95
+ {
+ mT95();
+
+ }
+ break;
+ case 72 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:294: T96
+ {
+ mT96();
+
+ }
+ break;
+ case 73 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:298: T97
+ {
+ mT97();
+
+ }
+ break;
+ case 74 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:302: T98
+ {
+ mT98();
+
+ }
+ break;
+ case 75 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:306: T99
+ {
+ mT99();
+
+ }
+ break;
+ case 76 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:310: T100
+ {
+ mT100();
+
+ }
+ break;
+ case 77 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:315: T101
+ {
+ mT101();
+
+ }
+ break;
+ case 78 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:320: T102
+ {
+ mT102();
+
+ }
+ break;
+ case 79 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:325: T103
+ {
+ mT103();
+
+ }
+ break;
+ case 80 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:330: T104
+ {
+ mT104();
+
+ }
+ break;
+ case 81 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:335: T105
+ {
+ mT105();
+
+ }
+ break;
+ case 82 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:340: T106
+ {
+ mT106();
+
+ }
+ break;
+ case 83 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:345: T107
+ {
+ mT107();
+
+ }
+ break;
+ case 84 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:350: T108
+ {
+ mT108();
+
+ }
+ break;
+ case 85 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:355: T109
+ {
+ mT109();
+
+ }
+ break;
+ case 86 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:360: T110
+ {
+ mT110();
+
+ }
+ break;
+ case 87 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:365: T111
+ {
+ mT111();
+
+ }
+ break;
+ case 88 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:370: IntLiteral
+ {
+ mIntLiteral();
+
+ }
+ break;
+ case 89 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:381: StringLiteral
+ {
+ mStringLiteral();
+
+ }
+ break;
+ case 90 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:395: DEFINE
+ {
+ mDEFINE();
+
+ }
+ break;
+ case 91 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:402: ENDDEFINE
+ {
+ mENDDEFINE();
+
+ }
+ break;
+ case 92 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:412: AROUND
+ {
+ mAROUND();
+
+ }
+ break;
+ case 93 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:419: ENDAROUND
+ {
+ mENDAROUND();
+
+ }
+ break;
+ case 94 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:429: Identifier
+ {
+ mIdentifier();
+
+ }
+ break;
+ case 95 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:440: WS
+ {
+ mWS();
+
+ }
+ break;
+ case 96 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:443: COMMENT
+ {
+ mCOMMENT();
+
+ }
+ break;
+ case 97 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:451: LINE_COMMENT
+ {
+ mLINE_COMMENT();
+
+ }
+ break;
+ case 98 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:464: REM_COMMENT_OUT
+ {
+ mREM_COMMENT_OUT();
+
+ }
+ break;
+ case 99 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:480: REM_COMMENT
+ {
+ mREM_COMMENT();
+
+ }
+ break;
+ case 100 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:492: TEXT
+ {
+ mTEXT();
+
+ }
+ break;
+ case 101 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:497: LG
+ {
+ mLG();
+
+ }
+ break;
+ case 102 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:1:500: RG
+ {
+ mRG();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeParser.java b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeParser.java
new file mode 100644
index 00000000..0e134231
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeParser.java
@@ -0,0 +1,9159 @@
+// $ANTLR 3.0 ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g 2008-03-06 09:17:20
+
+package org.eclipse.xpand3.parser;
+
+import org.eclipse.tmf.common.node.*;
+import org.eclipse.xpand3.internal.parser.xpand3node.*;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+public class Xpand3NodeParser extends AbstractNodeParser {
+ public static final String[] tokenNames = new String[] {
+ "", "", "", "", "LG", "RG", "DEFINE", "ENDDEFINE", "AROUND", "ENDAROUND", "TEXT", "StringLiteral", "IntLiteral", "Identifier", "EscapeSequence", "UnicodeEscape", "OctalEscape", "HexDigit", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT", "REM_COMMENT_OUT", "REM_COMMENT", "'IMPORT'", "'EXTENSION'", "'import'", "';'", "'extension'", "'reexport'", "'('", "','", "'*'", "')'", "'FOR'", "'-'", "'ERROR'", "'EXPAND'", "'FOREACH'", "'SEPARATOR'", "'FILE'", "'ENDFILE'", "'AS'", "'ITERATOR'", "'ENDFOREACH'", "'IF'", "'ENDIF'", "'ELSEIF'", "'ELSE'", "'LET'", "'ENDLET'", "'PROTECT'", "'CSTART'", "'CEND'", "'ID'", "'DISABLE'", "'ENDPROTECT'", "'context'", "'if'", "'WARNING'", "':'", "'around'", "'::'", "'private'", "'cached'", "'create'", "'JAVA'", "'.'", "'Collection'", "'List'", "'Set'", "'let'", "'='", "'->'", "'?'", "'then'", "'else'", "'switch'", "'{'", "'default'", "'}'", "'case'", "'||'", "'&&'", "'implies'", "'=='", "'!='", "'>='", "'<='", "'>'", "'<'", "'+'", "'/'", "'!'", "'GLOBALVAR'", "'new'", "'false'", "'true'", "'null'", "'typeSelect'", "'collect'", "'select'", "'selectFirst'", "'reject'", "'exists'", "'notExists'", "'sortBy'", "'forAll'", "'|'", "'['", "']'"
+ };
+ public static final int IntLiteral=12;
+ public static final int Identifier=13;
+ public static final int HexDigit=17;
+ public static final int WS=20;
+ public static final int ENDDEFINE=7;
+ public static final int REM_COMMENT=24;
+ public static final int RG=5;
+ public static final int COMMENT=21;
+ public static final int StringLiteral=11;
+ public static final int LINE_COMMENT=22;
+ public static final int JavaIDDigit=19;
+ public static final int Letter=18;
+ public static final int DEFINE=6;
+ public static final int UnicodeEscape=15;
+ public static final int EscapeSequence=14;
+ public static final int EOF=-1;
+ public static final int TEXT=10;
+ public static final int ENDAROUND=9;
+ public static final int OctalEscape=16;
+ public static final int REM_COMMENT_OUT=23;
+ public static final int AROUND=8;
+ public static final int LG=4;
+
+ public Xpand3NodeParser(TokenStream input) {
+ super(input);
+ ruleMemo = new HashMap[60+1];
+ }
+
+
+ public String[] getTokenNames() { return tokenNames; }
+ public String getGrammarFileName() { return "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g"; }
+
+
+ protected Xpand3nodeFactory factory = Xpand3nodeFactory.eINSTANCE;
+
+
+
+ // $ANTLR start file
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:29:1: file returns [CompositeNode cn] : ( ( (imp= nsImport ) ) )* ( ( (decl= abstractDeclaration ) ) )* ( EOF ) ;
+ public CompositeNode file() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode imp = null;
+
+ CompositeNode decl = null;
+
+
+ cn = factory.createFileNode(); cn.setRule("file");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:2: ( ( ( (imp= nsImport ) ) )* ( ( (decl= abstractDeclaration ) ) )* ( EOF ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:2: ( ( (imp= nsImport ) ) )* ( ( (decl= abstractDeclaration ) ) )* ( EOF )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:2: ( ( (imp= nsImport ) ) )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==LG) ) {
+ int LA1_2 = input.LA(2);
+
+ if ( ((LA1_2>=25 && LA1_2<=26)) ) {
+ alt1=1;
+ }
+
+
+ }
+ else if ( (LA1_0==27||LA1_0==29) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:3: ( (imp= nsImport ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:3: ( (imp= nsImport ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:4: (imp= nsImport )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:4: (imp= nsImport )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:5: imp= nsImport
+ {
+ pushFollow(FOLLOW_nsImport_in_file80);
+ imp=nsImport();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, imp); ((FileNode) cn).getImp().add(imp);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:85: ( ( (decl= abstractDeclaration ) ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==LG||LA2_0==Identifier||LA2_0==58||LA2_0==62||(LA2_0>=64 && LA2_0<=66)||(LA2_0>=69 && LA2_0<=71)) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:86: ( (decl= abstractDeclaration ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:86: ( (decl= abstractDeclaration ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:87: (decl= abstractDeclaration )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:87: (decl= abstractDeclaration )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:88: decl= abstractDeclaration
+ {
+ pushFollow(FOLLOW_abstractDeclaration_in_file93);
+ decl=abstractDeclaration();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, decl); ((FileNode) cn).getDecl().add(decl);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:183: ( EOF )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:32:184: EOF
+ {
+ match(input,EOF,FOLLOW_EOF_in_file102); if (failed) return cn;
+
+ }
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end file
+
+
+ // $ANTLR start nsImport
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:34:1: nsImport returns [CompositeNode cn] : ( ( LG ) ( 'IMPORT' ) (ns= simpleType ) ( RG ) | ( LG ) ( 'EXTENSION' ) (ns= simpleType ) ( RG ) | ( 'import' ) (unnamed0= type ) ( ';' ) | ( 'extension' ) (unnamed1= type ) ( ( ( 'reexport' ) ) )? ( ';' ) );
+ public CompositeNode nsImport() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode ns = null;
+
+ CompositeNode unnamed0 = null;
+
+ CompositeNode unnamed1 = null;
+
+
+ cn = factory.createNsImportNode(); cn.setRule("nsImport");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:2: ( ( LG ) ( 'IMPORT' ) (ns= simpleType ) ( RG ) | ( LG ) ( 'EXTENSION' ) (ns= simpleType ) ( RG ) | ( 'import' ) (unnamed0= type ) ( ';' ) | ( 'extension' ) (unnamed1= type ) ( ( ( 'reexport' ) ) )? ( ';' ) )
+ int alt4=4;
+ switch ( input.LA(1) ) {
+ case LG:
+ {
+ int LA4_1 = input.LA(2);
+
+ if ( (LA4_1==26) ) {
+ alt4=2;
+ }
+ else if ( (LA4_1==25) ) {
+ alt4=1;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("34:1: nsImport returns [CompositeNode cn] : ( ( LG ) ( 'IMPORT' ) (ns= simpleType ) ( RG ) | ( LG ) ( 'EXTENSION' ) (ns= simpleType ) ( RG ) | ( 'import' ) (unnamed0= type ) ( ';' ) | ( 'extension' ) (unnamed1= type ) ( ( ( 'reexport' ) ) )? ( ';' ) );", 4, 1, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 27:
+ {
+ alt4=3;
+ }
+ break;
+ case 29:
+ {
+ alt4=4;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("34:1: nsImport returns [CompositeNode cn] : ( ( LG ) ( 'IMPORT' ) (ns= simpleType ) ( RG ) | ( LG ) ( 'EXTENSION' ) (ns= simpleType ) ( RG ) | ( 'import' ) (unnamed0= type ) ( ';' ) | ( 'extension' ) (unnamed1= type ) ( ( ( 'reexport' ) ) )? ( ';' ) );", 4, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:2: ( LG ) ( 'IMPORT' ) (ns= simpleType ) ( RG )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:2: ( LG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:3: LG
+ {
+ match(input,LG,FOLLOW_LG_in_nsImport123); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:43: ( 'IMPORT' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:44: 'IMPORT'
+ {
+ match(input,25,FOLLOW_25_in_nsImport129); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:90: (ns= simpleType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:91: ns= simpleType
+ {
+ pushFollow(FOLLOW_simpleType_in_nsImport137);
+ ns=simpleType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, ns); ((NsImportNode) cn).setNs(ns);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:164: ( RG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:36:165: RG
+ {
+ match(input,RG,FOLLOW_RG_in_nsImport143); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:4: ( LG ) ( 'EXTENSION' ) (ns= simpleType ) ( RG )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:4: ( LG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:5: LG
+ {
+ match(input,LG,FOLLOW_LG_in_nsImport152); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:45: ( 'EXTENSION' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:46: 'EXTENSION'
+ {
+ match(input,26,FOLLOW_26_in_nsImport158); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:95: (ns= simpleType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:96: ns= simpleType
+ {
+ pushFollow(FOLLOW_simpleType_in_nsImport166);
+ ns=simpleType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, ns); ((NsImportNode) cn).setNs(ns);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:169: ( RG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:37:170: RG
+ {
+ match(input,RG,FOLLOW_RG_in_nsImport172); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:4: ( 'import' ) (unnamed0= type ) ( ';' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:4: ( 'import' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:5: 'import'
+ {
+ match(input,27,FOLLOW_27_in_nsImport181); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:51: (unnamed0= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:52: unnamed0= type
+ {
+ pushFollow(FOLLOW_type_in_nsImport189);
+ unnamed0=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed0);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:100: ( ';' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:38:101: ';'
+ {
+ match(input,28,FOLLOW_28_in_nsImport195); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:4: ( 'extension' ) (unnamed1= type ) ( ( ( 'reexport' ) ) )? ( ';' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:4: ( 'extension' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:5: 'extension'
+ {
+ match(input,29,FOLLOW_29_in_nsImport204); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:54: (unnamed1= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:55: unnamed1= type
+ {
+ pushFollow(FOLLOW_type_in_nsImport212);
+ unnamed1=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed1);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:103: ( ( ( 'reexport' ) ) )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==30) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:104: ( ( 'reexport' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:104: ( ( 'reexport' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:105: ( 'reexport' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:105: ( 'reexport' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:106: 'reexport'
+ {
+ match(input,30,FOLLOW_30_in_nsImport220); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:157: ( ';' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:39:158: ';'
+ {
+ match(input,28,FOLLOW_28_in_nsImport229); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end nsImport
+
+
+ // $ANTLR start abstractDeclaration
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:41:1: abstractDeclaration returns [CompositeNode cn] : ( ( check ) | ( around ) | ( extension ) | ( definition ) | ( definitionAround ) );
+ public CompositeNode abstractDeclaration() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode check1 = null;
+
+ CompositeNode around2 = null;
+
+ CompositeNode extension3 = null;
+
+ CompositeNode definition4 = null;
+
+ CompositeNode definitionAround5 = null;
+
+
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:42:2: ( ( check ) | ( around ) | ( extension ) | ( definition ) | ( definitionAround ) )
+ int alt5=5;
+ switch ( input.LA(1) ) {
+ case 58:
+ {
+ alt5=1;
+ }
+ break;
+ case 62:
+ {
+ alt5=2;
+ }
+ break;
+ case Identifier:
+ case 64:
+ case 65:
+ case 66:
+ case 69:
+ case 70:
+ case 71:
+ {
+ alt5=3;
+ }
+ break;
+ case LG:
+ {
+ int LA5_4 = input.LA(2);
+
+ if ( (LA5_4==AROUND) ) {
+ alt5=5;
+ }
+ else if ( (LA5_4==DEFINE) ) {
+ alt5=4;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("41:1: abstractDeclaration returns [CompositeNode cn] : ( ( check ) | ( around ) | ( extension ) | ( definition ) | ( definitionAround ) );", 5, 4, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("41:1: abstractDeclaration returns [CompositeNode cn] : ( ( check ) | ( around ) | ( extension ) | ( definition ) | ( definitionAround ) );", 5, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:42:2: ( check )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:42:2: ( check )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:42:3: check
+ {
+ pushFollow(FOLLOW_check_in_abstractDeclaration247);
+ check1=check();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = check1;
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:43:4: ( around )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:43:4: ( around )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:43:5: around
+ {
+ pushFollow(FOLLOW_around_in_abstractDeclaration256);
+ around2=around();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = around2;
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:44:4: ( extension )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:44:4: ( extension )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:44:5: extension
+ {
+ pushFollow(FOLLOW_extension_in_abstractDeclaration265);
+ extension3=extension();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = extension3;
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:45:4: ( definition )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:45:4: ( definition )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:45:5: definition
+ {
+ pushFollow(FOLLOW_definition_in_abstractDeclaration274);
+ definition4=definition();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = definition4;
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:46:4: ( definitionAround )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:46:4: ( definitionAround )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:46:5: definitionAround
+ {
+ pushFollow(FOLLOW_definitionAround_in_abstractDeclaration283);
+ definitionAround5=definitionAround();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = definitionAround5;
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end abstractDeclaration
+
+
+ // $ANTLR start definition
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:48:1: definition returns [CompositeNode cn] : ( LG ) ( DEFINE ) (name= identifier ) ( ( ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )? ( 'FOR' ) (unnamed3= type ) (unnamed4= sequence ) ( ENDDEFINE ) ( RG ) ;
+ public CompositeNode definition() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode name = null;
+
+ CompositeNode unnamed2 = null;
+
+ CompositeNode unnamed3 = null;
+
+ CompositeNode unnamed4 = null;
+
+
+ cn = factory.createDefinitionNode(); cn.setRule("definition");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:2: ( ( LG ) ( DEFINE ) (name= identifier ) ( ( ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )? ( 'FOR' ) (unnamed3= type ) (unnamed4= sequence ) ( ENDDEFINE ) ( RG ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:2: ( LG ) ( DEFINE ) (name= identifier ) ( ( ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )? ( 'FOR' ) (unnamed3= type ) (unnamed4= sequence ) ( ENDDEFINE ) ( RG )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:2: ( LG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:3: LG
+ {
+ match(input,LG,FOLLOW_LG_in_definition306); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:43: ( DEFINE )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:44: DEFINE
+ {
+ match(input,DEFINE,FOLLOW_DEFINE_in_definition312); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:88: (name= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:89: name= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_definition320);
+ name=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, name); ((DefinitionNode) cn).setName(name);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:172: ( ( ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==31) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:173: ( ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:173: ( ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:174: ( '(' ) ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:174: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:175: '('
+ {
+ match(input,31,FOLLOW_31_in_definition328); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:216: ( ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==Identifier||LA9_0==33||(LA9_0>=69 && LA9_0<=71)) ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:217: ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:217: ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==Identifier||(LA8_0>=69 && LA8_0<=71)) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==33) ) {
+ alt8=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("50:217: ( (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:218: (unnamed2= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:218: (unnamed2= declaredParameterList )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:219: unnamed2= declaredParameterList
+ {
+ pushFollow(FOLLOW_declaredParameterList_in_definition338);
+ unnamed2=declaredParameterList();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed2);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:284: ( ( ( ',' )? ( '*' ) ) )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>=32 && LA7_0<=33)) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:285: ( ( ',' )? ( '*' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:285: ( ( ',' )? ( '*' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:286: ( ',' )? ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:286: ( ',' )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==32) ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:287: ','
+ {
+ match(input,32,FOLLOW_32_in_definition346); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:329: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:50:330: '*'
+ {
+ match(input,33,FOLLOW_33_in_definition353); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:4: ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:4: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:5: '*'
+ {
+ match(input,33,FOLLOW_33_in_definition365); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:49: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:50: ')'
+ {
+ match(input,34,FOLLOW_34_in_definition374); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:94: ( 'FOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:95: 'FOR'
+ {
+ match(input,35,FOLLOW_35_in_definition383); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:138: (unnamed3= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:139: unnamed3= type
+ {
+ pushFollow(FOLLOW_type_in_definition391);
+ unnamed3=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed3);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:187: (unnamed4= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:188: unnamed4= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_definition399);
+ unnamed4=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed4);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:240: ( ENDDEFINE )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:241: ENDDEFINE
+ {
+ match(input,ENDDEFINE,FOLLOW_ENDDEFINE_in_definition405); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:288: ( RG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:51:289: RG
+ {
+ match(input,RG,FOLLOW_RG_in_definition411); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end definition
+
+
+ // $ANTLR start definitionAround
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:53:1: definitionAround returns [CompositeNode cn] : ( LG ) ( AROUND ) (unnamed5= pointcut ) ( ( ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )? ( 'FOR' ) (unnamed7= type ) (unnamed8= sequence ) ( ENDAROUND ) ( RG ) ;
+ public CompositeNode definitionAround() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed5 = null;
+
+ CompositeNode unnamed6 = null;
+
+ CompositeNode unnamed7 = null;
+
+ CompositeNode unnamed8 = null;
+
+
+ cn = factory.createDefinitionAroundNode(); cn.setRule("definitionAround");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:2: ( ( LG ) ( AROUND ) (unnamed5= pointcut ) ( ( ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )? ( 'FOR' ) (unnamed7= type ) (unnamed8= sequence ) ( ENDAROUND ) ( RG ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:2: ( LG ) ( AROUND ) (unnamed5= pointcut ) ( ( ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )? ( 'FOR' ) (unnamed7= type ) (unnamed8= sequence ) ( ENDAROUND ) ( RG )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:2: ( LG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:3: LG
+ {
+ match(input,LG,FOLLOW_LG_in_definitionAround434); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:43: ( AROUND )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:44: AROUND
+ {
+ match(input,AROUND,FOLLOW_AROUND_in_definitionAround440); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:88: (unnamed5= pointcut )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:89: unnamed5= pointcut
+ {
+ pushFollow(FOLLOW_pointcut_in_definitionAround448);
+ unnamed5=pointcut();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed5);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:141: ( ( ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ) )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==31) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:142: ( ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:142: ( ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:143: ( '(' ) ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:143: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:144: '('
+ {
+ match(input,31,FOLLOW_31_in_definitionAround456); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:185: ( ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )?
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==Identifier||LA14_0==33||(LA14_0>=69 && LA14_0<=71)) ) {
+ alt14=1;
+ }
+ switch (alt14) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:186: ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:186: ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==Identifier||(LA13_0>=69 && LA13_0<=71)) ) {
+ alt13=1;
+ }
+ else if ( (LA13_0==33) ) {
+ alt13=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("55:186: ( (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:187: (unnamed6= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:187: (unnamed6= declaredParameterList )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:188: unnamed6= declaredParameterList
+ {
+ pushFollow(FOLLOW_declaredParameterList_in_definitionAround466);
+ unnamed6=declaredParameterList();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed6);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:253: ( ( ( ',' )? ( '*' ) ) )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>=32 && LA12_0<=33)) ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:254: ( ( ',' )? ( '*' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:254: ( ( ',' )? ( '*' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:255: ( ',' )? ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:255: ( ',' )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==32) ) {
+ alt11=1;
+ }
+ switch (alt11) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:256: ','
+ {
+ match(input,32,FOLLOW_32_in_definitionAround474); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:298: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:55:299: '*'
+ {
+ match(input,33,FOLLOW_33_in_definitionAround481); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:4: ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:4: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:5: '*'
+ {
+ match(input,33,FOLLOW_33_in_definitionAround493); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:49: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:50: ')'
+ {
+ match(input,34,FOLLOW_34_in_definitionAround502); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:94: ( 'FOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:95: 'FOR'
+ {
+ match(input,35,FOLLOW_35_in_definitionAround511); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:138: (unnamed7= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:139: unnamed7= type
+ {
+ pushFollow(FOLLOW_type_in_definitionAround519);
+ unnamed7=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed7);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:187: (unnamed8= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:188: unnamed8= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_definitionAround527);
+ unnamed8=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed8);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:240: ( ENDAROUND )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:241: ENDAROUND
+ {
+ match(input,ENDAROUND,FOLLOW_ENDAROUND_in_definitionAround533); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:288: ( RG )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:56:289: RG
+ {
+ match(input,RG,FOLLOW_RG_in_definitionAround539); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end definitionAround
+
+
+ // $ANTLR start sequence
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:58:1: sequence returns [CompositeNode cn] : (unnamed9= textSequence ) ( ( (unnamed10= statement ) (unnamed11= textSequence ) ) )* ;
+ public CompositeNode sequence() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed9 = null;
+
+ CompositeNode unnamed10 = null;
+
+ CompositeNode unnamed11 = null;
+
+
+ cn = factory.createSequenceNode(); cn.setRule("sequence");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:2: ( (unnamed9= textSequence ) ( ( (unnamed10= statement ) (unnamed11= textSequence ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:2: (unnamed9= textSequence ) ( ( (unnamed10= statement ) (unnamed11= textSequence ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:2: (unnamed9= textSequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:3: unnamed9= textSequence
+ {
+ pushFollow(FOLLOW_textSequence_in_sequence564);
+ unnamed9=textSequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed9);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:59: ( ( (unnamed10= statement ) (unnamed11= textSequence ) ) )*
+ loop16:
+ do {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( ((LA16_0>=StringLiteral && LA16_0<=Identifier)||LA16_0==31||(LA16_0>=36 && LA16_0<=39)||LA16_0==41||LA16_0==46||LA16_0==50||LA16_0==52||LA16_0==59||(LA16_0>=69 && LA16_0<=72)||(LA16_0>=78 && LA16_0<=79)||(LA16_0>=94 && LA16_0<=108)) ) {
+ alt16=1;
+ }
+
+
+ switch (alt16) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:60: ( (unnamed10= statement ) (unnamed11= textSequence ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:60: ( (unnamed10= statement ) (unnamed11= textSequence ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:61: (unnamed10= statement ) (unnamed11= textSequence )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:61: (unnamed10= statement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:62: unnamed10= statement
+ {
+ pushFollow(FOLLOW_statement_in_sequence574);
+ unnamed10=statement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed10);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:117: (unnamed11= textSequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:60:118: unnamed11= textSequence
+ {
+ pushFollow(FOLLOW_textSequence_in_sequence582);
+ unnamed11=textSequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed11);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ } while (true);
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end sequence
+
+
+ // $ANTLR start statement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:62:1: statement returns [CompositeNode cn] : ( ( simpleStatement ) | ( fileStatement ) | ( foreachStatement ) | ( ifStatement ) | ( letStatement ) | ( protectStatement ) );
+ public CompositeNode statement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode simpleStatement6 = null;
+
+ CompositeNode fileStatement7 = null;
+
+ CompositeNode foreachStatement8 = null;
+
+ CompositeNode ifStatement9 = null;
+
+ CompositeNode letStatement10 = null;
+
+ CompositeNode protectStatement11 = null;
+
+
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:63:2: ( ( simpleStatement ) | ( fileStatement ) | ( foreachStatement ) | ( ifStatement ) | ( letStatement ) | ( protectStatement ) )
+ int alt17=6;
+ switch ( input.LA(1) ) {
+ case StringLiteral:
+ case IntLiteral:
+ case Identifier:
+ case 31:
+ case 36:
+ case 37:
+ case 38:
+ case 59:
+ case 69:
+ case 70:
+ case 71:
+ case 72:
+ case 78:
+ case 79:
+ case 94:
+ case 95:
+ case 96:
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ {
+ alt17=1;
+ }
+ break;
+ case 41:
+ {
+ alt17=2;
+ }
+ break;
+ case 39:
+ {
+ alt17=3;
+ }
+ break;
+ case 46:
+ {
+ alt17=4;
+ }
+ break;
+ case 50:
+ {
+ alt17=5;
+ }
+ break;
+ case 52:
+ {
+ alt17=6;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("62:1: statement returns [CompositeNode cn] : ( ( simpleStatement ) | ( fileStatement ) | ( foreachStatement ) | ( ifStatement ) | ( letStatement ) | ( protectStatement ) );", 17, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt17) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:63:2: ( simpleStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:63:2: ( simpleStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:63:3: simpleStatement
+ {
+ pushFollow(FOLLOW_simpleStatement_in_statement603);
+ simpleStatement6=simpleStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = simpleStatement6;
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:64:4: ( fileStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:64:4: ( fileStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:64:5: fileStatement
+ {
+ pushFollow(FOLLOW_fileStatement_in_statement612);
+ fileStatement7=fileStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = fileStatement7;
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:65:4: ( foreachStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:65:4: ( foreachStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:65:5: foreachStatement
+ {
+ pushFollow(FOLLOW_foreachStatement_in_statement621);
+ foreachStatement8=foreachStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = foreachStatement8;
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:66:4: ( ifStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:66:4: ( ifStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:66:5: ifStatement
+ {
+ pushFollow(FOLLOW_ifStatement_in_statement630);
+ ifStatement9=ifStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = ifStatement9;
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:67:4: ( letStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:67:4: ( letStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:67:5: letStatement
+ {
+ pushFollow(FOLLOW_letStatement_in_statement639);
+ letStatement10=letStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = letStatement10;
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:68:4: ( protectStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:68:4: ( protectStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:68:5: protectStatement
+ {
+ pushFollow(FOLLOW_protectStatement_in_statement648);
+ protectStatement11=protectStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = protectStatement11;
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end statement
+
+
+ // $ANTLR start textSequence
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:70:1: textSequence returns [CompositeNode cn] : (unnamed12= text ) ( ( (unnamed13= text ) ) )* ;
+ public CompositeNode textSequence() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed12 = null;
+
+ CompositeNode unnamed13 = null;
+
+
+ cn = factory.createTextSequenceNode(); cn.setRule("textSequence");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:2: ( (unnamed12= text ) ( ( (unnamed13= text ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:2: (unnamed12= text ) ( ( (unnamed13= text ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:2: (unnamed12= text )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:3: unnamed12= text
+ {
+ pushFollow(FOLLOW_text_in_textSequence678);
+ unnamed12=text();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed12);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:53: ( ( (unnamed13= text ) ) )*
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==36) ) {
+ int LA18_2 = input.LA(2);
+
+ if ( (LA18_2==TEXT) ) {
+ alt18=1;
+ }
+
+
+ }
+ else if ( (LA18_0==TEXT) ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:54: ( (unnamed13= text ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:54: ( (unnamed13= text ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:55: (unnamed13= text )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:55: (unnamed13= text )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:73:56: unnamed13= text
+ {
+ pushFollow(FOLLOW_text_in_textSequence688);
+ unnamed13=text();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed13);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop18;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end textSequence
+
+
+ // $ANTLR start text
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:75:1: text returns [CompositeNode cn] : ( '-' )? ( TEXT ) ;
+ public CompositeNode text() throws RecognitionException {
+ CompositeNode cn = null;
+
+ cn = factory.createTextNode(); cn.setRule("text");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:2: ( ( '-' )? ( TEXT ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:2: ( '-' )? ( TEXT )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:2: ( '-' )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==36) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:3: '-'
+ {
+ match(input,36,FOLLOW_36_in_text714); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:45: ( TEXT )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:77:46: TEXT
+ {
+ match(input,TEXT,FOLLOW_TEXT_in_text721); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end text
+
+
+ // $ANTLR start simpleStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:79:1: simpleStatement returns [CompositeNode cn] : ( ( errorStatement ) | ( expandStatement ) | ( expressionStmt ) );
+ public CompositeNode simpleStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode errorStatement12 = null;
+
+ CompositeNode expandStatement13 = null;
+
+ CompositeNode expressionStmt14 = null;
+
+
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:80:2: ( ( errorStatement ) | ( expandStatement ) | ( expressionStmt ) )
+ int alt20=3;
+ switch ( input.LA(1) ) {
+ case 37:
+ {
+ alt20=1;
+ }
+ break;
+ case 38:
+ {
+ alt20=2;
+ }
+ break;
+ case StringLiteral:
+ case IntLiteral:
+ case Identifier:
+ case 31:
+ case 36:
+ case 59:
+ case 69:
+ case 70:
+ case 71:
+ case 72:
+ case 78:
+ case 79:
+ case 94:
+ case 95:
+ case 96:
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ {
+ alt20=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("79:1: simpleStatement returns [CompositeNode cn] : ( ( errorStatement ) | ( expandStatement ) | ( expressionStmt ) );", 20, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt20) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:80:2: ( errorStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:80:2: ( errorStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:80:3: errorStatement
+ {
+ pushFollow(FOLLOW_errorStatement_in_simpleStatement739);
+ errorStatement12=errorStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = errorStatement12;
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:81:4: ( expandStatement )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:81:4: ( expandStatement )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:81:5: expandStatement
+ {
+ pushFollow(FOLLOW_expandStatement_in_simpleStatement748);
+ expandStatement13=expandStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = expandStatement13;
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:82:4: ( expressionStmt )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:82:4: ( expressionStmt )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:82:5: expressionStmt
+ {
+ pushFollow(FOLLOW_expressionStmt_in_simpleStatement757);
+ expressionStmt14=expressionStmt();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = expressionStmt14;
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end simpleStatement
+
+
+ // $ANTLR start errorStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:84:1: errorStatement returns [CompositeNode cn] : ( 'ERROR' ) (unnamed14= expression ) ;
+ public CompositeNode errorStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed14 = null;
+
+
+ cn = factory.createErrorStatementNode(); cn.setRule("errorStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:2: ( ( 'ERROR' ) (unnamed14= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:2: ( 'ERROR' ) (unnamed14= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:2: ( 'ERROR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:3: 'ERROR'
+ {
+ match(input,37,FOLLOW_37_in_errorStatement780); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:48: (unnamed14= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:86:49: unnamed14= expression
+ {
+ pushFollow(FOLLOW_expression_in_errorStatement788);
+ unnamed14=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed14);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end errorStatement
+
+
+ // $ANTLR start expandStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:88:1: expandStatement returns [CompositeNode cn] : ( 'EXPAND' ) (unnamed15= simpleType ) ( ( ( '(' ) (unnamed16= parameterList ) ( ')' ) ) )? ( ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) ) )? ;
+ public CompositeNode expandStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed15 = null;
+
+ CompositeNode unnamed16 = null;
+
+ CompositeNode unnamed17 = null;
+
+ CompositeNode unnamed18 = null;
+
+ CompositeNode unnamed19 = null;
+
+
+ cn = factory.createExpandStatementNode(); cn.setRule("expandStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:2: ( ( 'EXPAND' ) (unnamed15= simpleType ) ( ( ( '(' ) (unnamed16= parameterList ) ( ')' ) ) )? ( ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) ) )? )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:2: ( 'EXPAND' ) (unnamed15= simpleType ) ( ( ( '(' ) (unnamed16= parameterList ) ( ')' ) ) )? ( ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:2: ( 'EXPAND' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:3: 'EXPAND'
+ {
+ match(input,38,FOLLOW_38_in_expandStatement811); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:49: (unnamed15= simpleType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:50: unnamed15= simpleType
+ {
+ pushFollow(FOLLOW_simpleType_in_expandStatement819);
+ unnamed15=simpleType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed15);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:106: ( ( ( '(' ) (unnamed16= parameterList ) ( ')' ) ) )?
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==31) ) {
+ alt21=1;
+ }
+ switch (alt21) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:107: ( ( '(' ) (unnamed16= parameterList ) ( ')' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:107: ( ( '(' ) (unnamed16= parameterList ) ( ')' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:108: ( '(' ) (unnamed16= parameterList ) ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:108: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:109: '('
+ {
+ match(input,31,FOLLOW_31_in_expandStatement827); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:150: (unnamed16= parameterList )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:151: unnamed16= parameterList
+ {
+ pushFollow(FOLLOW_parameterList_in_expandStatement835);
+ unnamed16=parameterList();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed16);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:210: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:211: ')'
+ {
+ match(input,34,FOLLOW_34_in_expandStatement841); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:255: ( ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) ) )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==35||LA24_0==39) ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:256: ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:256: ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) )
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==35) ) {
+ alt23=1;
+ }
+ else if ( (LA23_0==39) ) {
+ alt23=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("90:256: ( ( ( ( 'FOR' ) (unnamed17= expression ) ) ) | ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) ) )", 23, 0, input);
+
+ throw nvae;
+ }
+ switch (alt23) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:257: ( ( ( 'FOR' ) (unnamed17= expression ) ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:257: ( ( ( 'FOR' ) (unnamed17= expression ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:258: ( ( 'FOR' ) (unnamed17= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:258: ( ( 'FOR' ) (unnamed17= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:259: ( 'FOR' ) (unnamed17= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:259: ( 'FOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:260: 'FOR'
+ {
+ match(input,35,FOLLOW_35_in_expandStatement854); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:303: (unnamed17= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:90:304: unnamed17= expression
+ {
+ pushFollow(FOLLOW_expression_in_expandStatement862);
+ unnamed17=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed17);
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:4: ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:4: ( ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:5: ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:5: ( ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )? )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:6: ( 'FOREACH' ) (unnamed18= expression ) ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:6: ( 'FOREACH' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:7: 'FOREACH'
+ {
+ match(input,39,FOLLOW_39_in_expandStatement875); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:54: (unnamed18= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:55: unnamed18= expression
+ {
+ pushFollow(FOLLOW_expression_in_expandStatement883);
+ unnamed18=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed18);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:111: ( ( ( 'SEPARATOR' ) (unnamed19= expression ) ) )?
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0==40) ) {
+ alt22=1;
+ }
+ switch (alt22) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:112: ( ( 'SEPARATOR' ) (unnamed19= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:112: ( ( 'SEPARATOR' ) (unnamed19= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:113: ( 'SEPARATOR' ) (unnamed19= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:113: ( 'SEPARATOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:114: 'SEPARATOR'
+ {
+ match(input,40,FOLLOW_40_in_expandStatement891); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:163: (unnamed19= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:91:164: unnamed19= expression
+ {
+ pushFollow(FOLLOW_expression_in_expandStatement899);
+ unnamed19=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed19);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end expandStatement
+
+
+ // $ANTLR start expressionStmt
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:93:1: expressionStmt returns [CompositeNode cn] : (unnamed20= expression ) ;
+ public CompositeNode expressionStmt() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed20 = null;
+
+
+ cn = factory.createExpressionStmtNode(); cn.setRule("expressionStmt");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:95:2: ( (unnamed20= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:95:2: (unnamed20= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:95:2: (unnamed20= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:95:3: unnamed20= expression
+ {
+ pushFollow(FOLLOW_expression_in_expressionStmt932);
+ unnamed20=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed20);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end expressionStmt
+
+
+ // $ANTLR start fileStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:97:1: fileStatement returns [CompositeNode cn] : ( 'FILE' ) (unnamed21= expression ) ( ( (unnamed22= identifier ) ) )? (unnamed23= sequence ) ( 'ENDFILE' ) ;
+ public CompositeNode fileStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed21 = null;
+
+ CompositeNode unnamed22 = null;
+
+ CompositeNode unnamed23 = null;
+
+
+ cn = factory.createFileStatementNode(); cn.setRule("fileStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:2: ( ( 'FILE' ) (unnamed21= expression ) ( ( (unnamed22= identifier ) ) )? (unnamed23= sequence ) ( 'ENDFILE' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:2: ( 'FILE' ) (unnamed21= expression ) ( ( (unnamed22= identifier ) ) )? (unnamed23= sequence ) ( 'ENDFILE' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:2: ( 'FILE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:3: 'FILE'
+ {
+ match(input,41,FOLLOW_41_in_fileStatement955); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:47: (unnamed21= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:48: unnamed21= expression
+ {
+ pushFollow(FOLLOW_expression_in_fileStatement963);
+ unnamed21=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed21);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:104: ( ( (unnamed22= identifier ) ) )?
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==Identifier) ) {
+ alt25=1;
+ }
+ switch (alt25) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:105: ( (unnamed22= identifier ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:105: ( (unnamed22= identifier ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:106: (unnamed22= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:106: (unnamed22= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:107: unnamed22= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_fileStatement973);
+ unnamed22=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed22);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:166: (unnamed23= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:167: unnamed23= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_fileStatement984);
+ unnamed23=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed23);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:221: ( 'ENDFILE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:99:222: 'ENDFILE'
+ {
+ match(input,42,FOLLOW_42_in_fileStatement990); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end fileStatement
+
+
+ // $ANTLR start foreachStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:101:1: foreachStatement returns [CompositeNode cn] : ( 'FOREACH' ) (unnamed24= expression ) ( 'AS' ) (unnamed25= identifier ) ( ( ( 'ITERATOR' ) (unnamed26= identifier ) ) )? ( ( ( 'SEPARATOR' ) (unnamed27= expression ) ) )? (unnamed28= sequence ) ( 'ENDFOREACH' ) ;
+ public CompositeNode foreachStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed24 = null;
+
+ CompositeNode unnamed25 = null;
+
+ CompositeNode unnamed26 = null;
+
+ CompositeNode unnamed27 = null;
+
+ CompositeNode unnamed28 = null;
+
+
+ cn = factory.createForeachStatementNode(); cn.setRule("foreachStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:2: ( ( 'FOREACH' ) (unnamed24= expression ) ( 'AS' ) (unnamed25= identifier ) ( ( ( 'ITERATOR' ) (unnamed26= identifier ) ) )? ( ( ( 'SEPARATOR' ) (unnamed27= expression ) ) )? (unnamed28= sequence ) ( 'ENDFOREACH' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:2: ( 'FOREACH' ) (unnamed24= expression ) ( 'AS' ) (unnamed25= identifier ) ( ( ( 'ITERATOR' ) (unnamed26= identifier ) ) )? ( ( ( 'SEPARATOR' ) (unnamed27= expression ) ) )? (unnamed28= sequence ) ( 'ENDFOREACH' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:2: ( 'FOREACH' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:3: 'FOREACH'
+ {
+ match(input,39,FOLLOW_39_in_foreachStatement1013); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:50: (unnamed24= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:51: unnamed24= expression
+ {
+ pushFollow(FOLLOW_expression_in_foreachStatement1021);
+ unnamed24=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed24);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:107: ( 'AS' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:108: 'AS'
+ {
+ match(input,43,FOLLOW_43_in_foreachStatement1027); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:150: (unnamed25= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:151: unnamed25= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_foreachStatement1035);
+ unnamed25=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed25);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:207: ( ( ( 'ITERATOR' ) (unnamed26= identifier ) ) )?
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0==44) ) {
+ alt26=1;
+ }
+ switch (alt26) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:208: ( ( 'ITERATOR' ) (unnamed26= identifier ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:208: ( ( 'ITERATOR' ) (unnamed26= identifier ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:209: ( 'ITERATOR' ) (unnamed26= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:209: ( 'ITERATOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:210: 'ITERATOR'
+ {
+ match(input,44,FOLLOW_44_in_foreachStatement1043); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:258: (unnamed26= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:259: unnamed26= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_foreachStatement1051);
+ unnamed26=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed26);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:318: ( ( ( 'SEPARATOR' ) (unnamed27= expression ) ) )?
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0==40) ) {
+ alt27=1;
+ }
+ switch (alt27) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:319: ( ( 'SEPARATOR' ) (unnamed27= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:319: ( ( 'SEPARATOR' ) (unnamed27= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:320: ( 'SEPARATOR' ) (unnamed27= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:320: ( 'SEPARATOR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:321: 'SEPARATOR'
+ {
+ match(input,40,FOLLOW_40_in_foreachStatement1062); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:370: (unnamed27= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:371: unnamed27= expression
+ {
+ pushFollow(FOLLOW_expression_in_foreachStatement1070);
+ unnamed27=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed27);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:430: (unnamed28= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:431: unnamed28= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_foreachStatement1081);
+ unnamed28=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed28);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:485: ( 'ENDFOREACH' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:103:486: 'ENDFOREACH'
+ {
+ match(input,45,FOLLOW_45_in_foreachStatement1087); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end foreachStatement
+
+
+ // $ANTLR start ifStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:105:1: ifStatement returns [CompositeNode cn] : ( 'IF' ) (unnamed29= expression ) (unnamed30= sequence ) (unnamed31= elseIfStatement )* (unnamed32= elseStatement )? ( 'ENDIF' ) ;
+ public CompositeNode ifStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed29 = null;
+
+ CompositeNode unnamed30 = null;
+
+ CompositeNode unnamed31 = null;
+
+ CompositeNode unnamed32 = null;
+
+
+ cn = factory.createIfStatementNode(); cn.setRule("ifStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:2: ( ( 'IF' ) (unnamed29= expression ) (unnamed30= sequence ) (unnamed31= elseIfStatement )* (unnamed32= elseStatement )? ( 'ENDIF' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:2: ( 'IF' ) (unnamed29= expression ) (unnamed30= sequence ) (unnamed31= elseIfStatement )* (unnamed32= elseStatement )? ( 'ENDIF' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:2: ( 'IF' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:3: 'IF'
+ {
+ match(input,46,FOLLOW_46_in_ifStatement1110); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:45: (unnamed29= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:46: unnamed29= expression
+ {
+ pushFollow(FOLLOW_expression_in_ifStatement1118);
+ unnamed29=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed29);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:102: (unnamed30= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:103: unnamed30= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_ifStatement1126);
+ unnamed30=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed30);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:157: (unnamed31= elseIfStatement )*
+ loop28:
+ do {
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==48) ) {
+ alt28=1;
+ }
+
+
+ switch (alt28) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:158: unnamed31= elseIfStatement
+ {
+ pushFollow(FOLLOW_elseIfStatement_in_ifStatement1134);
+ unnamed31=elseIfStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed31);
+ }
+
+ }
+ break;
+
+ default :
+ break loop28;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:220: (unnamed32= elseStatement )?
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==49) ) {
+ alt29=1;
+ }
+ switch (alt29) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:221: unnamed32= elseStatement
+ {
+ pushFollow(FOLLOW_elseStatement_in_ifStatement1143);
+ unnamed32=elseStatement();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed32);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:281: ( 'ENDIF' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:107:282: 'ENDIF'
+ {
+ match(input,47,FOLLOW_47_in_ifStatement1150); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end ifStatement
+
+
+ // $ANTLR start elseIfStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:109:1: elseIfStatement returns [CompositeNode cn] : ( 'ELSEIF' ) (unnamed33= expression ) (unnamed34= sequence ) ;
+ public CompositeNode elseIfStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed33 = null;
+
+ CompositeNode unnamed34 = null;
+
+
+ cn = factory.createElseIfStatementNode(); cn.setRule("elseIfStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:2: ( ( 'ELSEIF' ) (unnamed33= expression ) (unnamed34= sequence ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:2: ( 'ELSEIF' ) (unnamed33= expression ) (unnamed34= sequence )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:2: ( 'ELSEIF' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:3: 'ELSEIF'
+ {
+ match(input,48,FOLLOW_48_in_elseIfStatement1173); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:49: (unnamed33= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:50: unnamed33= expression
+ {
+ pushFollow(FOLLOW_expression_in_elseIfStatement1181);
+ unnamed33=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed33);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:106: (unnamed34= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:111:107: unnamed34= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_elseIfStatement1189);
+ unnamed34=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed34);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end elseIfStatement
+
+
+ // $ANTLR start elseStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:113:1: elseStatement returns [CompositeNode cn] : ( 'ELSE' ) (unnamed35= sequence ) ;
+ public CompositeNode elseStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed35 = null;
+
+
+ cn = factory.createElseStatementNode(); cn.setRule("elseStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:115:2: ( ( 'ELSE' ) (unnamed35= sequence ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:115:2: ( 'ELSE' ) (unnamed35= sequence )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:115:2: ( 'ELSE' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:115:3: 'ELSE'
+ {
+ match(input,49,FOLLOW_49_in_elseStatement1212); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:115:47: (unnamed35= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:115:48: unnamed35= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_elseStatement1220);
+ unnamed35=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed35);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end elseStatement
+
+
+ // $ANTLR start letStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:117:1: letStatement returns [CompositeNode cn] : ( 'LET' ) (unnamed36= expression ) ( 'AS' ) (unnamed37= identifier ) (unnamed38= sequence ) ( 'ENDLET' ) ;
+ public CompositeNode letStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed36 = null;
+
+ CompositeNode unnamed37 = null;
+
+ CompositeNode unnamed38 = null;
+
+
+ cn = factory.createLetStatementNode(); cn.setRule("letStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:2: ( ( 'LET' ) (unnamed36= expression ) ( 'AS' ) (unnamed37= identifier ) (unnamed38= sequence ) ( 'ENDLET' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:2: ( 'LET' ) (unnamed36= expression ) ( 'AS' ) (unnamed37= identifier ) (unnamed38= sequence ) ( 'ENDLET' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:2: ( 'LET' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:3: 'LET'
+ {
+ match(input,50,FOLLOW_50_in_letStatement1243); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:46: (unnamed36= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:47: unnamed36= expression
+ {
+ pushFollow(FOLLOW_expression_in_letStatement1251);
+ unnamed36=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed36);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:103: ( 'AS' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:104: 'AS'
+ {
+ match(input,43,FOLLOW_43_in_letStatement1257); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:146: (unnamed37= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:147: unnamed37= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_letStatement1265);
+ unnamed37=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed37);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:203: (unnamed38= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:204: unnamed38= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_letStatement1273);
+ unnamed38=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed38);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:258: ( 'ENDLET' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:119:259: 'ENDLET'
+ {
+ match(input,51,FOLLOW_51_in_letStatement1279); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end letStatement
+
+
+ // $ANTLR start protectStatement
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:121:1: protectStatement returns [CompositeNode cn] : ( 'PROTECT' ) ( 'CSTART' ) (unnamed39= expression ) ( 'CEND' ) (unnamed40= expression ) ( 'ID' ) (unnamed41= expression ) ( 'DISABLE' )? (unnamed42= sequence ) ( 'ENDPROTECT' ) ;
+ public CompositeNode protectStatement() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed39 = null;
+
+ CompositeNode unnamed40 = null;
+
+ CompositeNode unnamed41 = null;
+
+ CompositeNode unnamed42 = null;
+
+
+ cn = factory.createProtectStatementNode(); cn.setRule("protectStatement");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:2: ( ( 'PROTECT' ) ( 'CSTART' ) (unnamed39= expression ) ( 'CEND' ) (unnamed40= expression ) ( 'ID' ) (unnamed41= expression ) ( 'DISABLE' )? (unnamed42= sequence ) ( 'ENDPROTECT' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:2: ( 'PROTECT' ) ( 'CSTART' ) (unnamed39= expression ) ( 'CEND' ) (unnamed40= expression ) ( 'ID' ) (unnamed41= expression ) ( 'DISABLE' )? (unnamed42= sequence ) ( 'ENDPROTECT' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:2: ( 'PROTECT' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:3: 'PROTECT'
+ {
+ match(input,52,FOLLOW_52_in_protectStatement1302); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:50: ( 'CSTART' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:51: 'CSTART'
+ {
+ match(input,53,FOLLOW_53_in_protectStatement1308); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:97: (unnamed39= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:98: unnamed39= expression
+ {
+ pushFollow(FOLLOW_expression_in_protectStatement1316);
+ unnamed39=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed39);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:154: ( 'CEND' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:155: 'CEND'
+ {
+ match(input,54,FOLLOW_54_in_protectStatement1322); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:199: (unnamed40= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:200: unnamed40= expression
+ {
+ pushFollow(FOLLOW_expression_in_protectStatement1330);
+ unnamed40=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed40);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:256: ( 'ID' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:257: 'ID'
+ {
+ match(input,55,FOLLOW_55_in_protectStatement1336); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:299: (unnamed41= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:300: unnamed41= expression
+ {
+ pushFollow(FOLLOW_expression_in_protectStatement1344);
+ unnamed41=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed41);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:356: ( 'DISABLE' )?
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==56) ) {
+ alt30=1;
+ }
+ switch (alt30) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:357: 'DISABLE'
+ {
+ match(input,56,FOLLOW_56_in_protectStatement1350); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:405: (unnamed42= sequence )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:406: unnamed42= sequence
+ {
+ pushFollow(FOLLOW_sequence_in_protectStatement1359);
+ unnamed42=sequence();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed42);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:460: ( 'ENDPROTECT' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:123:461: 'ENDPROTECT'
+ {
+ match(input,57,FOLLOW_57_in_protectStatement1365); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end protectStatement
+
+
+ // $ANTLR start check
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:125:1: check returns [CompositeNode cn] : ( 'context' ) (unnamed43= type ) ( ( ( 'if' ) (unnamed44= expression ) ) )? ( ( ( 'ERROR' ) | ( 'WARNING' ) ) ) (unnamed45= expression ) ( ':' ) (unnamed46= expression ) ( ';' ) ;
+ public CompositeNode check() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed43 = null;
+
+ CompositeNode unnamed44 = null;
+
+ CompositeNode unnamed45 = null;
+
+ CompositeNode unnamed46 = null;
+
+
+ cn = factory.createCheckNode(); cn.setRule("check");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:2: ( ( 'context' ) (unnamed43= type ) ( ( ( 'if' ) (unnamed44= expression ) ) )? ( ( ( 'ERROR' ) | ( 'WARNING' ) ) ) (unnamed45= expression ) ( ':' ) (unnamed46= expression ) ( ';' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:2: ( 'context' ) (unnamed43= type ) ( ( ( 'if' ) (unnamed44= expression ) ) )? ( ( ( 'ERROR' ) | ( 'WARNING' ) ) ) (unnamed45= expression ) ( ':' ) (unnamed46= expression ) ( ';' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:2: ( 'context' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:3: 'context'
+ {
+ match(input,58,FOLLOW_58_in_check1388); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:50: (unnamed43= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:51: unnamed43= type
+ {
+ pushFollow(FOLLOW_type_in_check1396);
+ unnamed43=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed43);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:101: ( ( ( 'if' ) (unnamed44= expression ) ) )?
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==59) ) {
+ alt31=1;
+ }
+ switch (alt31) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:102: ( ( 'if' ) (unnamed44= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:102: ( ( 'if' ) (unnamed44= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:103: ( 'if' ) (unnamed44= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:103: ( 'if' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:104: 'if'
+ {
+ match(input,59,FOLLOW_59_in_check1404); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:146: (unnamed44= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:147: unnamed44= expression
+ {
+ pushFollow(FOLLOW_expression_in_check1412);
+ unnamed44=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed44);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:206: ( ( ( 'ERROR' ) | ( 'WARNING' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:207: ( ( 'ERROR' ) | ( 'WARNING' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:207: ( ( 'ERROR' ) | ( 'WARNING' ) )
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==37) ) {
+ alt32=1;
+ }
+ else if ( (LA32_0==60) ) {
+ alt32=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("127:207: ( ( 'ERROR' ) | ( 'WARNING' ) )", 32, 0, input);
+
+ throw nvae;
+ }
+ switch (alt32) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:208: ( 'ERROR' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:208: ( 'ERROR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:127:209: 'ERROR'
+ {
+ match(input,37,FOLLOW_37_in_check1423); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:4: ( 'WARNING' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:4: ( 'WARNING' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:5: 'WARNING'
+ {
+ match(input,60,FOLLOW_60_in_check1432); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:54: (unnamed45= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:55: unnamed45= expression
+ {
+ pushFollow(FOLLOW_expression_in_check1442);
+ unnamed45=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed45);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:111: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:112: ':'
+ {
+ match(input,61,FOLLOW_61_in_check1448); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:153: (unnamed46= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:154: unnamed46= expression
+ {
+ pushFollow(FOLLOW_expression_in_check1456);
+ unnamed46=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed46);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:210: ( ';' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:128:211: ';'
+ {
+ match(input,28,FOLLOW_28_in_check1462); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end check
+
+
+ // $ANTLR start around
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:130:1: around returns [CompositeNode cn] : ( 'around' ) (unnamed47= pointcut ) ( '(' ) ( ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ( ':' ) (unnamed49= expression ) ( ';' ) ;
+ public CompositeNode around() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed47 = null;
+
+ CompositeNode unnamed48 = null;
+
+ CompositeNode unnamed49 = null;
+
+
+ cn = factory.createAroundNode(); cn.setRule("around");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:2: ( ( 'around' ) (unnamed47= pointcut ) ( '(' ) ( ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ( ':' ) (unnamed49= expression ) ( ';' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:2: ( 'around' ) (unnamed47= pointcut ) ( '(' ) ( ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )? ( ')' ) ( ':' ) (unnamed49= expression ) ( ';' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:2: ( 'around' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:3: 'around'
+ {
+ match(input,62,FOLLOW_62_in_around1485); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:49: (unnamed47= pointcut )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:50: unnamed47= pointcut
+ {
+ pushFollow(FOLLOW_pointcut_in_around1493);
+ unnamed47=pointcut();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed47);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:104: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:105: '('
+ {
+ match(input,31,FOLLOW_31_in_around1499); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:146: ( ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) ) )?
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==Identifier||LA36_0==33||(LA36_0>=69 && LA36_0<=71)) ) {
+ alt36=1;
+ }
+ switch (alt36) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:147: ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:147: ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==Identifier||(LA35_0>=69 && LA35_0<=71)) ) {
+ alt35=1;
+ }
+ else if ( (LA35_0==33) ) {
+ alt35=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("132:147: ( (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )? | ( '*' ) )", 35, 0, input);
+
+ throw nvae;
+ }
+ switch (alt35) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:148: (unnamed48= declaredParameterList ) ( ( ( ',' )? ( '*' ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:148: (unnamed48= declaredParameterList )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:149: unnamed48= declaredParameterList
+ {
+ pushFollow(FOLLOW_declaredParameterList_in_around1509);
+ unnamed48=declaredParameterList();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed48);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:216: ( ( ( ',' )? ( '*' ) ) )?
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( ((LA34_0>=32 && LA34_0<=33)) ) {
+ alt34=1;
+ }
+ switch (alt34) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:217: ( ( ',' )? ( '*' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:217: ( ( ',' )? ( '*' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:218: ( ',' )? ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:218: ( ',' )?
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==32) ) {
+ alt33=1;
+ }
+ switch (alt33) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:219: ','
+ {
+ match(input,32,FOLLOW_32_in_around1517); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:261: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:132:262: '*'
+ {
+ match(input,33,FOLLOW_33_in_around1524); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:4: ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:4: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:5: '*'
+ {
+ match(input,33,FOLLOW_33_in_around1536); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:49: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:50: ')'
+ {
+ match(input,34,FOLLOW_34_in_around1545); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:91: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:92: ':'
+ {
+ match(input,61,FOLLOW_61_in_around1551); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:133: (unnamed49= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:134: unnamed49= expression
+ {
+ pushFollow(FOLLOW_expression_in_around1559);
+ unnamed49=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed49);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:190: ( ';' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:133:191: ';'
+ {
+ match(input,28,FOLLOW_28_in_around1565); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end around
+
+
+ // $ANTLR start pointcut
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:135:1: pointcut returns [CompositeNode cn] : ( ( ( '*' ) | (unnamed50= identifier ) ) ) ( ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) ) )* ;
+ public CompositeNode pointcut() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed50 = null;
+
+ CompositeNode unnamed51 = null;
+
+
+ cn = factory.createPointcutNode(); cn.setRule("pointcut");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:2: ( ( ( ( '*' ) | (unnamed50= identifier ) ) ) ( ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:2: ( ( ( '*' ) | (unnamed50= identifier ) ) ) ( ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:2: ( ( ( '*' ) | (unnamed50= identifier ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:3: ( ( '*' ) | (unnamed50= identifier ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:3: ( ( '*' ) | (unnamed50= identifier ) )
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==33) ) {
+ alt37=1;
+ }
+ else if ( (LA37_0==Identifier) ) {
+ alt37=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("137:3: ( ( '*' ) | (unnamed50= identifier ) )", 37, 0, input);
+
+ throw nvae;
+ }
+ switch (alt37) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:4: ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:4: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:137:5: '*'
+ {
+ match(input,33,FOLLOW_33_in_pointcut1590); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:4: (unnamed50= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:4: (unnamed50= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:5: unnamed50= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_pointcut1601);
+ unnamed50=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed50);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:63: ( ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) ) )*
+ loop39:
+ do {
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+
+ if ( (LA39_0==Identifier||LA39_0==33||LA39_0==63) ) {
+ alt39=1;
+ }
+
+
+ switch (alt39) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:64: ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:64: ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) )
+ int alt38=3;
+ switch ( input.LA(1) ) {
+ case 33:
+ {
+ alt38=1;
+ }
+ break;
+ case Identifier:
+ {
+ alt38=2;
+ }
+ break;
+ case 63:
+ {
+ alt38=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("138:64: ( ( '*' ) | (unnamed51= identifier ) | ( '::' ) )", 38, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt38) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:65: ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:65: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:138:66: '*'
+ {
+ match(input,33,FOLLOW_33_in_pointcut1611); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:139:4: (unnamed51= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:139:4: (unnamed51= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:139:5: unnamed51= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_pointcut1622);
+ unnamed51=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed51);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:140:4: ( '::' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:140:4: ( '::' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:140:5: '::'
+ {
+ match(input,63,FOLLOW_63_in_pointcut1631); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop39;
+ }
+ } while (true);
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end pointcut
+
+
+ // $ANTLR start extension
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:142:1: extension returns [CompositeNode cn] : ( ( ( 'private' ) | ( 'cached' ) | ( 'create' ) ) )* (unnamed52= type )? (unnamed53= identifier ) (unnamed54= identifier )? ( '(' ) (unnamed55= declaredParameterList )? ( ')' ) ( ':' ) ( ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) ) ) ( ';' ) ;
+ public CompositeNode extension() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed52 = null;
+
+ CompositeNode unnamed53 = null;
+
+ CompositeNode unnamed54 = null;
+
+ CompositeNode unnamed55 = null;
+
+ CompositeNode unnamed56 = null;
+
+ CompositeNode unnamed57 = null;
+
+ CompositeNode unnamed58 = null;
+
+ CompositeNode unnamed59 = null;
+
+ CompositeNode unnamed60 = null;
+
+
+ cn = factory.createExtensionNode(); cn.setRule("extension");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:2: ( ( ( ( 'private' ) | ( 'cached' ) | ( 'create' ) ) )* (unnamed52= type )? (unnamed53= identifier ) (unnamed54= identifier )? ( '(' ) (unnamed55= declaredParameterList )? ( ')' ) ( ':' ) ( ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) ) ) ( ';' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:2: ( ( ( 'private' ) | ( 'cached' ) | ( 'create' ) ) )* (unnamed52= type )? (unnamed53= identifier ) (unnamed54= identifier )? ( '(' ) (unnamed55= declaredParameterList )? ( ')' ) ( ':' ) ( ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) ) ) ( ';' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:2: ( ( ( 'private' ) | ( 'cached' ) | ( 'create' ) ) )*
+ loop41:
+ do {
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( ((LA41_0>=64 && LA41_0<=66)) ) {
+ alt41=1;
+ }
+
+
+ switch (alt41) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:3: ( ( 'private' ) | ( 'cached' ) | ( 'create' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:3: ( ( 'private' ) | ( 'cached' ) | ( 'create' ) )
+ int alt40=3;
+ switch ( input.LA(1) ) {
+ case 64:
+ {
+ alt40=1;
+ }
+ break;
+ case 65:
+ {
+ alt40=2;
+ }
+ break;
+ case 66:
+ {
+ alt40=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("144:3: ( ( 'private' ) | ( 'cached' ) | ( 'create' ) )", 40, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt40) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:4: ( 'private' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:4: ( 'private' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:144:5: 'private'
+ {
+ match(input,64,FOLLOW_64_in_extension1659); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:145:4: ( 'cached' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:145:4: ( 'cached' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:145:5: 'cached'
+ {
+ match(input,65,FOLLOW_65_in_extension1668); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:4: ( 'create' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:4: ( 'create' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:5: 'create'
+ {
+ match(input,66,FOLLOW_66_in_extension1677); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop41;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:54: (unnamed52= type )?
+ int alt42=2;
+ int LA42_0 = input.LA(1);
+
+ if ( ((LA42_0>=69 && LA42_0<=71)) ) {
+ alt42=1;
+ }
+ else if ( (LA42_0==Identifier) ) {
+ int LA42_2 = input.LA(2);
+
+ if ( (LA42_2==Identifier||LA42_2==63) ) {
+ alt42=1;
+ }
+ }
+ switch (alt42) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:55: unnamed52= type
+ {
+ pushFollow(FOLLOW_type_in_extension1688);
+ unnamed52=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed52);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:106: (unnamed53= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:107: unnamed53= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_extension1697);
+ unnamed53=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed53);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:163: (unnamed54= identifier )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==Identifier) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:164: unnamed54= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_extension1705);
+ unnamed54=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed54);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:221: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:222: '('
+ {
+ match(input,31,FOLLOW_31_in_extension1712); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:263: (unnamed55= declaredParameterList )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==Identifier||(LA44_0>=69 && LA44_0<=71)) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:264: unnamed55= declaredParameterList
+ {
+ pushFollow(FOLLOW_declaredParameterList_in_extension1720);
+ unnamed55=declaredParameterList();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed55);
+ }
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:332: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:333: ')'
+ {
+ match(input,34,FOLLOW_34_in_extension1727); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:374: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:375: ':'
+ {
+ match(input,61,FOLLOW_61_in_extension1733); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:416: ( ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:417: ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:417: ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) )
+ int alt47=2;
+ int LA47_0 = input.LA(1);
+
+ if ( (LA47_0==67) ) {
+ alt47=1;
+ }
+ else if ( ((LA47_0>=StringLiteral && LA47_0<=Identifier)||LA47_0==31||LA47_0==36||LA47_0==59||(LA47_0>=69 && LA47_0<=72)||(LA47_0>=78 && LA47_0<=79)||(LA47_0>=94 && LA47_0<=108)) ) {
+ alt47=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("146:417: ( ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' ) | (unnamed60= expression ) )", 47, 0, input);
+
+ throw nvae;
+ }
+ switch (alt47) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:418: ( 'JAVA' ) (unnamed56= javaType ) ( '.' ) (unnamed57= identifier ) ( '(' ) ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )? ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:418: ( 'JAVA' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:419: 'JAVA'
+ {
+ match(input,67,FOLLOW_67_in_extension1741); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:463: (unnamed56= javaType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:464: unnamed56= javaType
+ {
+ pushFollow(FOLLOW_javaType_in_extension1749);
+ unnamed56=javaType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed56);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:518: ( '.' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:519: '.'
+ {
+ match(input,68,FOLLOW_68_in_extension1755); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:560: (unnamed57= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:561: unnamed57= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_extension1763);
+ unnamed57=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed57);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:617: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:618: '('
+ {
+ match(input,31,FOLLOW_31_in_extension1769); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:659: ( ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* ) )?
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==Identifier) ) {
+ alt46=1;
+ }
+ switch (alt46) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:660: ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:660: ( (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:661: (unnamed58= javaType ) ( ( ( ',' ) (unnamed59= javaType ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:661: (unnamed58= javaType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:662: unnamed58= javaType
+ {
+ pushFollow(FOLLOW_javaType_in_extension1779);
+ unnamed58=javaType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed58);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:716: ( ( ( ',' ) (unnamed59= javaType ) ) )*
+ loop45:
+ do {
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==32) ) {
+ alt45=1;
+ }
+
+
+ switch (alt45) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:717: ( ( ',' ) (unnamed59= javaType ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:717: ( ( ',' ) (unnamed59= javaType ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:718: ( ',' ) (unnamed59= javaType )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:718: ( ',' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:719: ','
+ {
+ match(input,32,FOLLOW_32_in_extension1787); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:760: (unnamed59= javaType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:761: unnamed59= javaType
+ {
+ pushFollow(FOLLOW_javaType_in_extension1795);
+ unnamed59=javaType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed59);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop45;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:821: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:146:822: ')'
+ {
+ match(input,34,FOLLOW_34_in_extension1807); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:147:4: (unnamed60= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:147:4: (unnamed60= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:147:5: unnamed60= expression
+ {
+ pushFollow(FOLLOW_expression_in_extension1818);
+ unnamed60=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed60);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:147:63: ( ';' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:147:64: ';'
+ {
+ match(input,28,FOLLOW_28_in_extension1826); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end extension
+
+
+ // $ANTLR start javaType
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:149:1: javaType returns [CompositeNode cn] : (unnamed61= identifier ) ( ( ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ) )* ;
+ public CompositeNode javaType() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed61 = null;
+
+ CompositeNode unnamed62 = null;
+
+
+ cn = factory.createJavaTypeNode(); cn.setRule("javaType");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:2: ( (unnamed61= identifier ) ( ( ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:2: (unnamed61= identifier ) ( ( ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:2: (unnamed61= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:3: unnamed61= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_javaType1851);
+ unnamed61=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed61);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:59: ( ( ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ) )*
+ loop49:
+ do {
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==68) ) {
+ int LA49_1 = input.LA(2);
+
+ if ( (LA49_1==Identifier) ) {
+ int LA49_3 = input.LA(3);
+
+ if ( (LA49_3==32||LA49_3==34||LA49_3==68) ) {
+ alt49=1;
+ }
+
+
+ }
+ else if ( ((LA49_1>=69 && LA49_1<=71)) ) {
+ alt49=1;
+ }
+
+
+ }
+
+
+ switch (alt49) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:60: ( ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:60: ( ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:61: ( '.' ) ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:61: ( '.' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:62: '.'
+ {
+ match(input,68,FOLLOW_68_in_javaType1859); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:103: ( ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:104: ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:104: ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) )
+ int alt48=4;
+ switch ( input.LA(1) ) {
+ case Identifier:
+ {
+ alt48=1;
+ }
+ break;
+ case 69:
+ {
+ alt48=2;
+ }
+ break;
+ case 70:
+ {
+ alt48=3;
+ }
+ break;
+ case 71:
+ {
+ alt48=4;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("151:104: ( (unnamed62= identifier ) | ( 'Collection' ) | ( 'List' ) | ( 'Set' ) )", 48, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt48) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:105: (unnamed62= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:105: (unnamed62= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:151:106: unnamed62= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_javaType1869);
+ unnamed62=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed62);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:152:4: ( 'Collection' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:152:4: ( 'Collection' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:152:5: 'Collection'
+ {
+ match(input,69,FOLLOW_69_in_javaType1878); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:153:4: ( 'List' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:153:4: ( 'List' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:153:5: 'List'
+ {
+ match(input,70,FOLLOW_70_in_javaType1887); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:154:4: ( 'Set' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:154:4: ( 'Set' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:154:5: 'Set'
+ {
+ match(input,71,FOLLOW_71_in_javaType1896); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop49;
+ }
+ } while (true);
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end javaType
+
+
+ // $ANTLR start test_expression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:156:1: test_expression returns [CompositeNode cn] : (unnamed63= expression ) ( EOF ) ;
+ public CompositeNode test_expression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed63 = null;
+
+
+ cn = factory.createTest_expressionNode(); cn.setRule("test_expression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:159:2: ( (unnamed63= expression ) ( EOF ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:159:2: (unnamed63= expression ) ( EOF )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:159:2: (unnamed63= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:159:3: unnamed63= expression
+ {
+ pushFollow(FOLLOW_expression_in_test_expression1931);
+ unnamed63=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed63);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:159:59: ( EOF )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:159:60: EOF
+ {
+ match(input,EOF,FOLLOW_EOF_in_test_expression1937); if (failed) return cn;
+
+ }
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end test_expression
+
+
+ // $ANTLR start expression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:161:1: expression returns [CompositeNode cn] : (unnamed64= letExpression ) ;
+ public CompositeNode expression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed64 = null;
+
+
+ cn = factory.createExpressionNode(); cn.setRule("expression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:164:2: ( (unnamed64= letExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:164:2: (unnamed64= letExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:164:2: (unnamed64= letExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:164:3: unnamed64= letExpression
+ {
+ pushFollow(FOLLOW_letExpression_in_expression1965);
+ unnamed64=letExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed64);
+ }
+
+ }
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end expression
+
+
+ // $ANTLR start letExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:166:1: letExpression returns [CompositeNode cn] : ( ( 'let' ) (unnamed65= identifier ) ( '=' ) (unnamed66= castedExpression ) ( ':' ) (unnamed67= expression ) | (unnamed68= castedExpression ) );
+ public CompositeNode letExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed65 = null;
+
+ CompositeNode unnamed66 = null;
+
+ CompositeNode unnamed67 = null;
+
+ CompositeNode unnamed68 = null;
+
+
+ cn = factory.createLetExpressionNode(); cn.setRule("letExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:2: ( ( 'let' ) (unnamed65= identifier ) ( '=' ) (unnamed66= castedExpression ) ( ':' ) (unnamed67= expression ) | (unnamed68= castedExpression ) )
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==72) ) {
+ alt50=1;
+ }
+ else if ( ((LA50_0>=StringLiteral && LA50_0<=Identifier)||LA50_0==31||LA50_0==36||LA50_0==59||(LA50_0>=69 && LA50_0<=71)||(LA50_0>=78 && LA50_0<=79)||(LA50_0>=94 && LA50_0<=108)) ) {
+ alt50=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("166:1: letExpression returns [CompositeNode cn] : ( ( 'let' ) (unnamed65= identifier ) ( '=' ) (unnamed66= castedExpression ) ( ':' ) (unnamed67= expression ) | (unnamed68= castedExpression ) );", 50, 0, input);
+
+ throw nvae;
+ }
+ switch (alt50) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:2: ( 'let' ) (unnamed65= identifier ) ( '=' ) (unnamed66= castedExpression ) ( ':' ) (unnamed67= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:2: ( 'let' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:3: 'let'
+ {
+ match(input,72,FOLLOW_72_in_letExpression1993); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:46: (unnamed65= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:47: unnamed65= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_letExpression2001);
+ unnamed65=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed65);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:103: ( '=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:104: '='
+ {
+ match(input,73,FOLLOW_73_in_letExpression2007); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:145: (unnamed66= castedExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:146: unnamed66= castedExpression
+ {
+ pushFollow(FOLLOW_castedExpression_in_letExpression2015);
+ unnamed66=castedExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed66);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:208: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:209: ':'
+ {
+ match(input,61,FOLLOW_61_in_letExpression2021); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:250: (unnamed67= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:169:251: unnamed67= expression
+ {
+ pushFollow(FOLLOW_expression_in_letExpression2029);
+ unnamed67=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed67);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:170:4: (unnamed68= castedExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:170:4: (unnamed68= castedExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:170:5: unnamed68= castedExpression
+ {
+ pushFollow(FOLLOW_castedExpression_in_letExpression2040);
+ unnamed68=castedExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed68);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end letExpression
+
+
+ // $ANTLR start castedExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:172:1: castedExpression returns [CompositeNode cn] : ( ( '(' type ')' chainExpression )=> ( ( '(' ) (unnamed69= type ) ( ')' ) (unnamed70= chainExpression ) ) | (unnamed71= chainExpression ) );
+ public CompositeNode castedExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed69 = null;
+
+ CompositeNode unnamed70 = null;
+
+ CompositeNode unnamed71 = null;
+
+
+ cn = factory.createCastedExpressionNode(); cn.setRule("castedExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:2: ( ( '(' type ')' chainExpression )=> ( ( '(' ) (unnamed69= type ) ( ')' ) (unnamed70= chainExpression ) ) | (unnamed71= chainExpression ) )
+ int alt51=2;
+ alt51 = dfa51.predict(input);
+ switch (alt51) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:2: ( '(' type ')' chainExpression )=> ( ( '(' ) (unnamed69= type ) ( ')' ) (unnamed70= chainExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:34: ( ( '(' ) (unnamed69= type ) ( ')' ) (unnamed70= chainExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:35: ( '(' ) (unnamed69= type ) ( ')' ) (unnamed70= chainExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:35: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:36: '('
+ {
+ match(input,31,FOLLOW_31_in_castedExpression2079); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:77: (unnamed69= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:78: unnamed69= type
+ {
+ pushFollow(FOLLOW_type_in_castedExpression2087);
+ unnamed69=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed69);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:128: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:129: ')'
+ {
+ match(input,34,FOLLOW_34_in_castedExpression2093); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:170: (unnamed70= chainExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:171: unnamed70= chainExpression
+ {
+ pushFollow(FOLLOW_chainExpression_in_castedExpression2101);
+ unnamed70=chainExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed70);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:176:4: (unnamed71= chainExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:176:4: (unnamed71= chainExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:176:5: unnamed71= chainExpression
+ {
+ pushFollow(FOLLOW_chainExpression_in_castedExpression2113);
+ unnamed71=chainExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed71);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end castedExpression
+
+
+ // $ANTLR start chainExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:178:1: chainExpression returns [CompositeNode cn] : (unnamed72= ifExpression ) ( ( ( '->' ) (unnamed73= ifExpression ) ) )* ;
+ public CompositeNode chainExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed72 = null;
+
+ CompositeNode unnamed73 = null;
+
+
+ cn = factory.createChainExpressionNode(); cn.setRule("chainExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:2: ( (unnamed72= ifExpression ) ( ( ( '->' ) (unnamed73= ifExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:2: (unnamed72= ifExpression ) ( ( ( '->' ) (unnamed73= ifExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:2: (unnamed72= ifExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:3: unnamed72= ifExpression
+ {
+ pushFollow(FOLLOW_ifExpression_in_chainExpression2143);
+ unnamed72=ifExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed72);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:61: ( ( ( '->' ) (unnamed73= ifExpression ) ) )*
+ loop52:
+ do {
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+
+ if ( (LA52_0==74) ) {
+ alt52=1;
+ }
+
+
+ switch (alt52) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:62: ( ( '->' ) (unnamed73= ifExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:62: ( ( '->' ) (unnamed73= ifExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:63: ( '->' ) (unnamed73= ifExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:63: ( '->' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:64: '->'
+ {
+ match(input,74,FOLLOW_74_in_chainExpression2151); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:106: (unnamed73= ifExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:181:107: unnamed73= ifExpression
+ {
+ pushFollow(FOLLOW_ifExpression_in_chainExpression2159);
+ unnamed73=ifExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed73);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop52;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end chainExpression
+
+
+ // $ANTLR start ifExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:183:1: ifExpression returns [CompositeNode cn] : ( (unnamed74= switchExpression ) ( ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) ) )? | ( 'if' ) (unnamed77= expression ) ( 'then' ) (unnamed78= switchExpression ) ( ( ( 'else' ) (unnamed79= switchExpression ) ) )? );
+ public CompositeNode ifExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed74 = null;
+
+ CompositeNode unnamed75 = null;
+
+ CompositeNode unnamed76 = null;
+
+ CompositeNode unnamed77 = null;
+
+ CompositeNode unnamed78 = null;
+
+ CompositeNode unnamed79 = null;
+
+
+ cn = factory.createIfExpressionNode(); cn.setRule("ifExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:2: ( (unnamed74= switchExpression ) ( ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) ) )? | ( 'if' ) (unnamed77= expression ) ( 'then' ) (unnamed78= switchExpression ) ( ( ( 'else' ) (unnamed79= switchExpression ) ) )? )
+ int alt55=2;
+ int LA55_0 = input.LA(1);
+
+ if ( ((LA55_0>=StringLiteral && LA55_0<=Identifier)||LA55_0==31||LA55_0==36||(LA55_0>=69 && LA55_0<=71)||(LA55_0>=78 && LA55_0<=79)||(LA55_0>=94 && LA55_0<=108)) ) {
+ alt55=1;
+ }
+ else if ( (LA55_0==59) ) {
+ alt55=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("183:1: ifExpression returns [CompositeNode cn] : ( (unnamed74= switchExpression ) ( ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) ) )? | ( 'if' ) (unnamed77= expression ) ( 'then' ) (unnamed78= switchExpression ) ( ( ( 'else' ) (unnamed79= switchExpression ) ) )? );", 55, 0, input);
+
+ throw nvae;
+ }
+ switch (alt55) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:2: (unnamed74= switchExpression ) ( ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:2: (unnamed74= switchExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:3: unnamed74= switchExpression
+ {
+ pushFollow(FOLLOW_switchExpression_in_ifExpression2192);
+ unnamed74=switchExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed74);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:65: ( ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) ) )?
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+
+ if ( (LA53_0==75) ) {
+ alt53=1;
+ }
+ switch (alt53) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:66: ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:66: ( ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:67: ( '?' ) (unnamed75= expression ) ( ':' ) (unnamed76= switchExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:67: ( '?' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:68: '?'
+ {
+ match(input,75,FOLLOW_75_in_ifExpression2200); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:109: (unnamed75= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:110: unnamed75= expression
+ {
+ pushFollow(FOLLOW_expression_in_ifExpression2208);
+ unnamed75=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed75);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:166: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:167: ':'
+ {
+ match(input,61,FOLLOW_61_in_ifExpression2214); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:208: (unnamed76= switchExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:186:209: unnamed76= switchExpression
+ {
+ pushFollow(FOLLOW_switchExpression_in_ifExpression2222);
+ unnamed76=switchExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed76);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:4: ( 'if' ) (unnamed77= expression ) ( 'then' ) (unnamed78= switchExpression ) ( ( ( 'else' ) (unnamed79= switchExpression ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:4: ( 'if' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:5: 'if'
+ {
+ match(input,59,FOLLOW_59_in_ifExpression2234); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:47: (unnamed77= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:48: unnamed77= expression
+ {
+ pushFollow(FOLLOW_expression_in_ifExpression2242);
+ unnamed77=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed77);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:104: ( 'then' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:105: 'then'
+ {
+ match(input,76,FOLLOW_76_in_ifExpression2248); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:149: (unnamed78= switchExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:150: unnamed78= switchExpression
+ {
+ pushFollow(FOLLOW_switchExpression_in_ifExpression2256);
+ unnamed78=switchExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed78);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:212: ( ( ( 'else' ) (unnamed79= switchExpression ) ) )?
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+
+ if ( (LA54_0==77) ) {
+ alt54=1;
+ }
+ switch (alt54) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:213: ( ( 'else' ) (unnamed79= switchExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:213: ( ( 'else' ) (unnamed79= switchExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:214: ( 'else' ) (unnamed79= switchExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:214: ( 'else' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:215: 'else'
+ {
+ match(input,77,FOLLOW_77_in_ifExpression2264); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:259: (unnamed79= switchExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:187:260: unnamed79= switchExpression
+ {
+ pushFollow(FOLLOW_switchExpression_in_ifExpression2272);
+ unnamed79=switchExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed79);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end ifExpression
+
+
+ // $ANTLR start switchExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:189:1: switchExpression returns [CompositeNode cn] : ( ( 'switch' ) ( ( ( '(' ) (unnamed80= orExpression ) ( ')' ) ) )? ( '{' ) (unnamed81= casePart )* ( 'default' ) ( ':' ) (unnamed82= orExpression ) ( '}' ) | (unnamed83= orExpression ) );
+ public CompositeNode switchExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed80 = null;
+
+ CompositeNode unnamed81 = null;
+
+ CompositeNode unnamed82 = null;
+
+ CompositeNode unnamed83 = null;
+
+
+ cn = factory.createSwitchExpressionNode(); cn.setRule("switchExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:2: ( ( 'switch' ) ( ( ( '(' ) (unnamed80= orExpression ) ( ')' ) ) )? ( '{' ) (unnamed81= casePart )* ( 'default' ) ( ':' ) (unnamed82= orExpression ) ( '}' ) | (unnamed83= orExpression ) )
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==78) ) {
+ alt58=1;
+ }
+ else if ( ((LA58_0>=StringLiteral && LA58_0<=Identifier)||LA58_0==31||LA58_0==36||(LA58_0>=69 && LA58_0<=71)||LA58_0==79||(LA58_0>=94 && LA58_0<=108)) ) {
+ alt58=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("189:1: switchExpression returns [CompositeNode cn] : ( ( 'switch' ) ( ( ( '(' ) (unnamed80= orExpression ) ( ')' ) ) )? ( '{' ) (unnamed81= casePart )* ( 'default' ) ( ':' ) (unnamed82= orExpression ) ( '}' ) | (unnamed83= orExpression ) );", 58, 0, input);
+
+ throw nvae;
+ }
+ switch (alt58) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:2: ( 'switch' ) ( ( ( '(' ) (unnamed80= orExpression ) ( ')' ) ) )? ( '{' ) (unnamed81= casePart )* ( 'default' ) ( ':' ) (unnamed82= orExpression ) ( '}' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:2: ( 'switch' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:3: 'switch'
+ {
+ match(input,78,FOLLOW_78_in_switchExpression2303); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:49: ( ( ( '(' ) (unnamed80= orExpression ) ( ')' ) ) )?
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+
+ if ( (LA56_0==31) ) {
+ alt56=1;
+ }
+ switch (alt56) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:50: ( ( '(' ) (unnamed80= orExpression ) ( ')' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:50: ( ( '(' ) (unnamed80= orExpression ) ( ')' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:51: ( '(' ) (unnamed80= orExpression ) ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:51: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:52: '('
+ {
+ match(input,31,FOLLOW_31_in_switchExpression2311); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:93: (unnamed80= orExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:94: unnamed80= orExpression
+ {
+ pushFollow(FOLLOW_orExpression_in_switchExpression2319);
+ unnamed80=orExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed80);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:152: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:153: ')'
+ {
+ match(input,34,FOLLOW_34_in_switchExpression2325); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:197: ( '{' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:198: '{'
+ {
+ match(input,79,FOLLOW_79_in_switchExpression2334); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:239: (unnamed81= casePart )*
+ loop57:
+ do {
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+
+ if ( (LA57_0==82) ) {
+ alt57=1;
+ }
+
+
+ switch (alt57) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:240: unnamed81= casePart
+ {
+ pushFollow(FOLLOW_casePart_in_switchExpression2342);
+ unnamed81=casePart();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed81);
+ }
+
+ }
+ break;
+
+ default :
+ break loop57;
+ }
+ } while (true);
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:295: ( 'default' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:296: 'default'
+ {
+ match(input,80,FOLLOW_80_in_switchExpression2349); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:343: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:344: ':'
+ {
+ match(input,61,FOLLOW_61_in_switchExpression2355); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:385: (unnamed82= orExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:386: unnamed82= orExpression
+ {
+ pushFollow(FOLLOW_orExpression_in_switchExpression2363);
+ unnamed82=orExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed82);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:444: ( '}' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:192:445: '}'
+ {
+ match(input,81,FOLLOW_81_in_switchExpression2369); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:193:4: (unnamed83= orExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:193:4: (unnamed83= orExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:193:5: unnamed83= orExpression
+ {
+ pushFollow(FOLLOW_orExpression_in_switchExpression2380);
+ unnamed83=orExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed83);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end switchExpression
+
+
+ // $ANTLR start casePart
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:195:1: casePart returns [CompositeNode cn] : ( 'case' ) (unnamed84= expression ) ( ':' ) (unnamed85= expression ) ;
+ public CompositeNode casePart() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed84 = null;
+
+ CompositeNode unnamed85 = null;
+
+
+ cn = factory.createCasePartNode(); cn.setRule("casePart");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:2: ( ( 'case' ) (unnamed84= expression ) ( ':' ) (unnamed85= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:2: ( 'case' ) (unnamed84= expression ) ( ':' ) (unnamed85= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:2: ( 'case' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:3: 'case'
+ {
+ match(input,82,FOLLOW_82_in_casePart2403); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:47: (unnamed84= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:48: unnamed84= expression
+ {
+ pushFollow(FOLLOW_expression_in_casePart2411);
+ unnamed84=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed84);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:104: ( ':' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:105: ':'
+ {
+ match(input,61,FOLLOW_61_in_casePart2417); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:146: (unnamed85= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:197:147: unnamed85= expression
+ {
+ pushFollow(FOLLOW_expression_in_casePart2425);
+ unnamed85=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed85);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end casePart
+
+
+ // $ANTLR start orExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:199:1: orExpression returns [CompositeNode cn] : (unnamed86= andExpression ) ( ( ( '||' ) (unnamed87= andExpression ) ) )* ;
+ public CompositeNode orExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed86 = null;
+
+ CompositeNode unnamed87 = null;
+
+
+ cn = factory.createOrExpressionNode(); cn.setRule("orExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:2: ( (unnamed86= andExpression ) ( ( ( '||' ) (unnamed87= andExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:2: (unnamed86= andExpression ) ( ( ( '||' ) (unnamed87= andExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:2: (unnamed86= andExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:3: unnamed86= andExpression
+ {
+ pushFollow(FOLLOW_andExpression_in_orExpression2455);
+ unnamed86=andExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed86);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:62: ( ( ( '||' ) (unnamed87= andExpression ) ) )*
+ loop59:
+ do {
+ int alt59=2;
+ int LA59_0 = input.LA(1);
+
+ if ( (LA59_0==83) ) {
+ alt59=1;
+ }
+
+
+ switch (alt59) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:63: ( ( '||' ) (unnamed87= andExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:63: ( ( '||' ) (unnamed87= andExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:64: ( '||' ) (unnamed87= andExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:64: ( '||' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:65: '||'
+ {
+ match(input,83,FOLLOW_83_in_orExpression2463); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:107: (unnamed87= andExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:202:108: unnamed87= andExpression
+ {
+ pushFollow(FOLLOW_andExpression_in_orExpression2471);
+ unnamed87=andExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed87);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop59;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end orExpression
+
+
+ // $ANTLR start andExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:204:1: andExpression returns [CompositeNode cn] : (unnamed88= impliesExpression ) ( ( ( '&&' ) (unnamed89= impliesExpression ) ) )* ;
+ public CompositeNode andExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed88 = null;
+
+ CompositeNode unnamed89 = null;
+
+
+ cn = factory.createAndExpressionNode(); cn.setRule("andExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:2: ( (unnamed88= impliesExpression ) ( ( ( '&&' ) (unnamed89= impliesExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:2: (unnamed88= impliesExpression ) ( ( ( '&&' ) (unnamed89= impliesExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:2: (unnamed88= impliesExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:3: unnamed88= impliesExpression
+ {
+ pushFollow(FOLLOW_impliesExpression_in_andExpression2504);
+ unnamed88=impliesExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed88);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:66: ( ( ( '&&' ) (unnamed89= impliesExpression ) ) )*
+ loop60:
+ do {
+ int alt60=2;
+ int LA60_0 = input.LA(1);
+
+ if ( (LA60_0==84) ) {
+ alt60=1;
+ }
+
+
+ switch (alt60) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:67: ( ( '&&' ) (unnamed89= impliesExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:67: ( ( '&&' ) (unnamed89= impliesExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:68: ( '&&' ) (unnamed89= impliesExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:68: ( '&&' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:69: '&&'
+ {
+ match(input,84,FOLLOW_84_in_andExpression2512); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:111: (unnamed89= impliesExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:207:112: unnamed89= impliesExpression
+ {
+ pushFollow(FOLLOW_impliesExpression_in_andExpression2520);
+ unnamed89=impliesExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed89);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop60;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end andExpression
+
+
+ // $ANTLR start impliesExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:209:1: impliesExpression returns [CompositeNode cn] : (unnamed90= relationalExpression ) ( ( ( 'implies' ) (unnamed91= relationalExpression ) ) )* ;
+ public CompositeNode impliesExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed90 = null;
+
+ CompositeNode unnamed91 = null;
+
+
+ cn = factory.createImpliesExpressionNode(); cn.setRule("impliesExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:2: ( (unnamed90= relationalExpression ) ( ( ( 'implies' ) (unnamed91= relationalExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:2: (unnamed90= relationalExpression ) ( ( ( 'implies' ) (unnamed91= relationalExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:2: (unnamed90= relationalExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:3: unnamed90= relationalExpression
+ {
+ pushFollow(FOLLOW_relationalExpression_in_impliesExpression2553);
+ unnamed90=relationalExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed90);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:69: ( ( ( 'implies' ) (unnamed91= relationalExpression ) ) )*
+ loop61:
+ do {
+ int alt61=2;
+ int LA61_0 = input.LA(1);
+
+ if ( (LA61_0==85) ) {
+ alt61=1;
+ }
+
+
+ switch (alt61) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:70: ( ( 'implies' ) (unnamed91= relationalExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:70: ( ( 'implies' ) (unnamed91= relationalExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:71: ( 'implies' ) (unnamed91= relationalExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:71: ( 'implies' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:72: 'implies'
+ {
+ match(input,85,FOLLOW_85_in_impliesExpression2561); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:119: (unnamed91= relationalExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:212:120: unnamed91= relationalExpression
+ {
+ pushFollow(FOLLOW_relationalExpression_in_impliesExpression2569);
+ unnamed91=relationalExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed91);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop61;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end impliesExpression
+
+
+ // $ANTLR start relationalExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:214:1: relationalExpression returns [CompositeNode cn] : (unnamed92= additiveExpression ) ( ( ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression ) ) )* ;
+ public CompositeNode relationalExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed92 = null;
+
+ CompositeNode unnamed93 = null;
+
+
+ cn = factory.createRelationalExpressionNode(); cn.setRule("relationalExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:2: ( (unnamed92= additiveExpression ) ( ( ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:2: (unnamed92= additiveExpression ) ( ( ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:2: (unnamed92= additiveExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:3: unnamed92= additiveExpression
+ {
+ pushFollow(FOLLOW_additiveExpression_in_relationalExpression2602);
+ unnamed92=additiveExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed92);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:67: ( ( ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression ) ) )*
+ loop63:
+ do {
+ int alt63=2;
+ int LA63_0 = input.LA(1);
+
+ if ( ((LA63_0>=86 && LA63_0<=91)) ) {
+ alt63=1;
+ }
+
+
+ switch (alt63) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:68: ( ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:68: ( ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:69: ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) ) (unnamed93= additiveExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:69: ( ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:70: ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:70: ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) )
+ int alt62=6;
+ switch ( input.LA(1) ) {
+ case 86:
+ {
+ alt62=1;
+ }
+ break;
+ case 87:
+ {
+ alt62=2;
+ }
+ break;
+ case 88:
+ {
+ alt62=3;
+ }
+ break;
+ case 89:
+ {
+ alt62=4;
+ }
+ break;
+ case 90:
+ {
+ alt62=5;
+ }
+ break;
+ case 91:
+ {
+ alt62=6;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("217:70: ( ( '==' ) | ( '!=' ) | ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) )", 62, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt62) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:71: ( '==' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:71: ( '==' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:217:72: '=='
+ {
+ match(input,86,FOLLOW_86_in_relationalExpression2612); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:218:4: ( '!=' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:218:4: ( '!=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:218:5: '!='
+ {
+ match(input,87,FOLLOW_87_in_relationalExpression2621); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:219:4: ( '>=' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:219:4: ( '>=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:219:5: '>='
+ {
+ match(input,88,FOLLOW_88_in_relationalExpression2630); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:220:4: ( '<=' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:220:4: ( '<=' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:220:5: '<='
+ {
+ match(input,89,FOLLOW_89_in_relationalExpression2639); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:221:4: ( '>' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:221:4: ( '>' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:221:5: '>'
+ {
+ match(input,90,FOLLOW_90_in_relationalExpression2648); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:222:4: ( '<' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:222:4: ( '<' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:222:5: '<'
+ {
+ match(input,91,FOLLOW_91_in_relationalExpression2657); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:222:48: (unnamed93= additiveExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:222:49: unnamed93= additiveExpression
+ {
+ pushFollow(FOLLOW_additiveExpression_in_relationalExpression2667);
+ unnamed93=additiveExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed93);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop63;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end relationalExpression
+
+
+ // $ANTLR start additiveExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:224:1: additiveExpression returns [CompositeNode cn] : (unnamed94= multiplicativeExpression ) ( ( ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression ) ) )* ;
+ public CompositeNode additiveExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed94 = null;
+
+ CompositeNode unnamed95 = null;
+
+
+ cn = factory.createAdditiveExpressionNode(); cn.setRule("additiveExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:2: ( (unnamed94= multiplicativeExpression ) ( ( ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:2: (unnamed94= multiplicativeExpression ) ( ( ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:2: (unnamed94= multiplicativeExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:3: unnamed94= multiplicativeExpression
+ {
+ pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression2700);
+ unnamed94=multiplicativeExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed94);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:73: ( ( ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression ) ) )*
+ loop65:
+ do {
+ int alt65=2;
+ int LA65_0 = input.LA(1);
+
+ if ( (LA65_0==36) ) {
+ int LA65_2 = input.LA(2);
+
+ if ( ((LA65_2>=StringLiteral && LA65_2<=Identifier)||LA65_2==31||LA65_2==36||(LA65_2>=69 && LA65_2<=71)||LA65_2==79||(LA65_2>=94 && LA65_2<=108)) ) {
+ alt65=1;
+ }
+
+
+ }
+ else if ( (LA65_0==92) ) {
+ alt65=1;
+ }
+
+
+ switch (alt65) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:74: ( ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:74: ( ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:75: ( ( ( '+' ) | ( '-' ) ) ) (unnamed95= multiplicativeExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:75: ( ( ( '+' ) | ( '-' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:76: ( ( '+' ) | ( '-' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:76: ( ( '+' ) | ( '-' ) )
+ int alt64=2;
+ int LA64_0 = input.LA(1);
+
+ if ( (LA64_0==92) ) {
+ alt64=1;
+ }
+ else if ( (LA64_0==36) ) {
+ alt64=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("227:76: ( ( '+' ) | ( '-' ) )", 64, 0, input);
+
+ throw nvae;
+ }
+ switch (alt64) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:77: ( '+' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:77: ( '+' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:227:78: '+'
+ {
+ match(input,92,FOLLOW_92_in_additiveExpression2710); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:228:4: ( '-' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:228:4: ( '-' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:228:5: '-'
+ {
+ match(input,36,FOLLOW_36_in_additiveExpression2719); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:228:48: (unnamed95= multiplicativeExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:228:49: unnamed95= multiplicativeExpression
+ {
+ pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression2729);
+ unnamed95=multiplicativeExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed95);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop65;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end additiveExpression
+
+
+ // $ANTLR start multiplicativeExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:230:1: multiplicativeExpression returns [CompositeNode cn] : (unnamed96= unaryExpression ) ( ( ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression ) ) )* ;
+ public CompositeNode multiplicativeExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed96 = null;
+
+ CompositeNode unnamed97 = null;
+
+
+ cn = factory.createMultiplicativeExpressionNode(); cn.setRule("multiplicativeExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:2: ( (unnamed96= unaryExpression ) ( ( ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:2: (unnamed96= unaryExpression ) ( ( ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:2: (unnamed96= unaryExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:3: unnamed96= unaryExpression
+ {
+ pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression2762);
+ unnamed96=unaryExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed96);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:64: ( ( ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression ) ) )*
+ loop67:
+ do {
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+
+ if ( (LA67_0==33||LA67_0==93) ) {
+ alt67=1;
+ }
+
+
+ switch (alt67) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:65: ( ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:65: ( ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:66: ( ( ( '*' ) | ( '/' ) ) ) (unnamed97= unaryExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:66: ( ( ( '*' ) | ( '/' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:67: ( ( '*' ) | ( '/' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:67: ( ( '*' ) | ( '/' ) )
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+
+ if ( (LA66_0==33) ) {
+ alt66=1;
+ }
+ else if ( (LA66_0==93) ) {
+ alt66=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("233:67: ( ( '*' ) | ( '/' ) )", 66, 0, input);
+
+ throw nvae;
+ }
+ switch (alt66) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:68: ( '*' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:68: ( '*' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:233:69: '*'
+ {
+ match(input,33,FOLLOW_33_in_multiplicativeExpression2772); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:234:4: ( '/' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:234:4: ( '/' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:234:5: '/'
+ {
+ match(input,93,FOLLOW_93_in_multiplicativeExpression2781); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:234:48: (unnamed97= unaryExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:234:49: unnamed97= unaryExpression
+ {
+ pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression2791);
+ unnamed97=unaryExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed97);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop67;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end multiplicativeExpression
+
+
+ // $ANTLR start unaryExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:236:1: unaryExpression returns [CompositeNode cn] : ( (unnamed98= infixExpression ) | ( '!' ) (unnamed99= infixExpression ) | ( '-' ) (unnamed100= infixExpression ) );
+ public CompositeNode unaryExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed98 = null;
+
+ CompositeNode unnamed99 = null;
+
+ CompositeNode unnamed100 = null;
+
+
+ cn = factory.createUnaryExpressionNode(); cn.setRule("unaryExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:239:2: ( (unnamed98= infixExpression ) | ( '!' ) (unnamed99= infixExpression ) | ( '-' ) (unnamed100= infixExpression ) )
+ int alt68=3;
+ switch ( input.LA(1) ) {
+ case StringLiteral:
+ case IntLiteral:
+ case Identifier:
+ case 31:
+ case 69:
+ case 70:
+ case 71:
+ case 79:
+ case 95:
+ case 96:
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ {
+ alt68=1;
+ }
+ break;
+ case 94:
+ {
+ alt68=2;
+ }
+ break;
+ case 36:
+ {
+ alt68=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("236:1: unaryExpression returns [CompositeNode cn] : ( (unnamed98= infixExpression ) | ( '!' ) (unnamed99= infixExpression ) | ( '-' ) (unnamed100= infixExpression ) );", 68, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt68) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:239:2: (unnamed98= infixExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:239:2: (unnamed98= infixExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:239:3: unnamed98= infixExpression
+ {
+ pushFollow(FOLLOW_infixExpression_in_unaryExpression2824);
+ unnamed98=infixExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed98);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:240:4: ( '!' ) (unnamed99= infixExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:240:4: ( '!' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:240:5: '!'
+ {
+ match(input,94,FOLLOW_94_in_unaryExpression2833); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:240:46: (unnamed99= infixExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:240:47: unnamed99= infixExpression
+ {
+ pushFollow(FOLLOW_infixExpression_in_unaryExpression2841);
+ unnamed99=infixExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed99);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:241:4: ( '-' ) (unnamed100= infixExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:241:4: ( '-' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:241:5: '-'
+ {
+ match(input,36,FOLLOW_36_in_unaryExpression2850); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:241:46: (unnamed100= infixExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:241:47: unnamed100= infixExpression
+ {
+ pushFollow(FOLLOW_infixExpression_in_unaryExpression2858);
+ unnamed100=infixExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed100);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end unaryExpression
+
+
+ // $ANTLR start infixExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:243:1: infixExpression returns [CompositeNode cn] : (unnamed101= primaryExpression ) ( ( ( '.' ) (unnamed102= featureCall ) ) )* ;
+ public CompositeNode infixExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed101 = null;
+
+ CompositeNode unnamed102 = null;
+
+
+ cn = factory.createInfixExpressionNode(); cn.setRule("infixExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:2: ( (unnamed101= primaryExpression ) ( ( ( '.' ) (unnamed102= featureCall ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:2: (unnamed101= primaryExpression ) ( ( ( '.' ) (unnamed102= featureCall ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:2: (unnamed101= primaryExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:3: unnamed101= primaryExpression
+ {
+ pushFollow(FOLLOW_primaryExpression_in_infixExpression2888);
+ unnamed101=primaryExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed101);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:68: ( ( ( '.' ) (unnamed102= featureCall ) ) )*
+ loop69:
+ do {
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+
+ if ( (LA69_0==68) ) {
+ alt69=1;
+ }
+
+
+ switch (alt69) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:69: ( ( '.' ) (unnamed102= featureCall ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:69: ( ( '.' ) (unnamed102= featureCall ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:70: ( '.' ) (unnamed102= featureCall )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:70: ( '.' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:71: '.'
+ {
+ match(input,68,FOLLOW_68_in_infixExpression2896); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:112: (unnamed102= featureCall )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:246:113: unnamed102= featureCall
+ {
+ pushFollow(FOLLOW_featureCall_in_infixExpression2904);
+ unnamed102=featureCall();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed102);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop69;
+ }
+ } while (true);
+
+
+ }
+
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end infixExpression
+
+
+ // $ANTLR start primaryExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:248:1: primaryExpression returns [CompositeNode cn] : ( ( stringLiteral ) | ( featureCall ) | ( booleanLiteral ) | ( numberLiteral ) | ( nullLiteral ) | ( listLiteral ) | ( constructorCall ) | ( globalVarExpression ) | ( paranthesizedExpression ) );
+ public CompositeNode primaryExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode stringLiteral15 = null;
+
+ CompositeNode featureCall16 = null;
+
+ CompositeNode booleanLiteral17 = null;
+
+ CompositeNode numberLiteral18 = null;
+
+ CompositeNode nullLiteral19 = null;
+
+ CompositeNode listLiteral20 = null;
+
+ CompositeNode constructorCall21 = null;
+
+ CompositeNode globalVarExpression22 = null;
+
+ CompositeNode paranthesizedExpression23 = null;
+
+
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:249:2: ( ( stringLiteral ) | ( featureCall ) | ( booleanLiteral ) | ( numberLiteral ) | ( nullLiteral ) | ( listLiteral ) | ( constructorCall ) | ( globalVarExpression ) | ( paranthesizedExpression ) )
+ int alt70=9;
+ switch ( input.LA(1) ) {
+ case StringLiteral:
+ {
+ alt70=1;
+ }
+ break;
+ case Identifier:
+ case 69:
+ case 70:
+ case 71:
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ {
+ alt70=2;
+ }
+ break;
+ case 97:
+ case 98:
+ {
+ alt70=3;
+ }
+ break;
+ case IntLiteral:
+ {
+ alt70=4;
+ }
+ break;
+ case 99:
+ {
+ alt70=5;
+ }
+ break;
+ case 79:
+ {
+ alt70=6;
+ }
+ break;
+ case 96:
+ {
+ alt70=7;
+ }
+ break;
+ case 95:
+ {
+ alt70=8;
+ }
+ break;
+ case 31:
+ {
+ alt70=9;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("248:1: primaryExpression returns [CompositeNode cn] : ( ( stringLiteral ) | ( featureCall ) | ( booleanLiteral ) | ( numberLiteral ) | ( nullLiteral ) | ( listLiteral ) | ( constructorCall ) | ( globalVarExpression ) | ( paranthesizedExpression ) );", 70, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt70) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:249:2: ( stringLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:249:2: ( stringLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:249:3: stringLiteral
+ {
+ pushFollow(FOLLOW_stringLiteral_in_primaryExpression2925);
+ stringLiteral15=stringLiteral();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = stringLiteral15;
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:250:4: ( featureCall )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:250:4: ( featureCall )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:250:5: featureCall
+ {
+ pushFollow(FOLLOW_featureCall_in_primaryExpression2934);
+ featureCall16=featureCall();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = featureCall16;
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:251:4: ( booleanLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:251:4: ( booleanLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:251:5: booleanLiteral
+ {
+ pushFollow(FOLLOW_booleanLiteral_in_primaryExpression2943);
+ booleanLiteral17=booleanLiteral();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = booleanLiteral17;
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:252:4: ( numberLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:252:4: ( numberLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:252:5: numberLiteral
+ {
+ pushFollow(FOLLOW_numberLiteral_in_primaryExpression2952);
+ numberLiteral18=numberLiteral();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = numberLiteral18;
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:253:4: ( nullLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:253:4: ( nullLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:253:5: nullLiteral
+ {
+ pushFollow(FOLLOW_nullLiteral_in_primaryExpression2961);
+ nullLiteral19=nullLiteral();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = nullLiteral19;
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:254:4: ( listLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:254:4: ( listLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:254:5: listLiteral
+ {
+ pushFollow(FOLLOW_listLiteral_in_primaryExpression2970);
+ listLiteral20=listLiteral();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = listLiteral20;
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:255:4: ( constructorCall )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:255:4: ( constructorCall )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:255:5: constructorCall
+ {
+ pushFollow(FOLLOW_constructorCall_in_primaryExpression2979);
+ constructorCall21=constructorCall();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = constructorCall21;
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:256:4: ( globalVarExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:256:4: ( globalVarExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:256:5: globalVarExpression
+ {
+ pushFollow(FOLLOW_globalVarExpression_in_primaryExpression2988);
+ globalVarExpression22=globalVarExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = globalVarExpression22;
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:257:4: ( paranthesizedExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:257:4: ( paranthesizedExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:257:5: paranthesizedExpression
+ {
+ pushFollow(FOLLOW_paranthesizedExpression_in_primaryExpression2997);
+ paranthesizedExpression23=paranthesizedExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = paranthesizedExpression23;
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end primaryExpression
+
+
+ // $ANTLR start stringLiteral
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:259:1: stringLiteral returns [CompositeNode cn] : ( StringLiteral ) ;
+ public CompositeNode stringLiteral() throws RecognitionException {
+ CompositeNode cn = null;
+
+ cn = factory.createStringLiteralNode(); cn.setRule("stringLiteral");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:261:2: ( ( StringLiteral ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:261:2: ( StringLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:261:2: ( StringLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:261:3: StringLiteral
+ {
+ match(input,StringLiteral,FOLLOW_StringLiteral_in_stringLiteral3020); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end stringLiteral
+
+
+ // $ANTLR start paranthesizedExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:263:1: paranthesizedExpression returns [CompositeNode cn] : ( '(' ) (unnamed103= expression ) ( ')' ) ;
+ public CompositeNode paranthesizedExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed103 = null;
+
+
+ cn = factory.createParanthesizedExpressionNode(); cn.setRule("paranthesizedExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:2: ( ( '(' ) (unnamed103= expression ) ( ')' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:2: ( '(' ) (unnamed103= expression ) ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:2: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:3: '('
+ {
+ match(input,31,FOLLOW_31_in_paranthesizedExpression3043); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:44: (unnamed103= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:45: unnamed103= expression
+ {
+ pushFollow(FOLLOW_expression_in_paranthesizedExpression3051);
+ unnamed103=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed103);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:103: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:265:104: ')'
+ {
+ match(input,34,FOLLOW_34_in_paranthesizedExpression3057); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end paranthesizedExpression
+
+
+ // $ANTLR start globalVarExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:267:1: globalVarExpression returns [CompositeNode cn] : ( 'GLOBALVAR' ) (unnamed104= identifier ) ;
+ public CompositeNode globalVarExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed104 = null;
+
+
+ cn = factory.createGlobalVarExpressionNode(); cn.setRule("globalVarExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:269:2: ( ( 'GLOBALVAR' ) (unnamed104= identifier ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:269:2: ( 'GLOBALVAR' ) (unnamed104= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:269:2: ( 'GLOBALVAR' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:269:3: 'GLOBALVAR'
+ {
+ match(input,95,FOLLOW_95_in_globalVarExpression3080); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:269:52: (unnamed104= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:269:53: unnamed104= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_globalVarExpression3088);
+ unnamed104=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed104);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end globalVarExpression
+
+
+ // $ANTLR start featureCall
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:271:1: featureCall returns [CompositeNode cn] : ( (unnamed105= identifier ) ( '(' ) ( ( (unnamed106= parameterList ) ) )? ( ')' ) | (unnamed107= type ) | (unnamed108= collectionExpression ) );
+ public CompositeNode featureCall() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed105 = null;
+
+ CompositeNode unnamed106 = null;
+
+ CompositeNode unnamed107 = null;
+
+ CompositeNode unnamed108 = null;
+
+
+ cn = factory.createFeatureCallNode(); cn.setRule("featureCall");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:2: ( (unnamed105= identifier ) ( '(' ) ( ( (unnamed106= parameterList ) ) )? ( ')' ) | (unnamed107= type ) | (unnamed108= collectionExpression ) )
+ int alt72=3;
+ switch ( input.LA(1) ) {
+ case Identifier:
+ {
+ int LA72_1 = input.LA(2);
+
+ if ( (LA72_1==EOF||LA72_1==TEXT||LA72_1==Identifier||LA72_1==28||(LA72_1>=32 && LA72_1<=34)||(LA72_1>=36 && LA72_1<=37)||LA72_1==40||LA72_1==43||(LA72_1>=54 && LA72_1<=56)||(LA72_1>=60 && LA72_1<=61)||LA72_1==63||LA72_1==68||(LA72_1>=74 && LA72_1<=77)||(LA72_1>=80 && LA72_1<=93)) ) {
+ alt72=2;
+ }
+ else if ( (LA72_1==31) ) {
+ alt72=1;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("271:1: featureCall returns [CompositeNode cn] : ( (unnamed105= identifier ) ( '(' ) ( ( (unnamed106= parameterList ) ) )? ( ')' ) | (unnamed107= type ) | (unnamed108= collectionExpression ) );", 72, 1, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 69:
+ case 70:
+ case 71:
+ {
+ alt72=2;
+ }
+ break;
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ {
+ alt72=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("271:1: featureCall returns [CompositeNode cn] : ( (unnamed105= identifier ) ( '(' ) ( ( (unnamed106= parameterList ) ) )? ( ')' ) | (unnamed107= type ) | (unnamed108= collectionExpression ) );", 72, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt72) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:2: (unnamed105= identifier ) ( '(' ) ( ( (unnamed106= parameterList ) ) )? ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:2: (unnamed105= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:3: unnamed105= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_featureCall3118);
+ unnamed105=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed105);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:61: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:62: '('
+ {
+ match(input,31,FOLLOW_31_in_featureCall3124); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:103: ( ( (unnamed106= parameterList ) ) )?
+ int alt71=2;
+ int LA71_0 = input.LA(1);
+
+ if ( ((LA71_0>=StringLiteral && LA71_0<=Identifier)||LA71_0==31||LA71_0==36||LA71_0==59||(LA71_0>=69 && LA71_0<=72)||(LA71_0>=78 && LA71_0<=79)||(LA71_0>=94 && LA71_0<=108)) ) {
+ alt71=1;
+ }
+ switch (alt71) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:104: ( (unnamed106= parameterList ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:104: ( (unnamed106= parameterList ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:105: (unnamed106= parameterList )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:105: (unnamed106= parameterList )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:106: unnamed106= parameterList
+ {
+ pushFollow(FOLLOW_parameterList_in_featureCall3134);
+ unnamed106=parameterList();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed106);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:170: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:274:171: ')'
+ {
+ match(input,34,FOLLOW_34_in_featureCall3143); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:275:4: (unnamed107= type )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:275:4: (unnamed107= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:275:5: unnamed107= type
+ {
+ pushFollow(FOLLOW_type_in_featureCall3154);
+ unnamed107=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed107);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:276:4: (unnamed108= collectionExpression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:276:4: (unnamed108= collectionExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:276:5: unnamed108= collectionExpression
+ {
+ pushFollow(FOLLOW_collectionExpression_in_featureCall3165);
+ unnamed108=collectionExpression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed108);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ if ( backtracking==0 ) {
+ cn = normalize(cn);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end featureCall
+
+
+ // $ANTLR start listLiteral
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:278:1: listLiteral returns [CompositeNode cn] : ( '{' ) ( ( (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )* ) )? ( '}' ) ;
+ public CompositeNode listLiteral() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed109 = null;
+
+ CompositeNode unnamed110 = null;
+
+
+ cn = factory.createListLiteralNode(); cn.setRule("listLiteral");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:2: ( ( '{' ) ( ( (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )* ) )? ( '}' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:2: ( '{' ) ( ( (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )* ) )? ( '}' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:2: ( '{' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:3: '{'
+ {
+ match(input,79,FOLLOW_79_in_listLiteral3188); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:44: ( ( (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )* ) )?
+ int alt74=2;
+ int LA74_0 = input.LA(1);
+
+ if ( ((LA74_0>=StringLiteral && LA74_0<=Identifier)||LA74_0==31||LA74_0==36||LA74_0==59||(LA74_0>=69 && LA74_0<=72)||(LA74_0>=78 && LA74_0<=79)||(LA74_0>=94 && LA74_0<=108)) ) {
+ alt74=1;
+ }
+ switch (alt74) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:45: ( (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )* )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:45: ( (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:46: (unnamed109= expression ) ( ( ( ',' ) (unnamed110= expression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:46: (unnamed109= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:47: unnamed109= expression
+ {
+ pushFollow(FOLLOW_expression_in_listLiteral3198);
+ unnamed109=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed109);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:105: ( ( ( ',' ) (unnamed110= expression ) ) )*
+ loop73:
+ do {
+ int alt73=2;
+ int LA73_0 = input.LA(1);
+
+ if ( (LA73_0==32) ) {
+ alt73=1;
+ }
+
+
+ switch (alt73) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:106: ( ( ',' ) (unnamed110= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:106: ( ( ',' ) (unnamed110= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:107: ( ',' ) (unnamed110= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:107: ( ',' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:108: ','
+ {
+ match(input,32,FOLLOW_32_in_listLiteral3206); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:149: (unnamed110= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:150: unnamed110= expression
+ {
+ pushFollow(FOLLOW_expression_in_listLiteral3214);
+ unnamed110=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed110);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop73;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:214: ( '}' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:280:215: '}'
+ {
+ match(input,81,FOLLOW_81_in_listLiteral3226); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end listLiteral
+
+
+ // $ANTLR start constructorCall
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:282:1: constructorCall returns [CompositeNode cn] : ( 'new' ) (unnamed111= simpleType ) ;
+ public CompositeNode constructorCall() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed111 = null;
+
+
+ cn = factory.createConstructorCallNode(); cn.setRule("constructorCall");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:284:2: ( ( 'new' ) (unnamed111= simpleType ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:284:2: ( 'new' ) (unnamed111= simpleType )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:284:2: ( 'new' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:284:3: 'new'
+ {
+ match(input,96,FOLLOW_96_in_constructorCall3249); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:284:46: (unnamed111= simpleType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:284:47: unnamed111= simpleType
+ {
+ pushFollow(FOLLOW_simpleType_in_constructorCall3257);
+ unnamed111=simpleType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed111);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end constructorCall
+
+
+ // $ANTLR start booleanLiteral
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:286:1: booleanLiteral returns [CompositeNode cn] : ( ( 'false' ) | ( 'true' ) );
+ public CompositeNode booleanLiteral() throws RecognitionException {
+ CompositeNode cn = null;
+
+ cn = factory.createBooleanLiteralNode(); cn.setRule("booleanLiteral");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:288:2: ( ( 'false' ) | ( 'true' ) )
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+
+ if ( (LA75_0==97) ) {
+ alt75=1;
+ }
+ else if ( (LA75_0==98) ) {
+ alt75=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("286:1: booleanLiteral returns [CompositeNode cn] : ( ( 'false' ) | ( 'true' ) );", 75, 0, input);
+
+ throw nvae;
+ }
+ switch (alt75) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:288:2: ( 'false' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:288:2: ( 'false' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:288:3: 'false'
+ {
+ match(input,97,FOLLOW_97_in_booleanLiteral3280); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:289:4: ( 'true' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:289:4: ( 'true' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:289:5: 'true'
+ {
+ match(input,98,FOLLOW_98_in_booleanLiteral3289); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end booleanLiteral
+
+
+ // $ANTLR start nullLiteral
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:291:1: nullLiteral returns [CompositeNode cn] : ( 'null' ) ;
+ public CompositeNode nullLiteral() throws RecognitionException {
+ CompositeNode cn = null;
+
+ cn = factory.createNullLiteralNode(); cn.setRule("nullLiteral");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:293:2: ( ( 'null' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:293:2: ( 'null' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:293:2: ( 'null' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:293:3: 'null'
+ {
+ match(input,99,FOLLOW_99_in_nullLiteral3312); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end nullLiteral
+
+
+ // $ANTLR start numberLiteral
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:295:1: numberLiteral returns [CompositeNode cn] : ( ( IntLiteral ) | ( IntLiteral ) ( '.' ) ( IntLiteral ) );
+ public CompositeNode numberLiteral() throws RecognitionException {
+ CompositeNode cn = null;
+
+ cn = factory.createNumberLiteralNode(); cn.setRule("numberLiteral");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:297:2: ( ( IntLiteral ) | ( IntLiteral ) ( '.' ) ( IntLiteral ) )
+ int alt76=2;
+ int LA76_0 = input.LA(1);
+
+ if ( (LA76_0==IntLiteral) ) {
+ int LA76_1 = input.LA(2);
+
+ if ( (LA76_1==68) ) {
+ int LA76_2 = input.LA(3);
+
+ if ( (LA76_2==Identifier||(LA76_2>=69 && LA76_2<=71)||(LA76_2>=100 && LA76_2<=108)) ) {
+ alt76=1;
+ }
+ else if ( (LA76_2==IntLiteral) ) {
+ alt76=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("295:1: numberLiteral returns [CompositeNode cn] : ( ( IntLiteral ) | ( IntLiteral ) ( '.' ) ( IntLiteral ) );", 76, 2, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA76_1==EOF||LA76_1==TEXT||LA76_1==Identifier||LA76_1==28||(LA76_1>=32 && LA76_1<=34)||(LA76_1>=36 && LA76_1<=37)||LA76_1==40||LA76_1==43||(LA76_1>=54 && LA76_1<=56)||(LA76_1>=60 && LA76_1<=61)||(LA76_1>=74 && LA76_1<=77)||(LA76_1>=80 && LA76_1<=93)) ) {
+ alt76=1;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("295:1: numberLiteral returns [CompositeNode cn] : ( ( IntLiteral ) | ( IntLiteral ) ( '.' ) ( IntLiteral ) );", 76, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("295:1: numberLiteral returns [CompositeNode cn] : ( ( IntLiteral ) | ( IntLiteral ) ( '.' ) ( IntLiteral ) );", 76, 0, input);
+
+ throw nvae;
+ }
+ switch (alt76) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:297:2: ( IntLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:297:2: ( IntLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:297:3: IntLiteral
+ {
+ match(input,IntLiteral,FOLLOW_IntLiteral_in_numberLiteral3335); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:4: ( IntLiteral ) ( '.' ) ( IntLiteral )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:4: ( IntLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:5: IntLiteral
+ {
+ match(input,IntLiteral,FOLLOW_IntLiteral_in_numberLiteral3344); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:53: ( '.' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:54: '.'
+ {
+ match(input,68,FOLLOW_68_in_numberLiteral3350); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:95: ( IntLiteral )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:298:96: IntLiteral
+ {
+ match(input,IntLiteral,FOLLOW_IntLiteral_in_numberLiteral3356); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end numberLiteral
+
+
+ // $ANTLR start collectionExpression
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:300:1: collectionExpression returns [CompositeNode cn] : ( ( 'typeSelect' ) ( '(' ) (unnamed112= type ) ( ')' ) | ( ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) ) ) ( '(' ) ( ( (unnamed113= identifier ) ( '|' ) ) )? (unnamed114= expression ) ( ')' ) );
+ public CompositeNode collectionExpression() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed112 = null;
+
+ CompositeNode unnamed113 = null;
+
+ CompositeNode unnamed114 = null;
+
+
+ cn = factory.createCollectionExpressionNode(); cn.setRule("collectionExpression");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:2: ( ( 'typeSelect' ) ( '(' ) (unnamed112= type ) ( ')' ) | ( ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) ) ) ( '(' ) ( ( (unnamed113= identifier ) ( '|' ) ) )? (unnamed114= expression ) ( ')' ) )
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+
+ if ( (LA79_0==100) ) {
+ alt79=1;
+ }
+ else if ( ((LA79_0>=101 && LA79_0<=108)) ) {
+ alt79=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("300:1: collectionExpression returns [CompositeNode cn] : ( ( 'typeSelect' ) ( '(' ) (unnamed112= type ) ( ')' ) | ( ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) ) ) ( '(' ) ( ( (unnamed113= identifier ) ( '|' ) ) )? (unnamed114= expression ) ( ')' ) );", 79, 0, input);
+
+ throw nvae;
+ }
+ switch (alt79) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:2: ( 'typeSelect' ) ( '(' ) (unnamed112= type ) ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:2: ( 'typeSelect' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:3: 'typeSelect'
+ {
+ match(input,100,FOLLOW_100_in_collectionExpression3379); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:53: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:54: '('
+ {
+ match(input,31,FOLLOW_31_in_collectionExpression3385); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:95: (unnamed112= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:96: unnamed112= type
+ {
+ pushFollow(FOLLOW_type_in_collectionExpression3393);
+ unnamed112=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed112);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:148: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:302:149: ')'
+ {
+ match(input,34,FOLLOW_34_in_collectionExpression3399); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:4: ( ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) ) ) ( '(' ) ( ( (unnamed113= identifier ) ( '|' ) ) )? (unnamed114= expression ) ( ')' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:4: ( ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:5: ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:5: ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) )
+ int alt77=8;
+ switch ( input.LA(1) ) {
+ case 101:
+ {
+ alt77=1;
+ }
+ break;
+ case 102:
+ {
+ alt77=2;
+ }
+ break;
+ case 103:
+ {
+ alt77=3;
+ }
+ break;
+ case 104:
+ {
+ alt77=4;
+ }
+ break;
+ case 105:
+ {
+ alt77=5;
+ }
+ break;
+ case 106:
+ {
+ alt77=6;
+ }
+ break;
+ case 107:
+ {
+ alt77=7;
+ }
+ break;
+ case 108:
+ {
+ alt77=8;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("303:5: ( ( 'collect' ) | ( 'select' ) | ( 'selectFirst' ) | ( 'reject' ) | ( 'exists' ) | ( 'notExists' ) | ( 'sortBy' ) | ( 'forAll' ) )", 77, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt77) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:6: ( 'collect' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:6: ( 'collect' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:303:7: 'collect'
+ {
+ match(input,101,FOLLOW_101_in_collectionExpression3410); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:304:4: ( 'select' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:304:4: ( 'select' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:304:5: 'select'
+ {
+ match(input,102,FOLLOW_102_in_collectionExpression3419); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:305:4: ( 'selectFirst' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:305:4: ( 'selectFirst' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:305:5: 'selectFirst'
+ {
+ match(input,103,FOLLOW_103_in_collectionExpression3428); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:306:4: ( 'reject' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:306:4: ( 'reject' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:306:5: 'reject'
+ {
+ match(input,104,FOLLOW_104_in_collectionExpression3437); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:307:4: ( 'exists' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:307:4: ( 'exists' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:307:5: 'exists'
+ {
+ match(input,105,FOLLOW_105_in_collectionExpression3446); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:308:4: ( 'notExists' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:308:4: ( 'notExists' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:308:5: 'notExists'
+ {
+ match(input,106,FOLLOW_106_in_collectionExpression3455); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:309:4: ( 'sortBy' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:309:4: ( 'sortBy' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:309:5: 'sortBy'
+ {
+ match(input,107,FOLLOW_107_in_collectionExpression3464); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:4: ( 'forAll' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:4: ( 'forAll' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:5: 'forAll'
+ {
+ match(input,108,FOLLOW_108_in_collectionExpression3473); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:53: ( '(' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:54: '('
+ {
+ match(input,31,FOLLOW_31_in_collectionExpression3481); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:95: ( ( (unnamed113= identifier ) ( '|' ) ) )?
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+
+ if ( (LA78_0==Identifier) ) {
+ int LA78_1 = input.LA(2);
+
+ if ( (LA78_1==109) ) {
+ alt78=1;
+ }
+ }
+ switch (alt78) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:96: ( (unnamed113= identifier ) ( '|' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:96: ( (unnamed113= identifier ) ( '|' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:97: (unnamed113= identifier ) ( '|' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:97: (unnamed113= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:98: unnamed113= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_collectionExpression3491);
+ unnamed113=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed113);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:156: ( '|' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:157: '|'
+ {
+ match(input,109,FOLLOW_109_in_collectionExpression3497); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:201: (unnamed114= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:202: unnamed114= expression
+ {
+ pushFollow(FOLLOW_expression_in_collectionExpression3508);
+ unnamed114=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed114);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:260: ( ')' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:310:261: ')'
+ {
+ match(input,34,FOLLOW_34_in_collectionExpression3514); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end collectionExpression
+
+
+ // $ANTLR start declaredParameterList
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:312:1: declaredParameterList returns [CompositeNode cn] : (unnamed115= declaredParameter ) ( ( ( ',' ) (unnamed116= declaredParameter ) ) )* ;
+ public CompositeNode declaredParameterList() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed115 = null;
+
+ CompositeNode unnamed116 = null;
+
+
+ cn = factory.createDeclaredParameterListNode(); cn.setRule("declaredParameterList");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:2: ( (unnamed115= declaredParameter ) ( ( ( ',' ) (unnamed116= declaredParameter ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:2: (unnamed115= declaredParameter ) ( ( ( ',' ) (unnamed116= declaredParameter ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:2: (unnamed115= declaredParameter )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:3: unnamed115= declaredParameter
+ {
+ pushFollow(FOLLOW_declaredParameter_in_declaredParameterList3539);
+ unnamed115=declaredParameter();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed115);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:68: ( ( ( ',' ) (unnamed116= declaredParameter ) ) )*
+ loop80:
+ do {
+ int alt80=2;
+ int LA80_0 = input.LA(1);
+
+ if ( (LA80_0==32) ) {
+ int LA80_1 = input.LA(2);
+
+ if ( (LA80_1==Identifier||(LA80_1>=69 && LA80_1<=71)) ) {
+ alt80=1;
+ }
+
+
+ }
+
+
+ switch (alt80) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:69: ( ( ',' ) (unnamed116= declaredParameter ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:69: ( ( ',' ) (unnamed116= declaredParameter ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:70: ( ',' ) (unnamed116= declaredParameter )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:70: ( ',' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:71: ','
+ {
+ match(input,32,FOLLOW_32_in_declaredParameterList3547); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:112: (unnamed116= declaredParameter )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:314:113: unnamed116= declaredParameter
+ {
+ pushFollow(FOLLOW_declaredParameter_in_declaredParameterList3555);
+ unnamed116=declaredParameter();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed116);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop80;
+ }
+ } while (true);
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end declaredParameterList
+
+
+ // $ANTLR start declaredParameter
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:316:1: declaredParameter returns [CompositeNode cn] : (unnamed117= type ) (unnamed118= identifier ) ;
+ public CompositeNode declaredParameter() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed117 = null;
+
+ CompositeNode unnamed118 = null;
+
+
+ cn = factory.createDeclaredParameterNode(); cn.setRule("declaredParameter");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:318:2: ( (unnamed117= type ) (unnamed118= identifier ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:318:2: (unnamed117= type ) (unnamed118= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:318:2: (unnamed117= type )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:318:3: unnamed117= type
+ {
+ pushFollow(FOLLOW_type_in_declaredParameter3583);
+ unnamed117=type();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed117);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:318:55: (unnamed118= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:318:56: unnamed118= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_declaredParameter3591);
+ unnamed118=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed118);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end declaredParameter
+
+
+ // $ANTLR start parameterList
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:320:1: parameterList returns [CompositeNode cn] : (unnamed119= expression ) ( ( ( ',' ) (unnamed120= expression ) ) )* ;
+ public CompositeNode parameterList() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed119 = null;
+
+ CompositeNode unnamed120 = null;
+
+
+ cn = factory.createParameterListNode(); cn.setRule("parameterList");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:2: ( (unnamed119= expression ) ( ( ( ',' ) (unnamed120= expression ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:2: (unnamed119= expression ) ( ( ( ',' ) (unnamed120= expression ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:2: (unnamed119= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:3: unnamed119= expression
+ {
+ pushFollow(FOLLOW_expression_in_parameterList3616);
+ unnamed119=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed119);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:61: ( ( ( ',' ) (unnamed120= expression ) ) )*
+ loop81:
+ do {
+ int alt81=2;
+ int LA81_0 = input.LA(1);
+
+ if ( (LA81_0==32) ) {
+ alt81=1;
+ }
+
+
+ switch (alt81) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:62: ( ( ',' ) (unnamed120= expression ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:62: ( ( ',' ) (unnamed120= expression ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:63: ( ',' ) (unnamed120= expression )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:63: ( ',' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:64: ','
+ {
+ match(input,32,FOLLOW_32_in_parameterList3624); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:105: (unnamed120= expression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:322:106: unnamed120= expression
+ {
+ pushFollow(FOLLOW_expression_in_parameterList3632);
+ unnamed120=expression();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed120);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop81;
+ }
+ } while (true);
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end parameterList
+
+
+ // $ANTLR start type
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:324:1: type returns [CompositeNode cn] : ( ( collectionType ) | ( simpleType ) );
+ public CompositeNode type() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode collectionType24 = null;
+
+ CompositeNode simpleType25 = null;
+
+
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:325:2: ( ( collectionType ) | ( simpleType ) )
+ int alt82=2;
+ int LA82_0 = input.LA(1);
+
+ if ( ((LA82_0>=69 && LA82_0<=71)) ) {
+ alt82=1;
+ }
+ else if ( (LA82_0==Identifier) ) {
+ alt82=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("324:1: type returns [CompositeNode cn] : ( ( collectionType ) | ( simpleType ) );", 82, 0, input);
+
+ throw nvae;
+ }
+ switch (alt82) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:325:2: ( collectionType )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:325:2: ( collectionType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:325:3: collectionType
+ {
+ pushFollow(FOLLOW_collectionType_in_type3653);
+ collectionType24=collectionType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = collectionType24;
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:326:4: ( simpleType )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:326:4: ( simpleType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:326:5: simpleType
+ {
+ pushFollow(FOLLOW_simpleType_in_type3662);
+ simpleType25=simpleType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ cn = simpleType25;
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end type
+
+
+ // $ANTLR start collectionType
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:328:1: collectionType returns [CompositeNode cn] : ( ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ( ( ( '[' ) (unnamed121= simpleType ) ( ']' ) ) )? ;
+ public CompositeNode collectionType() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed121 = null;
+
+
+ cn = factory.createCollectionTypeNode(); cn.setRule("collectionType");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:2: ( ( ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ( ( ( '[' ) (unnamed121= simpleType ) ( ']' ) ) )? )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:2: ( ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) ) ( ( ( '[' ) (unnamed121= simpleType ) ( ']' ) ) )?
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:2: ( ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:3: ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:3: ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) )
+ int alt83=3;
+ switch ( input.LA(1) ) {
+ case 69:
+ {
+ alt83=1;
+ }
+ break;
+ case 70:
+ {
+ alt83=2;
+ }
+ break;
+ case 71:
+ {
+ alt83=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return cn;}
+ NoViableAltException nvae =
+ new NoViableAltException("330:3: ( ( 'Collection' ) | ( 'List' ) | ( 'Set' ) )", 83, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt83) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:4: ( 'Collection' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:4: ( 'Collection' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:330:5: 'Collection'
+ {
+ match(input,69,FOLLOW_69_in_collectionType3687); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:331:4: ( 'List' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:331:4: ( 'List' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:331:5: 'List'
+ {
+ match(input,70,FOLLOW_70_in_collectionType3696); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:4: ( 'Set' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:4: ( 'Set' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:5: 'Set'
+ {
+ match(input,71,FOLLOW_71_in_collectionType3705); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:50: ( ( ( '[' ) (unnamed121= simpleType ) ( ']' ) ) )?
+ int alt84=2;
+ int LA84_0 = input.LA(1);
+
+ if ( (LA84_0==110) ) {
+ alt84=1;
+ }
+ switch (alt84) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:51: ( ( '[' ) (unnamed121= simpleType ) ( ']' ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:51: ( ( '[' ) (unnamed121= simpleType ) ( ']' ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:52: ( '[' ) (unnamed121= simpleType ) ( ']' )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:52: ( '[' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:53: '['
+ {
+ match(input,110,FOLLOW_110_in_collectionType3715); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:94: (unnamed121= simpleType )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:95: unnamed121= simpleType
+ {
+ pushFollow(FOLLOW_simpleType_in_collectionType3723);
+ unnamed121=simpleType();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed121);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:153: ( ']' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:332:154: ']'
+ {
+ match(input,111,FOLLOW_111_in_collectionType3729); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end collectionType
+
+
+ // $ANTLR start simpleType
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:334:1: simpleType returns [CompositeNode cn] : (unnamed122= identifier ) ( ( ( '::' ) (unnamed123= identifier ) ) )* ;
+ public CompositeNode simpleType() throws RecognitionException {
+ CompositeNode cn = null;
+
+ CompositeNode unnamed122 = null;
+
+ CompositeNode unnamed123 = null;
+
+
+ cn = factory.createSimpleTypeNode(); cn.setRule("simpleType");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:2: ( (unnamed122= identifier ) ( ( ( '::' ) (unnamed123= identifier ) ) )* )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:2: (unnamed122= identifier ) ( ( ( '::' ) (unnamed123= identifier ) ) )*
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:2: (unnamed122= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:3: unnamed122= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_simpleType3757);
+ unnamed122=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed122);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:61: ( ( ( '::' ) (unnamed123= identifier ) ) )*
+ loop85:
+ do {
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+
+ if ( (LA85_0==63) ) {
+ alt85=1;
+ }
+
+
+ switch (alt85) {
+ case 1 :
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:62: ( ( '::' ) (unnamed123= identifier ) )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:62: ( ( '::' ) (unnamed123= identifier ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:63: ( '::' ) (unnamed123= identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:63: ( '::' )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:64: '::'
+ {
+ match(input,63,FOLLOW_63_in_simpleType3765); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:106: (unnamed123= identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:336:107: unnamed123= identifier
+ {
+ pushFollow(FOLLOW_identifier_in_simpleType3773);
+ unnamed123=identifier();
+ _fsp--;
+ if (failed) return cn;
+ if ( backtracking==0 ) {
+ addToChildren(cn, unnamed123);
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop85;
+ }
+ } while (true);
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end simpleType
+
+
+ // $ANTLR start identifier
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:338:1: identifier returns [CompositeNode cn] : ( Identifier ) ;
+ public CompositeNode identifier() throws RecognitionException {
+ CompositeNode cn = null;
+
+ cn = factory.createIdentifierNode(); cn.setRule("identifier");
+ try {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:340:2: ( ( Identifier ) )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:340:2: ( Identifier )
+ {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:340:2: ( Identifier )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:340:3: Identifier
+ {
+ match(input,Identifier,FOLLOW_Identifier_in_identifier3799); if (failed) return cn;
+ if ( backtracking==0 ) {
+ addLeafNodeForToken(cn, null);
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return cn;
+ }
+ // $ANTLR end identifier
+
+ // $ANTLR start synpred1
+ public void synpred1_fragment() throws RecognitionException {
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:2: ( '(' type ')' chainExpression )
+ // ./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g:175:3: '(' type ')' chainExpression
+ {
+ match(input,31,FOLLOW_31_in_synpred12068); if (failed) return ;
+ pushFollow(FOLLOW_type_in_synpred12070);
+ type();
+ _fsp--;
+ if (failed) return ;
+ match(input,34,FOLLOW_34_in_synpred12072); if (failed) return ;
+ pushFollow(FOLLOW_chainExpression_in_synpred12074);
+ chainExpression();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred1
+
+ public final boolean synpred1() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred1_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+
+
+ protected DFA51 dfa51 = new DFA51(this);
+ static final String DFA51_eotS =
+ "\101\uffff";
+ static final String DFA51_eofS =
+ "\10\uffff\1\2\70\uffff";
+ static final String DFA51_minS =
+ "\2\13\1\uffff\3\41\1\37\1\15\1\12\1\15\1\77\1\12\1\0\30\uffff\1"+
+ "\41\1\15\1\41\5\0\3\37\21\0";
+ static final String DFA51_maxS =
+ "\2\154\1\uffff\3\156\1\135\1\15\1\154\1\15\1\157\1\154\1\0\30\uffff"+
+ "\1\135\1\15\1\135\5\0\3\37\21\0";
+ static final String DFA51_acceptS =
+ "\2\uffff\1\2\12\uffff\30\1\34\uffff";
+ static final String DFA51_specialS =
+ "\10\uffff\1\1\3\uffff\1\6\33\uffff\1\3\1\5\1\2\1\0\1\4\24\uffff}>";
+ static final String[] DFA51_transitionS = {
+ "\3\2\21\uffff\1\1\4\uffff\1\2\26\uffff\1\2\11\uffff\3\2\6\uffff"+
+ "\2\2\16\uffff\17\2",
+ "\2\2\1\6\21\uffff\1\2\4\uffff\1\2\26\uffff\1\2\11\uffff\1\3"+
+ "\1\4\1\5\1\2\5\uffff\2\2\16\uffff\17\2",
+ "",
+ "\1\2\1\10\1\uffff\1\2\37\uffff\1\2\5\uffff\2\2\7\uffff\13\2"+
+ "\20\uffff\1\7",
+ "\1\2\1\10\1\uffff\1\2\37\uffff\1\2\5\uffff\2\2\7\uffff\13\2"+
+ "\20\uffff\1\7",
+ "\1\2\1\10\1\uffff\1\2\37\uffff\1\2\5\uffff\2\2\7\uffff\13\2"+
+ "\20\uffff\1\7",
+ "\1\2\1\uffff\1\2\1\10\1\uffff\1\2\32\uffff\1\11\4\uffff\1\2"+
+ "\5\uffff\2\2\7\uffff\13\2",
+ "\1\12",
+ "\1\2\1\16\1\35\1\14\16\uffff\1\2\2\uffff\1\42\3\2\1\uffff\1"+
+ "\13\1\2\2\uffff\1\2\2\uffff\1\2\12\uffff\3\2\2\uffff\1\44\2"+
+ "\2\6\uffff\1\2\1\17\1\20\1\21\2\uffff\3\2\1\uffff\1\15\1\37"+
+ "\16\2\1\43\1\41\1\40\1\33\1\34\1\36\1\22\1\23\1\24\1\25\1\26"+
+ "\1\27\1\30\1\31\1\32",
+ "\1\45",
+ "\1\46\57\uffff\1\47",
+ "\1\2\1\50\1\70\1\51\21\uffff\1\75\4\uffff\1\2\40\uffff\1\52"+
+ "\1\53\1\54\7\uffff\1\72\16\uffff\1\2\1\74\1\73\1\66\1\67\1\71"+
+ "\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\65",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\2\1\10\1\uffff\1\2\32\uffff\1\11\4\uffff\1\2\5\uffff\2\2"+
+ "\7\uffff\13\2",
+ "\1\76",
+ "\1\2\1\10\1\uffff\1\2\37\uffff\1\2\5\uffff\2\2\7\uffff\13\2",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\77",
+ "\1\100",
+ "\1\100",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff"
+ };
+
+ static final short[] DFA51_eot = DFA.unpackEncodedString(DFA51_eotS);
+ static final short[] DFA51_eof = DFA.unpackEncodedString(DFA51_eofS);
+ static final char[] DFA51_min = DFA.unpackEncodedStringToUnsignedChars(DFA51_minS);
+ static final char[] DFA51_max = DFA.unpackEncodedStringToUnsignedChars(DFA51_maxS);
+ static final short[] DFA51_accept = DFA.unpackEncodedString(DFA51_acceptS);
+ static final short[] DFA51_special = DFA.unpackEncodedString(DFA51_specialS);
+ static final short[][] DFA51_transition;
+
+ static {
+ int numStates = DFA51_transitionS.length;
+ DFA51_transition = new short[numStates][];
+ for (int i=0; i ( ( '(' ) (unnamed69= type ) ( ')' ) (unnamed70= chainExpression ) ) | (unnamed71= chainExpression ) );";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA51_43 = input.LA(1);
+
+
+ int index51_43 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred1()) ) {s = 36;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index51_43);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA51_8 = input.LA(1);
+
+
+ int index51_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA51_8==EOF||LA51_8==TEXT||LA51_8==28||(LA51_8>=32 && LA51_8<=34)||LA51_8==37||LA51_8==40||LA51_8==43||(LA51_8>=54 && LA51_8<=56)||(LA51_8>=60 && LA51_8<=61)||LA51_8==68||(LA51_8>=74 && LA51_8<=76)||(LA51_8>=80 && LA51_8<=93)) ) {s = 2;}
+
+ else if ( (LA51_8==36) ) {s = 11;}
+
+ else if ( (LA51_8==Identifier) ) {s = 12;}
+
+ else if ( (LA51_8==78) && (synpred1())) {s = 13;}
+
+ else if ( (LA51_8==StringLiteral) && (synpred1())) {s = 14;}
+
+ else if ( (LA51_8==69) && (synpred1())) {s = 15;}
+
+ else if ( (LA51_8==70) && (synpred1())) {s = 16;}
+
+ else if ( (LA51_8==71) && (synpred1())) {s = 17;}
+
+ else if ( (LA51_8==100) && (synpred1())) {s = 18;}
+
+ else if ( (LA51_8==101) && (synpred1())) {s = 19;}
+
+ else if ( (LA51_8==102) && (synpred1())) {s = 20;}
+
+ else if ( (LA51_8==103) && (synpred1())) {s = 21;}
+
+ else if ( (LA51_8==104) && (synpred1())) {s = 22;}
+
+ else if ( (LA51_8==105) && (synpred1())) {s = 23;}
+
+ else if ( (LA51_8==106) && (synpred1())) {s = 24;}
+
+ else if ( (LA51_8==107) && (synpred1())) {s = 25;}
+
+ else if ( (LA51_8==108) && (synpred1())) {s = 26;}
+
+ else if ( (LA51_8==97) && (synpred1())) {s = 27;}
+
+ else if ( (LA51_8==98) && (synpred1())) {s = 28;}
+
+ else if ( (LA51_8==IntLiteral) && (synpred1())) {s = 29;}
+
+ else if ( (LA51_8==99) && (synpred1())) {s = 30;}
+
+ else if ( (LA51_8==79) && (synpred1())) {s = 31;}
+
+ else if ( (LA51_8==96) && (synpred1())) {s = 32;}
+
+ else if ( (LA51_8==95) && (synpred1())) {s = 33;}
+
+ else if ( (LA51_8==31) && (synpred1())) {s = 34;}
+
+ else if ( (LA51_8==94) && (synpred1())) {s = 35;}
+
+ else if ( (LA51_8==59) && (synpred1())) {s = 36;}
+
+
+ input.seek(index51_8);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA51_42 = input.LA(1);
+
+
+ int index51_42 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred1()) ) {s = 36;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index51_42);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA51_40 = input.LA(1);
+
+
+ int index51_40 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred1()) ) {s = 36;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index51_40);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA51_44 = input.LA(1);
+
+
+ int index51_44 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred1()) ) {s = 36;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index51_44);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA51_41 = input.LA(1);
+
+
+ int index51_41 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred1()) ) {s = 36;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index51_41);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA51_12 = input.LA(1);
+
+
+ int index51_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred1()) ) {s = 36;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index51_12);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 51, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+ public static final BitSet FOLLOW_nsImport_in_file80 = new BitSet(new long[]{0x4400000028002010L,0x00000000000000E7L});
+ public static final BitSet FOLLOW_abstractDeclaration_in_file93 = new BitSet(new long[]{0x4400000000002010L,0x00000000000000E7L});
+ public static final BitSet FOLLOW_EOF_in_file102 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LG_in_nsImport123 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_nsImport129 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_simpleType_in_nsImport137 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RG_in_nsImport143 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LG_in_nsImport152 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_26_in_nsImport158 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_simpleType_in_nsImport166 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RG_in_nsImport172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_27_in_nsImport181 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_nsImport189 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_nsImport195 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_29_in_nsImport204 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_nsImport212 = new BitSet(new long[]{0x0000000050000000L});
+ public static final BitSet FOLLOW_30_in_nsImport220 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_nsImport229 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_check_in_abstractDeclaration247 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_around_in_abstractDeclaration256 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_extension_in_abstractDeclaration265 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_definition_in_abstractDeclaration274 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_definitionAround_in_abstractDeclaration283 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LG_in_definition306 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_DEFINE_in_definition312 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_definition320 = new BitSet(new long[]{0x0000000880000000L});
+ public static final BitSet FOLLOW_31_in_definition328 = new BitSet(new long[]{0x0000000600002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_declaredParameterList_in_definition338 = new BitSet(new long[]{0x0000000700000000L});
+ public static final BitSet FOLLOW_32_in_definition346 = new BitSet(new long[]{0x0000000200000000L});
+ public static final BitSet FOLLOW_33_in_definition353 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_33_in_definition365 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_definition374 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_35_in_definition383 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_definition391 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_definition399 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_ENDDEFINE_in_definition405 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RG_in_definition411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LG_in_definitionAround434 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_AROUND_in_definitionAround440 = new BitSet(new long[]{0x0000000200002000L});
+ public static final BitSet FOLLOW_pointcut_in_definitionAround448 = new BitSet(new long[]{0x0000000880000000L});
+ public static final BitSet FOLLOW_31_in_definitionAround456 = new BitSet(new long[]{0x0000000600002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_declaredParameterList_in_definitionAround466 = new BitSet(new long[]{0x0000000700000000L});
+ public static final BitSet FOLLOW_32_in_definitionAround474 = new BitSet(new long[]{0x0000000200000000L});
+ public static final BitSet FOLLOW_33_in_definitionAround481 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_33_in_definitionAround493 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_definitionAround502 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_35_in_definitionAround511 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_definitionAround519 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_definitionAround527 = new BitSet(new long[]{0x0000000000000200L});
+ public static final BitSet FOLLOW_ENDAROUND_in_definitionAround533 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RG_in_definitionAround539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_textSequence_in_sequence564 = new BitSet(new long[]{0x081442F080003802L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_statement_in_sequence574 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_textSequence_in_sequence582 = new BitSet(new long[]{0x081442F080003802L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_simpleStatement_in_statement603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_fileStatement_in_statement612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_foreachStatement_in_statement621 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ifStatement_in_statement630 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_letStatement_in_statement639 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_protectStatement_in_statement648 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_text_in_textSequence678 = new BitSet(new long[]{0x0000001000000402L});
+ public static final BitSet FOLLOW_text_in_textSequence688 = new BitSet(new long[]{0x0000001000000402L});
+ public static final BitSet FOLLOW_36_in_text714 = new BitSet(new long[]{0x0000000000000400L});
+ public static final BitSet FOLLOW_TEXT_in_text721 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_errorStatement_in_simpleStatement739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_expandStatement_in_simpleStatement748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_expressionStmt_in_simpleStatement757 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_37_in_errorStatement780 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_errorStatement788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_38_in_expandStatement811 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_simpleType_in_expandStatement819 = new BitSet(new long[]{0x0000008880000002L});
+ public static final BitSet FOLLOW_31_in_expandStatement827 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_parameterList_in_expandStatement835 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_expandStatement841 = new BitSet(new long[]{0x0000008800000002L});
+ public static final BitSet FOLLOW_35_in_expandStatement854 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_expandStatement862 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_39_in_expandStatement875 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_expandStatement883 = new BitSet(new long[]{0x0000010000000002L});
+ public static final BitSet FOLLOW_40_in_expandStatement891 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_expandStatement899 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_expression_in_expressionStmt932 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_41_in_fileStatement955 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_fileStatement963 = new BitSet(new long[]{0x0000001000002400L});
+ public static final BitSet FOLLOW_identifier_in_fileStatement973 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_fileStatement984 = new BitSet(new long[]{0x0000040000000000L});
+ public static final BitSet FOLLOW_42_in_fileStatement990 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_39_in_foreachStatement1013 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_foreachStatement1021 = new BitSet(new long[]{0x0000080000000000L});
+ public static final BitSet FOLLOW_43_in_foreachStatement1027 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_foreachStatement1035 = new BitSet(new long[]{0x0000111000000400L});
+ public static final BitSet FOLLOW_44_in_foreachStatement1043 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_foreachStatement1051 = new BitSet(new long[]{0x0000011000000400L});
+ public static final BitSet FOLLOW_40_in_foreachStatement1062 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_foreachStatement1070 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_foreachStatement1081 = new BitSet(new long[]{0x0000200000000000L});
+ public static final BitSet FOLLOW_45_in_foreachStatement1087 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_46_in_ifStatement1110 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_ifStatement1118 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_ifStatement1126 = new BitSet(new long[]{0x0003800000000000L});
+ public static final BitSet FOLLOW_elseIfStatement_in_ifStatement1134 = new BitSet(new long[]{0x0003800000000000L});
+ public static final BitSet FOLLOW_elseStatement_in_ifStatement1143 = new BitSet(new long[]{0x0000800000000000L});
+ public static final BitSet FOLLOW_47_in_ifStatement1150 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_48_in_elseIfStatement1173 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_elseIfStatement1181 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_elseIfStatement1189 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_elseStatement1212 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_elseStatement1220 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_letStatement1243 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_letStatement1251 = new BitSet(new long[]{0x0000080000000000L});
+ public static final BitSet FOLLOW_43_in_letStatement1257 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_letStatement1265 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_letStatement1273 = new BitSet(new long[]{0x0008000000000000L});
+ public static final BitSet FOLLOW_51_in_letStatement1279 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_protectStatement1302 = new BitSet(new long[]{0x0020000000000000L});
+ public static final BitSet FOLLOW_53_in_protectStatement1308 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_protectStatement1316 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_54_in_protectStatement1322 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_protectStatement1330 = new BitSet(new long[]{0x0080000000000000L});
+ public static final BitSet FOLLOW_55_in_protectStatement1336 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_protectStatement1344 = new BitSet(new long[]{0x0100001000000400L});
+ public static final BitSet FOLLOW_56_in_protectStatement1350 = new BitSet(new long[]{0x0000001000000400L});
+ public static final BitSet FOLLOW_sequence_in_protectStatement1359 = new BitSet(new long[]{0x0200000000000000L});
+ public static final BitSet FOLLOW_57_in_protectStatement1365 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_58_in_check1388 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_check1396 = new BitSet(new long[]{0x1800002000000000L});
+ public static final BitSet FOLLOW_59_in_check1404 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_check1412 = new BitSet(new long[]{0x1000002000000000L});
+ public static final BitSet FOLLOW_37_in_check1423 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_60_in_check1432 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_check1442 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_check1448 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_check1456 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_check1462 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_62_in_around1485 = new BitSet(new long[]{0x0000000200002000L});
+ public static final BitSet FOLLOW_pointcut_in_around1493 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_around1499 = new BitSet(new long[]{0x0000000600002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_declaredParameterList_in_around1509 = new BitSet(new long[]{0x0000000700000000L});
+ public static final BitSet FOLLOW_32_in_around1517 = new BitSet(new long[]{0x0000000200000000L});
+ public static final BitSet FOLLOW_33_in_around1524 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_33_in_around1536 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_around1545 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_around1551 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_around1559 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_around1565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_33_in_pointcut1590 = new BitSet(new long[]{0x8000000200002002L});
+ public static final BitSet FOLLOW_identifier_in_pointcut1601 = new BitSet(new long[]{0x8000000200002002L});
+ public static final BitSet FOLLOW_33_in_pointcut1611 = new BitSet(new long[]{0x8000000200002002L});
+ public static final BitSet FOLLOW_identifier_in_pointcut1622 = new BitSet(new long[]{0x8000000200002002L});
+ public static final BitSet FOLLOW_63_in_pointcut1631 = new BitSet(new long[]{0x8000000200002002L});
+ public static final BitSet FOLLOW_64_in_extension1659 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E7L});
+ public static final BitSet FOLLOW_65_in_extension1668 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E7L});
+ public static final BitSet FOLLOW_66_in_extension1677 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E7L});
+ public static final BitSet FOLLOW_type_in_extension1688 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_extension1697 = new BitSet(new long[]{0x0000000080002000L});
+ public static final BitSet FOLLOW_identifier_in_extension1705 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_extension1712 = new BitSet(new long[]{0x0000000400002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_declaredParameterList_in_extension1720 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_extension1727 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_extension1733 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E8L});
+ public static final BitSet FOLLOW_67_in_extension1741 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_javaType_in_extension1749 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_extension1755 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_extension1763 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_extension1769 = new BitSet(new long[]{0x0000000400002000L});
+ public static final BitSet FOLLOW_javaType_in_extension1779 = new BitSet(new long[]{0x0000000500000000L});
+ public static final BitSet FOLLOW_32_in_extension1787 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_javaType_in_extension1795 = new BitSet(new long[]{0x0000000500000000L});
+ public static final BitSet FOLLOW_34_in_extension1807 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_expression_in_extension1818 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_extension1826 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_identifier_in_javaType1851 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_javaType1859 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_identifier_in_javaType1869 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_69_in_javaType1878 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_70_in_javaType1887 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_71_in_javaType1896 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_expression_in_test_expression1931 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_test_expression1937 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_letExpression_in_expression1965 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_letExpression1993 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_letExpression2001 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_letExpression2007 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_castedExpression_in_letExpression2015 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_letExpression2021 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_letExpression2029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_castedExpression_in_letExpression2040 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_31_in_castedExpression2079 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_castedExpression2087 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_castedExpression2093 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_chainExpression_in_castedExpression2101 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_chainExpression_in_castedExpression2113 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ifExpression_in_chainExpression2143 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_74_in_chainExpression2151 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_ifExpression_in_chainExpression2159 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_switchExpression_in_ifExpression2192 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
+ public static final BitSet FOLLOW_75_in_ifExpression2200 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_ifExpression2208 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_ifExpression2214 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_switchExpression_in_ifExpression2222 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_ifExpression2234 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_ifExpression2242 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_76_in_ifExpression2248 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_switchExpression_in_ifExpression2256 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
+ public static final BitSet FOLLOW_77_in_ifExpression2264 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_switchExpression_in_ifExpression2272 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_78_in_switchExpression2303 = new BitSet(new long[]{0x0000000080000000L,0x0000000000008000L});
+ public static final BitSet FOLLOW_31_in_switchExpression2311 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_orExpression_in_switchExpression2319 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_switchExpression2325 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+ public static final BitSet FOLLOW_79_in_switchExpression2334 = new BitSet(new long[]{0x0000000000000000L,0x0000000000050000L});
+ public static final BitSet FOLLOW_casePart_in_switchExpression2342 = new BitSet(new long[]{0x0000000000000000L,0x0000000000050000L});
+ public static final BitSet FOLLOW_80_in_switchExpression2349 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_switchExpression2355 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_orExpression_in_switchExpression2363 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_81_in_switchExpression2369 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_orExpression_in_switchExpression2380 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_82_in_casePart2403 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_casePart2411 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_61_in_casePart2417 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_casePart2425 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_andExpression_in_orExpression2455 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
+ public static final BitSet FOLLOW_83_in_orExpression2463 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_andExpression_in_orExpression2471 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
+ public static final BitSet FOLLOW_impliesExpression_in_andExpression2504 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
+ public static final BitSet FOLLOW_84_in_andExpression2512 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_impliesExpression_in_andExpression2520 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
+ public static final BitSet FOLLOW_relationalExpression_in_impliesExpression2553 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
+ public static final BitSet FOLLOW_85_in_impliesExpression2561 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_relationalExpression_in_impliesExpression2569 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
+ public static final BitSet FOLLOW_additiveExpression_in_relationalExpression2602 = new BitSet(new long[]{0x0000000000000002L,0x000000000FC00000L});
+ public static final BitSet FOLLOW_86_in_relationalExpression2612 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_87_in_relationalExpression2621 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_88_in_relationalExpression2630 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_89_in_relationalExpression2639 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_90_in_relationalExpression2648 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_91_in_relationalExpression2657 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_additiveExpression_in_relationalExpression2667 = new BitSet(new long[]{0x0000000000000002L,0x000000000FC00000L});
+ public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression2700 = new BitSet(new long[]{0x0000001000000002L,0x0000000010000000L});
+ public static final BitSet FOLLOW_92_in_additiveExpression2710 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_36_in_additiveExpression2719 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression2729 = new BitSet(new long[]{0x0000001000000002L,0x0000000010000000L});
+ public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression2762 = new BitSet(new long[]{0x0000000200000002L,0x0000000020000000L});
+ public static final BitSet FOLLOW_33_in_multiplicativeExpression2772 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_93_in_multiplicativeExpression2781 = new BitSet(new long[]{0x0000001080003800L,0x00001FFFC00080E0L});
+ public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression2791 = new BitSet(new long[]{0x0000000200000002L,0x0000000020000000L});
+ public static final BitSet FOLLOW_infixExpression_in_unaryExpression2824 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_94_in_unaryExpression2833 = new BitSet(new long[]{0x0000000080003800L,0x00001FFF800080E0L});
+ public static final BitSet FOLLOW_infixExpression_in_unaryExpression2841 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_36_in_unaryExpression2850 = new BitSet(new long[]{0x0000000080003800L,0x00001FFF800080E0L});
+ public static final BitSet FOLLOW_infixExpression_in_unaryExpression2858 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_primaryExpression_in_infixExpression2888 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_infixExpression2896 = new BitSet(new long[]{0x0000000000002000L,0x00001FF0000000E0L});
+ public static final BitSet FOLLOW_featureCall_in_infixExpression2904 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
+ public static final BitSet FOLLOW_stringLiteral_in_primaryExpression2925 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_featureCall_in_primaryExpression2934 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression2943 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_numberLiteral_in_primaryExpression2952 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_nullLiteral_in_primaryExpression2961 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_listLiteral_in_primaryExpression2970 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_constructorCall_in_primaryExpression2979 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_globalVarExpression_in_primaryExpression2988 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_paranthesizedExpression_in_primaryExpression2997 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_StringLiteral_in_stringLiteral3020 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_31_in_paranthesizedExpression3043 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_paranthesizedExpression3051 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_paranthesizedExpression3057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_95_in_globalVarExpression3080 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_globalVarExpression3088 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_identifier_in_featureCall3118 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_featureCall3124 = new BitSet(new long[]{0x0800001480003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_parameterList_in_featureCall3134 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_featureCall3143 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_type_in_featureCall3154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_collectionExpression_in_featureCall3165 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_79_in_listLiteral3188 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC002C1E0L});
+ public static final BitSet FOLLOW_expression_in_listLiteral3198 = new BitSet(new long[]{0x0000000100000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_32_in_listLiteral3206 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_listLiteral3214 = new BitSet(new long[]{0x0000000100000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_81_in_listLiteral3226 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_96_in_constructorCall3249 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_simpleType_in_constructorCall3257 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_97_in_booleanLiteral3280 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_98_in_booleanLiteral3289 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_99_in_nullLiteral3312 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IntLiteral_in_numberLiteral3335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IntLiteral_in_numberLiteral3344 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_numberLiteral3350 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_IntLiteral_in_numberLiteral3356 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_100_in_collectionExpression3379 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_collectionExpression3385 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_collectionExpression3393 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_collectionExpression3399 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_101_in_collectionExpression3410 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_102_in_collectionExpression3419 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_103_in_collectionExpression3428 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_104_in_collectionExpression3437 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_105_in_collectionExpression3446 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_106_in_collectionExpression3455 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_107_in_collectionExpression3464 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_108_in_collectionExpression3473 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_collectionExpression3481 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_identifier_in_collectionExpression3491 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+ public static final BitSet FOLLOW_109_in_collectionExpression3497 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_collectionExpression3508 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_collectionExpression3514 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList3539 = new BitSet(new long[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_32_in_declaredParameterList3547 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList3555 = new BitSet(new long[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_type_in_declaredParameter3583 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_declaredParameter3591 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_expression_in_parameterList3616 = new BitSet(new long[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_32_in_parameterList3624 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C1E0L});
+ public static final BitSet FOLLOW_expression_in_parameterList3632 = new BitSet(new long[]{0x0000000100000002L});
+ public static final BitSet FOLLOW_collectionType_in_type3653 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_simpleType_in_type3662 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_69_in_collectionType3687 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+ public static final BitSet FOLLOW_70_in_collectionType3696 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+ public static final BitSet FOLLOW_71_in_collectionType3705 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+ public static final BitSet FOLLOW_110_in_collectionType3715 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_simpleType_in_collectionType3723 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_111_in_collectionType3729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_identifier_in_simpleType3757 = new BitSet(new long[]{0x8000000000000002L});
+ public static final BitSet FOLLOW_63_in_simpleType3765 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_identifier_in_simpleType3773 = new BitSet(new long[]{0x8000000000000002L});
+ public static final BitSet FOLLOW_Identifier_in_identifier3799 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_31_in_synpred12068 = new BitSet(new long[]{0x0000000000002000L,0x00000000000000E0L});
+ public static final BitSet FOLLOW_type_in_synpred12070 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_synpred12072 = new BitSet(new long[]{0x0800001080003800L,0x00001FFFC000C0E0L});
+ public static final BitSet FOLLOW_chainExpression_in_synpred12074 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node__.g b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node__.g
new file mode 100644
index 00000000..6c270229
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node__.g
@@ -0,0 +1,235 @@
+lexer grammar Xpand3Node;
+@members {
+ private boolean xpandMode = false;
+}
+@header {
+package org.eclipse.xpand3.parser;
+}
+
+T25 : 'IMPORT' ;
+T26 : 'EXTENSION' ;
+T27 : 'import' ;
+T28 : ';' ;
+T29 : 'extension' ;
+T30 : 'reexport' ;
+T31 : '(' ;
+T32 : ',' ;
+T33 : '*' ;
+T34 : ')' ;
+T35 : 'FOR' ;
+T36 : '-' ;
+T37 : 'ERROR' ;
+T38 : 'EXPAND' ;
+T39 : 'FOREACH' ;
+T40 : 'SEPARATOR' ;
+T41 : 'FILE' ;
+T42 : 'ENDFILE' ;
+T43 : 'AS' ;
+T44 : 'ITERATOR' ;
+T45 : 'ENDFOREACH' ;
+T46 : 'IF' ;
+T47 : 'ENDIF' ;
+T48 : 'ELSEIF' ;
+T49 : 'ELSE' ;
+T50 : 'LET' ;
+T51 : 'ENDLET' ;
+T52 : 'PROTECT' ;
+T53 : 'CSTART' ;
+T54 : 'CEND' ;
+T55 : 'ID' ;
+T56 : 'DISABLE' ;
+T57 : 'ENDPROTECT' ;
+T58 : 'context' ;
+T59 : 'if' ;
+T60 : 'WARNING' ;
+T61 : ':' ;
+T62 : 'around' ;
+T63 : '::' ;
+T64 : 'private' ;
+T65 : 'cached' ;
+T66 : 'create' ;
+T67 : 'JAVA' ;
+T68 : '.' ;
+T69 : 'Collection' ;
+T70 : 'List' ;
+T71 : 'Set' ;
+T72 : 'let' ;
+T73 : '=' ;
+T74 : '->' ;
+T75 : '?' ;
+T76 : 'then' ;
+T77 : 'else' ;
+T78 : 'switch' ;
+T79 : '{' ;
+T80 : 'default' ;
+T81 : '}' ;
+T82 : 'case' ;
+T83 : '||' ;
+T84 : '&&' ;
+T85 : 'implies' ;
+T86 : '==' ;
+T87 : '!=' ;
+T88 : '>=' ;
+T89 : '<=' ;
+T90 : '>' ;
+T91 : '<' ;
+T92 : '+' ;
+T93 : '/' ;
+T94 : '!' ;
+T95 : 'GLOBALVAR' ;
+T96 : 'new' ;
+T97 : 'false' ;
+T98 : 'true' ;
+T99 : 'null' ;
+T100 : 'typeSelect' ;
+T101 : 'collect' ;
+T102 : 'select' ;
+T103 : 'selectFirst' ;
+T104 : 'reject' ;
+T105 : 'exists' ;
+T106 : 'notExists' ;
+T107 : 'sortBy' ;
+T108 : 'forAll' ;
+T109 : '|' ;
+T110 : '[' ;
+T111 : ']' ;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 343
+IntLiteral :
+ ('0' | '1'..'9' '0'..'9'*)
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 347
+StringLiteral :
+ '\"' ( EscapeSequence | ~('\\'|'\"') )* '\"'
+ | '\'' ( EscapeSequence | ~('\''|'\\') )* '\''
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 352
+fragment EscapeSequence :
+ '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+ | UnicodeEscape
+ | OctalEscape
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 358
+fragment OctalEscape :
+ '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7')
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 364
+fragment UnicodeEscape :
+ '\\' 'u' HexDigit HexDigit HexDigit HexDigit
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 368
+fragment HexDigit :
+ ('0'..'9'|'a'..'f'|'A'..'F')
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 372
+DEFINE :
+ {xpandMode=true;} 'DEFINE'
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 376
+ENDDEFINE :
+ 'ENDDEFINE' {xpandMode=false;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 380
+AROUND :
+ {xpandMode=true;}'AROUND'
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 384
+ENDAROUND :
+ 'ENDAROUND'{xpandMode=false;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 388
+Identifier :
+ ('^')? Letter (Letter|JavaIDDigit)*
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 392
+fragment Letter :
+ '\u0024' |
+ '\u0041'..'\u005a' |
+ '\u005f' |
+ '\u0061'..'\u007a' |
+ '\u00c0'..'\u00d6' |
+ '\u00d8'..'\u00f6' |
+ '\u00f8'..'\u00ff' |
+ '\u0100'..'\u1fff' |
+ '\u3040'..'\u318f' |
+ '\u3300'..'\u337f' |
+ '\u3400'..'\u3d2d' |
+ '\u4e00'..'\u9fff' |
+ '\uf900'..'\ufaff'
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 408
+fragment JavaIDDigit :
+
+ '\u0030'..'\u0039' |
+ '\u0660'..'\u0669' |
+ '\u06f0'..'\u06f9' |
+ '\u0966'..'\u096f' |
+ '\u09e6'..'\u09ef' |
+ '\u0a66'..'\u0a6f' |
+ '\u0ae6'..'\u0aef' |
+ '\u0b66'..'\u0b6f' |
+ '\u0be7'..'\u0bef' |
+ '\u0c66'..'\u0c6f' |
+ '\u0ce6'..'\u0cef' |
+ '\u0d66'..'\u0d6f' |
+ '\u0e50'..'\u0e59' |
+ '\u0ed0'..'\u0ed9' |
+ '\u1040'..'\u1049'
+
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 428
+WS :
+ (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 432
+COMMENT :
+ '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 436
+LINE_COMMENT :
+ '//' ~('\n'|'\r')* ('\r'? '\n'|EOF) {$channel=HIDDEN;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 440
+REM_COMMENT_OUT :
+ {!xpandMode}?=> LG 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' RG {$channel=HIDDEN;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 444
+REM_COMMENT :
+ {xpandMode}?=> 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' {$channel=HIDDEN;}
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 448
+TEXT :
+ {xpandMode}?=> RG ~(LG)* (LG)?
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 452
+LG :
+ '\u00AB'
+;
+
+// $ANTLR src "./src-gen/org/eclipse/xpand3/parser/Xpand3Node.g" 456
+RG :
+ '\u00BB'
+;
+
+
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/debugMeWithAntLR.g b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/debugMeWithAntLR.g
new file mode 100644
index 00000000..1dcca801
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/debugMeWithAntLR.g
@@ -0,0 +1,367 @@
+grammar debugMeWithAntLR;
+
+
+@lexer::members {
+ private boolean xpandMode = false;
+}
+
+file :
+ (((imp=nsImport)))* (((decl=abstractDeclaration)))* (EOF)
+;
+nsImport :
+ (LG) ('IMPORT') (ns=simpleType) (RG)
+ | (LG) ('EXTENSION') (ns=simpleType) (RG)
+ | ('import') (unnamed0=type) (';')
+ | ('extension') (unnamed1=type) ((('reexport')))? (';')
+;
+abstractDeclaration :
+ (check)
+ | (around)
+ | (extension)
+ | (definition)
+ | (definitionAround)
+;
+definition :
+ (LG) (DEFINE) (name=identifier) ((('(') (((unnamed2=declaredParameterList) (((',')? ('*')))?
+ | ('*')))? (')')))? ('FOR') (unnamed3=type) (unnamed4=sequence) (ENDDEFINE) (RG)
+;
+definitionAround :
+ (LG) (AROUND) (unnamed5=pointcut) ((('(') (((unnamed6=declaredParameterList) (((',')? ('*')))?
+ | ('*')))? (')')))? ('FOR') (unnamed7=type) (unnamed8=sequence) (ENDAROUND) (RG)
+;
+sequence :
+ (unnamed9=textSequence) (((unnamed10=statement) (unnamed11=textSequence)))*
+;
+statement :
+ (simpleStatement)
+ | (fileStatement)
+ | (foreachStatement)
+ | (ifStatement)
+ | (letStatement)
+ | (protectStatement)
+;
+textSequence :
+ (unnamed12=text) (((unnamed13=text)))*
+;
+text :
+ ('-')? (TEXT)
+;
+simpleStatement :
+ (errorStatement)
+ | (expandStatement)
+ | (expressionStmt)
+;
+errorStatement :
+ ('ERROR') (unnamed14=expression)
+;
+expandStatement :
+ ('EXPAND') (unnamed15=simpleType) ((('(') (unnamed16=parameterList) (')')))? ((((('FOR') (unnamed17=expression)))
+ | ((('FOREACH') (unnamed18=expression) ((('SEPARATOR') (unnamed19=expression)))?))))?
+;
+expressionStmt :
+ (unnamed20=expression)
+;
+fileStatement :
+ ('FILE') (unnamed21=expression) (((unnamed22=identifier)))? (unnamed23=sequence) ('ENDFILE')
+;
+foreachStatement :
+ ('FOREACH') (unnamed24=expression) ('AS') (unnamed25=identifier) ((('ITERATOR') (unnamed26=identifier)))? ((('SEPARATOR') (unnamed27=expression)))? (unnamed28=sequence) ('ENDFOREACH')
+;
+ifStatement :
+ ('IF') (unnamed29=expression) (unnamed30=sequence) (unnamed31=elseIfStatement)* (unnamed32=elseStatement)? ('ENDIF')
+;
+elseIfStatement :
+ ('ELSEIF') (unnamed33=expression) (unnamed34=sequence)
+;
+elseStatement :
+ ('ELSE') (unnamed35=sequence)
+;
+letStatement :
+ ('LET') (unnamed36=expression) ('AS') (unnamed37=identifier) (unnamed38=sequence) ('ENDLET')
+;
+protectStatement :
+ ('PROTECT') ('CSTART') (unnamed39=expression) ('CEND') (unnamed40=expression) ('ID') (unnamed41=expression) ('DISABLE')? (unnamed42=sequence) ('ENDPROTECT')
+;
+check :
+ ('context') (unnamed43=type) ((('if') (unnamed44=expression)))? ((('ERROR')
+ | ('WARNING'))) (unnamed45=expression) (':') (unnamed46=expression) (';')
+;
+around :
+ ('around') (unnamed47=pointcut) ('(') (((unnamed48=declaredParameterList) (((',')? ('*')))?
+ | ('*')))? (')') (':') (unnamed49=expression) (';')
+;
+pointcut :
+ ((('*')
+ | (unnamed50=identifier))) ((('*')
+ | (unnamed51=identifier)
+ | ('::')))*
+;
+extension :
+ ((('private')
+ | ('cached')
+ | ('create')))* (unnamed52=type)? (unnamed53=identifier) (unnamed54=identifier)? ('(') (unnamed55=declaredParameterList)? (')') (':') ((('JAVA') (unnamed56=javaType) ('.') (unnamed57=identifier) ('(') (((unnamed58=javaType) (((',') (unnamed59=javaType)))*))? (')')
+ | (unnamed60=expression))) (';')
+;
+javaType :
+ (unnamed61=identifier) ((('.') (((unnamed62=identifier)
+ | ('Collection')
+ | ('List')
+ | ('Set')))))*
+;
+test_expression :
+ (unnamed63=expression) (EOF)
+;
+expression :
+ (unnamed64=letExpression)
+;
+letExpression :
+ ('let') (unnamed65=identifier) ('=') (unnamed66=castedExpression) (':') (unnamed67=expression)
+ | (unnamed68=castedExpression)
+;
+castedExpression :
+ ('(' type ')' chainExpression)=>(('(') (unnamed69=type) (')') (unnamed70=chainExpression))
+ | (unnamed71=chainExpression)
+;
+chainExpression :
+ (unnamed72=ifExpression) ((('->') (unnamed73=ifExpression)))*
+;
+ifExpression :
+ (unnamed74=switchExpression) ((('?') (unnamed75=expression) (':') (unnamed76=switchExpression)))?
+ | ('if') (unnamed77=expression) ('then') (unnamed78=switchExpression) ((('else') (unnamed79=switchExpression)))?
+;
+switchExpression :
+ ('switch') ((('(') (unnamed80=orExpression) (')')))? ('{') (unnamed81=casePart)* ('default') (':') (unnamed82=orExpression) ('}')
+ | (unnamed83=orExpression)
+;
+casePart :
+ ('case') (unnamed84=expression) (':') (unnamed85=expression)
+;
+orExpression :
+ (unnamed86=andExpression) ((('||') (unnamed87=andExpression)))*
+;
+andExpression :
+ (unnamed88=impliesExpression) ((('&&') (unnamed89=impliesExpression)))*
+;
+impliesExpression :
+ (unnamed90=relationalExpression) ((('implies') (unnamed91=relationalExpression)))*
+;
+relationalExpression :
+ (unnamed92=additiveExpression) ((((('==')
+ | ('!=')
+ | ('>=')
+ | ('<=')
+ | ('>')
+ | ('<'))) (unnamed93=additiveExpression)))*
+;
+additiveExpression :
+ (unnamed94=multiplicativeExpression) ((((('+')
+ | ('-'))) (unnamed95=multiplicativeExpression)))*
+;
+multiplicativeExpression :
+ (unnamed96=unaryExpression) ((((('*')
+ | ('/'))) (unnamed97=unaryExpression)))*
+;
+unaryExpression :
+ (unnamed98=infixExpression)
+ | ('!') (unnamed99=infixExpression)
+ | ('-') (unnamed100=infixExpression)
+;
+infixExpression :
+ (unnamed101=primaryExpression) ((('.') (unnamed102=featureCall)))*
+;
+primaryExpression :
+ (stringLiteral)
+ | (featureCall)
+ | (booleanLiteral)
+ | (numberLiteral)
+ | (nullLiteral)
+ | (listLiteral)
+ | (constructorCall)
+ | (globalVarExpression)
+ | (paranthesizedExpression)
+;
+stringLiteral :
+ (StringLiteral)
+;
+paranthesizedExpression :
+ ('(') (unnamed103=expression) (')')
+;
+globalVarExpression :
+ ('GLOBALVAR') (unnamed104=identifier)
+;
+featureCall :
+ (unnamed105=identifier) ('(') (((unnamed106=parameterList)))? (')')
+ | (unnamed107=type)
+ | (unnamed108=collectionExpression)
+;
+listLiteral :
+ ('{') (((unnamed109=expression) (((',') (unnamed110=expression)))*))? ('}')
+;
+constructorCall :
+ ('new') (unnamed111=simpleType)
+;
+booleanLiteral :
+ ('false')
+ | ('true')
+;
+nullLiteral :
+ ('null')
+;
+numberLiteral :
+ (IntLiteral)
+ | (IntLiteral) ('.') (IntLiteral)
+;
+collectionExpression :
+ ('typeSelect') ('(') (unnamed112=type) (')')
+ | ((('collect')
+ | ('select')
+ | ('selectFirst')
+ | ('reject')
+ | ('exists')
+ | ('notExists')
+ | ('sortBy')
+ | ('forAll'))) ('(') (((unnamed113=identifier) ('|')))? (unnamed114=expression) (')')
+;
+declaredParameterList :
+ (unnamed115=declaredParameter) (((',') (unnamed116=declaredParameter)))*
+;
+declaredParameter :
+ (unnamed117=type) (unnamed118=identifier)
+;
+parameterList :
+ (unnamed119=expression) (((',') (unnamed120=expression)))*
+;
+type :
+ (collectionType)
+ | (simpleType)
+;
+collectionType :
+ ((('Collection')
+ | ('List')
+ | ('Set'))) ((('[') (unnamed121=simpleType) (']')))?
+;
+simpleType :
+ (unnamed122=identifier) ((('::') (unnamed123=identifier)))*
+;
+identifier :
+ (Identifier)
+;
+
+IntLiteral :
+ ('0' | '1'..'9' '0'..'9'*)
+;
+
+StringLiteral :
+ '\"' ( EscapeSequence | ~('\\'|'\"') )* '\"'
+ | '\'' ( EscapeSequence | ~('\''|'\\') )* '\''
+;
+
+fragment EscapeSequence :
+ '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+ | UnicodeEscape
+ | OctalEscape
+;
+
+fragment OctalEscape :
+ '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7')
+;
+
+fragment UnicodeEscape :
+ '\\' 'u' HexDigit HexDigit HexDigit HexDigit
+;
+
+fragment HexDigit :
+ ('0'..'9'|'a'..'f'|'A'..'F')
+;
+
+DEFINE :
+ {xpandMode=true;} 'DEFINE'
+;
+
+ENDDEFINE :
+ 'ENDDEFINE' {xpandMode=false;}
+;
+
+AROUND :
+ {xpandMode=true;}'AROUND'
+;
+
+ENDAROUND :
+ 'ENDAROUND'{xpandMode=false;}
+;
+
+Identifier :
+ ('^')? Letter (Letter|JavaIDDigit)*
+;
+
+fragment Letter :
+ '\u0024' |
+ '\u0041'..'\u005a' |
+ '\u005f' |
+ '\u0061'..'\u007a' |
+ '\u00c0'..'\u00d6' |
+ '\u00d8'..'\u00f6' |
+ '\u00f8'..'\u00ff' |
+ '\u0100'..'\u1fff' |
+ '\u3040'..'\u318f' |
+ '\u3300'..'\u337f' |
+ '\u3400'..'\u3d2d' |
+ '\u4e00'..'\u9fff' |
+ '\uf900'..'\ufaff'
+;
+
+fragment JavaIDDigit :
+
+ '\u0030'..'\u0039' |
+ '\u0660'..'\u0669' |
+ '\u06f0'..'\u06f9' |
+ '\u0966'..'\u096f' |
+ '\u09e6'..'\u09ef' |
+ '\u0a66'..'\u0a6f' |
+ '\u0ae6'..'\u0aef' |
+ '\u0b66'..'\u0b6f' |
+ '\u0be7'..'\u0bef' |
+ '\u0c66'..'\u0c6f' |
+ '\u0ce6'..'\u0cef' |
+ '\u0d66'..'\u0d6f' |
+ '\u0e50'..'\u0e59' |
+ '\u0ed0'..'\u0ed9' |
+ '\u1040'..'\u1049'
+
+;
+
+WS :
+ (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
+;
+
+COMMENT :
+ '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
+;
+
+LINE_COMMENT :
+ '//' ~('\n'|'\r')* ('\r'? '\n'|EOF) {$channel=HIDDEN;}
+;
+
+REM_COMMENT_OUT :
+ {!xpandMode}?=> LG 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' RG {$channel=HIDDEN;}
+;
+
+REM_COMMENT :
+ {xpandMode}?=> 'REM' RG ( options {greedy=false;} : . )* '\u00ABENDREM' {$channel=HIDDEN;}
+;
+
+TEXT :
+ {xpandMode}?=> RG ~(LG)* (LG)?
+;
+
+LG :
+ '\u00AB'
+;
+
+RG :
+ '\u00BB'
+;
+
+
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/parser/node2ast/Node2AstTransformer.java b/plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/parser/node2ast/Node2AstTransformer.java
new file mode 100644
index 00000000..f2ee031e
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/parser/node2ast/Node2AstTransformer.java
@@ -0,0 +1,7 @@
+package org.eclipse.xpand3.parser.node2ast;
+
+import org.eclipse.xpand3.internal.parser.xpand3node.util.Xpand3nodeSwitch;
+
+public class Node2AstTransformer extends Xpand3nodeSwitch