/* * generated by Xtext */ package org.cloudsmith.geppetto.pp.dsl.services; import com.google.inject.Singleton; import com.google.inject.Inject; import java.util.List; import org.eclipse.xtext.*; import org.eclipse.xtext.service.GrammarProvider; import org.eclipse.xtext.service.AbstractElementFinder.*; @Singleton public class PPGrammarAccess extends AbstractGrammarElementFinder { public class PuppetManifestElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PuppetManifest"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cPuppetManifestAction_0 = (Action)cGroup.eContents().get(0); private final Assignment cStatementsAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cStatementsExpressionListParserRuleCall_1_0 = (RuleCall)cStatementsAssignment_1.eContents().get(0); //PuppetManifest returns pp::PuppetManifest: // {pp::PuppetManifest} statements+=ExpressionList*; public ParserRule getRule() { return rule; } //{pp::PuppetManifest} statements+=ExpressionList* public Group getGroup() { return cGroup; } //{pp::PuppetManifest} public Action getPuppetManifestAction_0() { return cPuppetManifestAction_0; } //statements+=ExpressionList* public Assignment getStatementsAssignment_1() { return cStatementsAssignment_1; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_1_0() { return cStatementsExpressionListParserRuleCall_1_0; } } public class ExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Expression"); private final RuleCall cRelationshipExpressionParserRuleCall = (RuleCall)rule.eContents().get(1); //// -- EXPRESSION //// (Refers to the expression with the lowest precedence) //// Should be used by expressions that allow a single Expression //Expression returns pp::Expression: // RelationshipExpression; public ParserRule getRule() { return rule; } //RelationshipExpression public RuleCall getRelationshipExpressionParserRuleCall() { return cRelationshipExpressionParserRuleCall; } } public class ExpressionListElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ExpressionList"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); private final RuleCall cRelationshipExpressionParserRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0); private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); private final Action cExprListExpressionsAction_0_1_0 = (Action)cGroup_0_1.eContents().get(0); private final Keyword cCommaKeyword_0_1_1 = (Keyword)cGroup_0_1.eContents().get(1); private final Assignment cExpressionsAssignment_0_1_2 = (Assignment)cGroup_0_1.eContents().get(2); private final RuleCall cExpressionsRelationshipExpressionParserRuleCall_0_1_2_0 = (RuleCall)cExpressionsAssignment_0_1_2.eContents().get(0); private final Group cGroup_0_1_3 = (Group)cGroup_0_1.eContents().get(3); private final Keyword cCommaKeyword_0_1_3_0 = (Keyword)cGroup_0_1_3.eContents().get(0); private final Assignment cExpressionsAssignment_0_1_3_1 = (Assignment)cGroup_0_1_3.eContents().get(1); private final RuleCall cExpressionsRelationshipExpressionParserRuleCall_0_1_3_1_0 = (RuleCall)cExpressionsAssignment_0_1_3_1.eContents().get(0); private final RuleCall cSeparatorExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //// --EXPRESSION LIST //// Should be used by expressions that allow a sequence of expressions (as such //// a sequence can include non-parenthesized function calls (which are detected after //// parsing) //ExpressionList returns pp::Expression: // RelationshipExpression ({pp::ExprList.expressions+=current} "," expressions+=RelationshipExpression ("," // expressions+=RelationshipExpression)*)? | SeparatorExpression; public ParserRule getRule() { return rule; } //RelationshipExpression ({pp::ExprList.expressions+=current} "," expressions+=RelationshipExpression ("," //expressions+=RelationshipExpression)*)? | SeparatorExpression public Alternatives getAlternatives() { return cAlternatives; } //RelationshipExpression ({pp::ExprList.expressions+=current} "," expressions+=RelationshipExpression ("," //expressions+=RelationshipExpression)*)? public Group getGroup_0() { return cGroup_0; } //RelationshipExpression public RuleCall getRelationshipExpressionParserRuleCall_0_0() { return cRelationshipExpressionParserRuleCall_0_0; } //({pp::ExprList.expressions+=current} "," expressions+=RelationshipExpression ("," //expressions+=RelationshipExpression)*)? public Group getGroup_0_1() { return cGroup_0_1; } //{pp::ExprList.expressions+=current} public Action getExprListExpressionsAction_0_1_0() { return cExprListExpressionsAction_0_1_0; } //"," public Keyword getCommaKeyword_0_1_1() { return cCommaKeyword_0_1_1; } //expressions+=RelationshipExpression public Assignment getExpressionsAssignment_0_1_2() { return cExpressionsAssignment_0_1_2; } //RelationshipExpression public RuleCall getExpressionsRelationshipExpressionParserRuleCall_0_1_2_0() { return cExpressionsRelationshipExpressionParserRuleCall_0_1_2_0; } //("," expressions+=RelationshipExpression)* public Group getGroup_0_1_3() { return cGroup_0_1_3; } //"," public Keyword getCommaKeyword_0_1_3_0() { return cCommaKeyword_0_1_3_0; } //expressions+=RelationshipExpression public Assignment getExpressionsAssignment_0_1_3_1() { return cExpressionsAssignment_0_1_3_1; } //RelationshipExpression public RuleCall getExpressionsRelationshipExpressionParserRuleCall_0_1_3_1_0() { return cExpressionsRelationshipExpressionParserRuleCall_0_1_3_1_0; } //SeparatorExpression public RuleCall getSeparatorExpressionParserRuleCall_1() { return cSeparatorExpressionParserRuleCall_1; } } public class EdgeOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EdgeOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cHyphenMinusGreaterThanSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cLessThanSignHyphenMinusKeyword_1 = (Keyword)cAlternatives.eContents().get(1); private final Keyword cTildeGreaterThanSignKeyword_2 = (Keyword)cAlternatives.eContents().get(2); private final Keyword cLessThanSignTildeKeyword_3 = (Keyword)cAlternatives.eContents().get(3); //// LOWEST PRECEDENCE //// left relationship //// left assignment //// left OR //// left AND //// left Relational: GREATEREQUAL GREATERTHAN LESSTHAN LESSEQUAL //// left Equality: NOTEQUAL ISEQUAL //// left Shift: LSHIFT RSHIFT //// left Additive: '-' PLUS //// left Multiplicative: TIMES DIV //// left Matching: IN MATCH NOMATCH //// nonassoc UMINUS //// right NOT //// 'primary' //// HIGHEST //// Relationship //// Note that RelationshipExpression has lowest precedence since it has an operator //// '<-' that otherwise clashes with LT UnaryMinus //// //// VALIDATION checks that left and right are one of: //// - ResourceExpression (but not a ResourceOverride, or virtual resource) //// - ResourceReference //// - CollectExpression //EdgeOperator: // "->" | "<-" | "~>" | "<~"; public ParserRule getRule() { return rule; } //"->" | "<-" | "~>" | "<~" public Alternatives getAlternatives() { return cAlternatives; } //"->" public Keyword getHyphenMinusGreaterThanSignKeyword_0() { return cHyphenMinusGreaterThanSignKeyword_0; } //"<-" public Keyword getLessThanSignHyphenMinusKeyword_1() { return cLessThanSignHyphenMinusKeyword_1; } //"~>" public Keyword getTildeGreaterThanSignKeyword_2() { return cTildeGreaterThanSignKeyword_2; } //"<~" public Keyword getLessThanSignTildeKeyword_3() { return cLessThanSignTildeKeyword_3; } } public class RelationshipExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RelationshipExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cResourceExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cRelationshipExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameEdgeOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprResourceExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //RelationshipExpression returns pp::Expression: // ResourceExpression ({pp::RelationshipExpression.leftExpr=current} opName=EdgeOperator rightExpr=ResourceExpression)*; public ParserRule getRule() { return rule; } //ResourceExpression ({pp::RelationshipExpression.leftExpr=current} opName=EdgeOperator rightExpr=ResourceExpression)* public Group getGroup() { return cGroup; } //ResourceExpression public RuleCall getResourceExpressionParserRuleCall_0() { return cResourceExpressionParserRuleCall_0; } //({pp::RelationshipExpression.leftExpr=current} opName=EdgeOperator rightExpr=ResourceExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::RelationshipExpression.leftExpr=current} public Action getRelationshipExpressionLeftExprAction_1_0() { return cRelationshipExpressionLeftExprAction_1_0; } //opName=EdgeOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //EdgeOperator public RuleCall getOpNameEdgeOperatorParserRuleCall_1_1_0() { return cOpNameEdgeOperatorParserRuleCall_1_1_0; } //rightExpr=ResourceExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //ResourceExpression public RuleCall getRightExprResourceExpressionParserRuleCall_1_2_0() { return cRightExprResourceExpressionParserRuleCall_1_2_0; } } public class ResourceExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ResourceExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); private final RuleCall cAssignmentExpressionParserRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0); private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); private final Action cResourceExpressionResourceExprAction_0_1_0 = (Action)cGroup_0_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_0_1_1 = (Keyword)cGroup_0_1.eContents().get(1); private final Group cGroup_0_1_2 = (Group)cGroup_0_1.eContents().get(2); private final Assignment cResourceDataAssignment_0_1_2_0 = (Assignment)cGroup_0_1_2.eContents().get(0); private final RuleCall cResourceDataResourceBodyParserRuleCall_0_1_2_0_0 = (RuleCall)cResourceDataAssignment_0_1_2_0.eContents().get(0); private final Group cGroup_0_1_2_1 = (Group)cGroup_0_1_2.eContents().get(1); private final Keyword cSemicolonKeyword_0_1_2_1_0 = (Keyword)cGroup_0_1_2_1.eContents().get(0); private final Assignment cResourceDataAssignment_0_1_2_1_1 = (Assignment)cGroup_0_1_2_1.eContents().get(1); private final RuleCall cResourceDataResourceBodyParserRuleCall_0_1_2_1_1_0 = (RuleCall)cResourceDataAssignment_0_1_2_1_1.eContents().get(0); private final Keyword cSemicolonKeyword_0_1_2_2 = (Keyword)cGroup_0_1_2.eContents().get(2); private final Keyword cRightCurlyBracketKeyword_0_1_3 = (Keyword)cGroup_0_1.eContents().get(3); private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); private final Action cResourceExpressionAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cResourceExprAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cResourceExprLiteralClassParserRuleCall_1_1_0 = (RuleCall)cResourceExprAssignment_1_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); private final Assignment cResourceDataAssignment_1_3_0 = (Assignment)cGroup_1_3.eContents().get(0); private final RuleCall cResourceDataResourceBodyParserRuleCall_1_3_0_0 = (RuleCall)cResourceDataAssignment_1_3_0.eContents().get(0); private final Group cGroup_1_3_1 = (Group)cGroup_1_3.eContents().get(1); private final Keyword cSemicolonKeyword_1_3_1_0 = (Keyword)cGroup_1_3_1.eContents().get(0); private final Assignment cResourceDataAssignment_1_3_1_1 = (Assignment)cGroup_1_3_1.eContents().get(1); private final RuleCall cResourceDataResourceBodyParserRuleCall_1_3_1_1_0 = (RuleCall)cResourceDataAssignment_1_3_1_1.eContents().get(0); private final Keyword cSemicolonKeyword_1_3_2 = (Keyword)cGroup_1_3.eContents().get(2); private final Keyword cRightCurlyBracketKeyword_1_4 = (Keyword)cGroup_1.eContents().get(4); //// -- ResourceExpression //// handles: //// - resource definition 'name {' //// - defaults for resource definitions 'Name {' //// - resource overrides 'expr [exprlist] {' //// - virtual and exported resources @name {, and @@name { //// The parser makes no distinction between these and allows nested expresions compatible with all three //// VALIDATION checks: //// - if resourceClass != CLASS_REF, then ResourceBodies must have a name //// - if resourceClass == CLASS_REF or AtExpression, //// then only one ResourceBody is allowed, and ResourceBody can not have a name //// - if resourceExpr = AtExpression the ResourceBody's attribute list may contain additions, otherwise not //// //ResourceExpression returns pp::Expression: // AssignmentExpression ({pp::ResourceExpression.resourceExpr=current} "{" (resourceData+=ResourceBody (";" // resourceData+=ResourceBody)* ";"?)? "}")? | {pp::ResourceExpression} resourceExpr=LiteralClass "{" // (resourceData+=ResourceBody (";" resourceData+=ResourceBody)* ";"?)? "}"; public ParserRule getRule() { return rule; } //AssignmentExpression ({pp::ResourceExpression.resourceExpr=current} "{" (resourceData+=ResourceBody (";" //resourceData+=ResourceBody)* ";"?)? "}")? | {pp::ResourceExpression} resourceExpr=LiteralClass "{" //(resourceData+=ResourceBody (";" resourceData+=ResourceBody)* ";"?)? "}" public Alternatives getAlternatives() { return cAlternatives; } //AssignmentExpression ({pp::ResourceExpression.resourceExpr=current} "{" (resourceData+=ResourceBody (";" //resourceData+=ResourceBody)* ";"?)? "}")? public Group getGroup_0() { return cGroup_0; } //AssignmentExpression public RuleCall getAssignmentExpressionParserRuleCall_0_0() { return cAssignmentExpressionParserRuleCall_0_0; } //({pp::ResourceExpression.resourceExpr=current} "{" (resourceData+=ResourceBody (";" resourceData+=ResourceBody)* ";"?)? //"}")? public Group getGroup_0_1() { return cGroup_0_1; } //{pp::ResourceExpression.resourceExpr=current} public Action getResourceExpressionResourceExprAction_0_1_0() { return cResourceExpressionResourceExprAction_0_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_0_1_1() { return cLeftCurlyBracketKeyword_0_1_1; } //(resourceData+=ResourceBody (";" resourceData+=ResourceBody)* ";"?)? public Group getGroup_0_1_2() { return cGroup_0_1_2; } //resourceData+=ResourceBody public Assignment getResourceDataAssignment_0_1_2_0() { return cResourceDataAssignment_0_1_2_0; } //ResourceBody public RuleCall getResourceDataResourceBodyParserRuleCall_0_1_2_0_0() { return cResourceDataResourceBodyParserRuleCall_0_1_2_0_0; } //(";" resourceData+=ResourceBody)* public Group getGroup_0_1_2_1() { return cGroup_0_1_2_1; } //";" public Keyword getSemicolonKeyword_0_1_2_1_0() { return cSemicolonKeyword_0_1_2_1_0; } //resourceData+=ResourceBody public Assignment getResourceDataAssignment_0_1_2_1_1() { return cResourceDataAssignment_0_1_2_1_1; } //ResourceBody public RuleCall getResourceDataResourceBodyParserRuleCall_0_1_2_1_1_0() { return cResourceDataResourceBodyParserRuleCall_0_1_2_1_1_0; } //";"? public Keyword getSemicolonKeyword_0_1_2_2() { return cSemicolonKeyword_0_1_2_2; } //"}" public Keyword getRightCurlyBracketKeyword_0_1_3() { return cRightCurlyBracketKeyword_0_1_3; } //{pp::ResourceExpression} resourceExpr=LiteralClass "{" (resourceData+=ResourceBody (";" resourceData+=ResourceBody)* //";"?)? "}" public Group getGroup_1() { return cGroup_1; } //{pp::ResourceExpression} public Action getResourceExpressionAction_1_0() { return cResourceExpressionAction_1_0; } //resourceExpr=LiteralClass public Assignment getResourceExprAssignment_1_1() { return cResourceExprAssignment_1_1; } //LiteralClass public RuleCall getResourceExprLiteralClassParserRuleCall_1_1_0() { return cResourceExprLiteralClassParserRuleCall_1_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_1_2() { return cLeftCurlyBracketKeyword_1_2; } //(resourceData+=ResourceBody (";" resourceData+=ResourceBody)* ";"?)? public Group getGroup_1_3() { return cGroup_1_3; } //resourceData+=ResourceBody public Assignment getResourceDataAssignment_1_3_0() { return cResourceDataAssignment_1_3_0; } //ResourceBody public RuleCall getResourceDataResourceBodyParserRuleCall_1_3_0_0() { return cResourceDataResourceBodyParserRuleCall_1_3_0_0; } //(";" resourceData+=ResourceBody)* public Group getGroup_1_3_1() { return cGroup_1_3_1; } //";" public Keyword getSemicolonKeyword_1_3_1_0() { return cSemicolonKeyword_1_3_1_0; } //resourceData+=ResourceBody public Assignment getResourceDataAssignment_1_3_1_1() { return cResourceDataAssignment_1_3_1_1; } //ResourceBody public RuleCall getResourceDataResourceBodyParserRuleCall_1_3_1_1_0() { return cResourceDataResourceBodyParserRuleCall_1_3_1_1_0; } //";"? public Keyword getSemicolonKeyword_1_3_2() { return cSemicolonKeyword_1_3_2; } //"}" public Keyword getRightCurlyBracketKeyword_1_4() { return cRightCurlyBracketKeyword_1_4; } } public class ResourceBodyElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ResourceBody"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); private final Assignment cNameExprAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0); private final RuleCall cNameExprExpressionParserRuleCall_0_0_0 = (RuleCall)cNameExprAssignment_0_0.eContents().get(0); private final Keyword cColonKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); private final Assignment cAttributesAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2); private final RuleCall cAttributesAttributeOperationsParserRuleCall_0_2_0 = (RuleCall)cAttributesAssignment_0_2.eContents().get(0); private final Assignment cAttributesAssignment_1 = (Assignment)cAlternatives.eContents().get(1); private final RuleCall cAttributesAttributeOperationsParserRuleCall_1_0 = (RuleCall)cAttributesAssignment_1.eContents().get(0); //// Note: allows all AttributeOperation subtypes but this depends on the parent's type //// VALIDATION checks allowed types //ResourceBody returns pp::ResourceBody: // nameExpr=Expression ":" attributes=AttributeOperations? | attributes=AttributeOperations; public ParserRule getRule() { return rule; } //nameExpr=Expression ":" attributes=AttributeOperations? | attributes=AttributeOperations public Alternatives getAlternatives() { return cAlternatives; } //nameExpr=Expression ":" attributes=AttributeOperations? public Group getGroup_0() { return cGroup_0; } //nameExpr=Expression public Assignment getNameExprAssignment_0_0() { return cNameExprAssignment_0_0; } //Expression public RuleCall getNameExprExpressionParserRuleCall_0_0_0() { return cNameExprExpressionParserRuleCall_0_0_0; } //":" public Keyword getColonKeyword_0_1() { return cColonKeyword_0_1; } //attributes=AttributeOperations? public Assignment getAttributesAssignment_0_2() { return cAttributesAssignment_0_2; } //AttributeOperations public RuleCall getAttributesAttributeOperationsParserRuleCall_0_2_0() { return cAttributesAttributeOperationsParserRuleCall_0_2_0; } //attributes=AttributeOperations public Assignment getAttributesAssignment_1() { return cAttributesAssignment_1; } //AttributeOperations public RuleCall getAttributesAttributeOperationsParserRuleCall_1_0() { return cAttributesAttributeOperationsParserRuleCall_1_0; } } public class AttributeOperationElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AttributeOperation"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cAttributeOperationAction_0 = (Action)cGroup.eContents().get(0); private final Assignment cKeyAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cKeyAttributeNameParserRuleCall_1_0 = (RuleCall)cKeyAssignment_1.eContents().get(0); private final Group cGroup_2 = (Group)cGroup.eContents().get(2); private final Assignment cOpAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); private final Alternatives cOpAlternatives_2_0_0 = (Alternatives)cOpAssignment_2_0.eContents().get(0); private final Keyword cOpEqualsSignGreaterThanSignKeyword_2_0_0_0 = (Keyword)cOpAlternatives_2_0_0.eContents().get(0); private final Keyword cOpPlusSignGreaterThanSignKeyword_2_0_0_1 = (Keyword)cOpAlternatives_2_0_0.eContents().get(1); private final Assignment cValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); private final RuleCall cValueExpressionParserRuleCall_2_1_0 = (RuleCall)cValueAssignment_2_1.eContents().get(0); //// VALIDATION: key is a NAME, op is supported and Expression is not null //// CONTENT ASSIST: must have op and value as optional, or state is nearly always wrong for CA. //AttributeOperation returns pp::AttributeOperation: // {pp::AttributeOperation} key=attributeName (op=("=>" | "+>") value=Expression)?; public ParserRule getRule() { return rule; } //{pp::AttributeOperation} key=attributeName (op=("=>" | "+>") value=Expression)? public Group getGroup() { return cGroup; } //{pp::AttributeOperation} public Action getAttributeOperationAction_0() { return cAttributeOperationAction_0; } //key=attributeName public Assignment getKeyAssignment_1() { return cKeyAssignment_1; } //attributeName public RuleCall getKeyAttributeNameParserRuleCall_1_0() { return cKeyAttributeNameParserRuleCall_1_0; } //(op=("=>" | "+>") value=Expression)? public Group getGroup_2() { return cGroup_2; } //op=("=>" | "+>") public Assignment getOpAssignment_2_0() { return cOpAssignment_2_0; } //"=>" | "+>" public Alternatives getOpAlternatives_2_0_0() { return cOpAlternatives_2_0_0; } //"=>" public Keyword getOpEqualsSignGreaterThanSignKeyword_2_0_0_0() { return cOpEqualsSignGreaterThanSignKeyword_2_0_0_0; } //"+>" public Keyword getOpPlusSignGreaterThanSignKeyword_2_0_0_1() { return cOpPlusSignGreaterThanSignKeyword_2_0_0_1; } //value=Expression public Assignment getValueAssignment_2_1() { return cValueAssignment_2_1; } //Expression public RuleCall getValueExpressionParserRuleCall_2_1_0() { return cValueExpressionParserRuleCall_2_1_0; } } public class AttributeOperationsElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AttributeOperations"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cAttributesAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cAttributesAttributeOperationParserRuleCall_0_0 = (RuleCall)cAttributesAssignment_0.eContents().get(0); private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); private final Keyword cCommaKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0); private final Assignment cAttributesAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1); private final RuleCall cAttributesAttributeOperationParserRuleCall_1_0_1_0 = (RuleCall)cAttributesAssignment_1_0_1.eContents().get(0); private final Assignment cAttributesAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); private final RuleCall cAttributesAttributeOperationParserRuleCall_1_1_0 = (RuleCall)cAttributesAssignment_1_1.eContents().get(0); private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2); //// VALIDATION: checks that there are ',' between operations //// NOTE: if ',' is mandatory in grammar, backtracking will think statement is a different (faulty) //// statement. //AttributeOperations returns pp::AttributeOperations: // attributes+=AttributeOperation ("," attributes+=AttributeOperation | attributes+=AttributeOperation)* ","?; public ParserRule getRule() { return rule; } //attributes+=AttributeOperation ("," attributes+=AttributeOperation | attributes+=AttributeOperation)* ","? public Group getGroup() { return cGroup; } //attributes+=AttributeOperation public Assignment getAttributesAssignment_0() { return cAttributesAssignment_0; } //AttributeOperation public RuleCall getAttributesAttributeOperationParserRuleCall_0_0() { return cAttributesAttributeOperationParserRuleCall_0_0; } //("," attributes+=AttributeOperation | attributes+=AttributeOperation)* public Alternatives getAlternatives_1() { return cAlternatives_1; } //"," attributes+=AttributeOperation public Group getGroup_1_0() { return cGroup_1_0; } //"," public Keyword getCommaKeyword_1_0_0() { return cCommaKeyword_1_0_0; } //attributes+=AttributeOperation public Assignment getAttributesAssignment_1_0_1() { return cAttributesAssignment_1_0_1; } //AttributeOperation public RuleCall getAttributesAttributeOperationParserRuleCall_1_0_1_0() { return cAttributesAttributeOperationParserRuleCall_1_0_1_0; } //attributes+=AttributeOperation public Assignment getAttributesAssignment_1_1() { return cAttributesAssignment_1_1; } //AttributeOperation public RuleCall getAttributesAttributeOperationParserRuleCall_1_1_0() { return cAttributesAttributeOperationParserRuleCall_1_1_0; } //","? public Keyword getCommaKeyword_2() { return cCommaKeyword_2; } } public class AssignmentExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AssignmentExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cAppendExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cAssignmentExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cEqualsSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprAppendExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); /// * // NOTE: This construct is required due to an Xtext bug, it would be preferred to state (',' )? directly //// in rules using endComma as this makes formatting work ok. The construct below will hide the and //// formatting needs to be aware of the in an endComma. //endComma : ',' ; // * // * / // VALIDATION checks leftExpr must be '@' or Variable //AssignmentExpression returns pp::Expression: // AppendExpression ({pp::AssignmentExpression.leftExpr=current} "=" rightExpr=AppendExpression)?; public ParserRule getRule() { return rule; } //AppendExpression ({pp::AssignmentExpression.leftExpr=current} "=" rightExpr=AppendExpression)? public Group getGroup() { return cGroup; } //AppendExpression public RuleCall getAppendExpressionParserRuleCall_0() { return cAppendExpressionParserRuleCall_0; } //({pp::AssignmentExpression.leftExpr=current} "=" rightExpr=AppendExpression)? public Group getGroup_1() { return cGroup_1; } //{pp::AssignmentExpression.leftExpr=current} public Action getAssignmentExpressionLeftExprAction_1_0() { return cAssignmentExpressionLeftExprAction_1_0; } //"=" public Keyword getEqualsSignKeyword_1_1() { return cEqualsSignKeyword_1_1; } //rightExpr=AppendExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //AppendExpression public RuleCall getRightExprAppendExpressionParserRuleCall_1_2_0() { return cRightExprAppendExpressionParserRuleCall_1_2_0; } } public class AppendExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AppendExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cOrExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cAppendExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cPlusSignEqualsSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprOrExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //// VALIDATION checks leftExpr must be Variable (does not seem to allow append to at - e.g. a[1] +=) //AppendExpression returns pp::Expression: // OrExpression ({pp::AppendExpression.leftExpr=current} "+=" rightExpr=OrExpression)?; public ParserRule getRule() { return rule; } //OrExpression ({pp::AppendExpression.leftExpr=current} "+=" rightExpr=OrExpression)? public Group getGroup() { return cGroup; } //OrExpression public RuleCall getOrExpressionParserRuleCall_0() { return cOrExpressionParserRuleCall_0; } //({pp::AppendExpression.leftExpr=current} "+=" rightExpr=OrExpression)? public Group getGroup_1() { return cGroup_1; } //{pp::AppendExpression.leftExpr=current} public Action getAppendExpressionLeftExprAction_1_0() { return cAppendExpressionLeftExprAction_1_0; } //"+=" public Keyword getPlusSignEqualsSignKeyword_1_1() { return cPlusSignEqualsSignKeyword_1_1; } //rightExpr=OrExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //OrExpression public RuleCall getRightExprOrExpressionParserRuleCall_1_2_0() { return cRightExprOrExpressionParserRuleCall_1_2_0; } } public class OrExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "OrExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cAndExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cOrExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cOrKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprAndExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //OrExpression returns pp::Expression: // AndExpression ({pp::OrExpression.leftExpr=current} "or" rightExpr=AndExpression)*; public ParserRule getRule() { return rule; } //AndExpression ({pp::OrExpression.leftExpr=current} "or" rightExpr=AndExpression)* public Group getGroup() { return cGroup; } //AndExpression public RuleCall getAndExpressionParserRuleCall_0() { return cAndExpressionParserRuleCall_0; } //({pp::OrExpression.leftExpr=current} "or" rightExpr=AndExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::OrExpression.leftExpr=current} public Action getOrExpressionLeftExprAction_1_0() { return cOrExpressionLeftExprAction_1_0; } //"or" public Keyword getOrKeyword_1_1() { return cOrKeyword_1_1; } //rightExpr=AndExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //AndExpression public RuleCall getRightExprAndExpressionParserRuleCall_1_2_0() { return cRightExprAndExpressionParserRuleCall_1_2_0; } } public class AndExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AndExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cRelationalExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cAndExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cAndKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprRelationalExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //AndExpression returns pp::Expression: // RelationalExpression ({pp::AndExpression.leftExpr=current} "and" rightExpr=RelationalExpression)*; public ParserRule getRule() { return rule; } //RelationalExpression ({pp::AndExpression.leftExpr=current} "and" rightExpr=RelationalExpression)* public Group getGroup() { return cGroup; } //RelationalExpression public RuleCall getRelationalExpressionParserRuleCall_0() { return cRelationalExpressionParserRuleCall_0; } //({pp::AndExpression.leftExpr=current} "and" rightExpr=RelationalExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::AndExpression.leftExpr=current} public Action getAndExpressionLeftExprAction_1_0() { return cAndExpressionLeftExprAction_1_0; } //"and" public Keyword getAndKeyword_1_1() { return cAndKeyword_1_1; } //rightExpr=RelationalExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //RelationalExpression public RuleCall getRightExprRelationalExpressionParserRuleCall_1_2_0() { return cRightExprRelationalExpressionParserRuleCall_1_2_0; } } public class RelationalOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RelationalOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cGreaterThanSignEqualsSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cLessThanSignEqualsSignKeyword_1 = (Keyword)cAlternatives.eContents().get(1); private final Keyword cGreaterThanSignKeyword_2 = (Keyword)cAlternatives.eContents().get(2); private final Keyword cLessThanSignKeyword_3 = (Keyword)cAlternatives.eContents().get(3); //RelationalOperator: // ">=" | "<=" | ">" | "<"; public ParserRule getRule() { return rule; } //">=" | "<=" | ">" | "<" public Alternatives getAlternatives() { return cAlternatives; } //">=" public Keyword getGreaterThanSignEqualsSignKeyword_0() { return cGreaterThanSignEqualsSignKeyword_0; } //"<=" public Keyword getLessThanSignEqualsSignKeyword_1() { return cLessThanSignEqualsSignKeyword_1; } //">" public Keyword getGreaterThanSignKeyword_2() { return cGreaterThanSignKeyword_2; } //"<" public Keyword getLessThanSignKeyword_3() { return cLessThanSignKeyword_3; } } public class RelationalExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RelationalExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cEqualityExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cRelationalExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameRelationalOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprEqualityExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //RelationalExpression returns pp::Expression: // EqualityExpression ({pp::RelationalExpression.leftExpr=current} opName=RelationalOperator // rightExpr=EqualityExpression)*; public ParserRule getRule() { return rule; } //EqualityExpression ({pp::RelationalExpression.leftExpr=current} opName=RelationalOperator rightExpr=EqualityExpression)* public Group getGroup() { return cGroup; } //EqualityExpression public RuleCall getEqualityExpressionParserRuleCall_0() { return cEqualityExpressionParserRuleCall_0; } //({pp::RelationalExpression.leftExpr=current} opName=RelationalOperator rightExpr=EqualityExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::RelationalExpression.leftExpr=current} public Action getRelationalExpressionLeftExprAction_1_0() { return cRelationalExpressionLeftExprAction_1_0; } //opName=RelationalOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //RelationalOperator public RuleCall getOpNameRelationalOperatorParserRuleCall_1_1_0() { return cOpNameRelationalOperatorParserRuleCall_1_1_0; } //rightExpr=EqualityExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //EqualityExpression public RuleCall getRightExprEqualityExpressionParserRuleCall_1_2_0() { return cRightExprEqualityExpressionParserRuleCall_1_2_0; } } public class EqualityOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EqualityOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cEqualsSignEqualsSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cExclamationMarkEqualsSignKeyword_1 = (Keyword)cAlternatives.eContents().get(1); //EqualityOperator: // "==" | "!="; public ParserRule getRule() { return rule; } //"==" | "!=" public Alternatives getAlternatives() { return cAlternatives; } //"==" public Keyword getEqualsSignEqualsSignKeyword_0() { return cEqualsSignEqualsSignKeyword_0; } //"!=" public Keyword getExclamationMarkEqualsSignKeyword_1() { return cExclamationMarkEqualsSignKeyword_1; } } public class EqualityExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EqualityExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cShiftExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cEqualityExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameEqualityOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprShiftExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //EqualityExpression returns pp::Expression: // ShiftExpression ({pp::EqualityExpression.leftExpr=current} opName=EqualityOperator rightExpr=ShiftExpression)*; public ParserRule getRule() { return rule; } //ShiftExpression ({pp::EqualityExpression.leftExpr=current} opName=EqualityOperator rightExpr=ShiftExpression)* public Group getGroup() { return cGroup; } //ShiftExpression public RuleCall getShiftExpressionParserRuleCall_0() { return cShiftExpressionParserRuleCall_0; } //({pp::EqualityExpression.leftExpr=current} opName=EqualityOperator rightExpr=ShiftExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::EqualityExpression.leftExpr=current} public Action getEqualityExpressionLeftExprAction_1_0() { return cEqualityExpressionLeftExprAction_1_0; } //opName=EqualityOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //EqualityOperator public RuleCall getOpNameEqualityOperatorParserRuleCall_1_1_0() { return cOpNameEqualityOperatorParserRuleCall_1_1_0; } //rightExpr=ShiftExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //ShiftExpression public RuleCall getRightExprShiftExpressionParserRuleCall_1_2_0() { return cRightExprShiftExpressionParserRuleCall_1_2_0; } } public class ShiftOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ShiftOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cLessThanSignLessThanSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cGreaterThanSignGreaterThanSignKeyword_1 = (Keyword)cAlternatives.eContents().get(1); //ShiftOperator: // "<<" | ">>"; public ParserRule getRule() { return rule; } //"<<" | ">>" public Alternatives getAlternatives() { return cAlternatives; } //"<<" public Keyword getLessThanSignLessThanSignKeyword_0() { return cLessThanSignLessThanSignKeyword_0; } //">>" public Keyword getGreaterThanSignGreaterThanSignKeyword_1() { return cGreaterThanSignGreaterThanSignKeyword_1; } } public class ShiftExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ShiftExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cAdditiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cShiftExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameShiftOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //ShiftExpression returns pp::Expression: // AdditiveExpression ({pp::ShiftExpression.leftExpr=current} opName=ShiftOperator rightExpr=AdditiveExpression)*; public ParserRule getRule() { return rule; } //AdditiveExpression ({pp::ShiftExpression.leftExpr=current} opName=ShiftOperator rightExpr=AdditiveExpression)* public Group getGroup() { return cGroup; } //AdditiveExpression public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; } //({pp::ShiftExpression.leftExpr=current} opName=ShiftOperator rightExpr=AdditiveExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::ShiftExpression.leftExpr=current} public Action getShiftExpressionLeftExprAction_1_0() { return cShiftExpressionLeftExprAction_1_0; } //opName=ShiftOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //ShiftOperator public RuleCall getOpNameShiftOperatorParserRuleCall_1_1_0() { return cOpNameShiftOperatorParserRuleCall_1_1_0; } //rightExpr=AdditiveExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //AdditiveExpression public RuleCall getRightExprAdditiveExpressionParserRuleCall_1_2_0() { return cRightExprAdditiveExpressionParserRuleCall_1_2_0; } } public class AdditiveOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdditiveOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cPlusSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cHyphenMinusKeyword_1 = (Keyword)cAlternatives.eContents().get(1); //AdditiveOperator: // "+" | "-"; public ParserRule getRule() { return rule; } //"+" | "-" public Alternatives getAlternatives() { return cAlternatives; } //"+" public Keyword getPlusSignKeyword_0() { return cPlusSignKeyword_0; } //"-" public Keyword getHyphenMinusKeyword_1() { return cHyphenMinusKeyword_1; } } public class AdditiveExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdditiveExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cMultiplicativeExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cAdditiveExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameAdditiveOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprMultiplicativeExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //AdditiveExpression returns pp::Expression: // MultiplicativeExpression ({pp::AdditiveExpression.leftExpr=current} opName=AdditiveOperator // rightExpr=MultiplicativeExpression)*; public ParserRule getRule() { return rule; } //MultiplicativeExpression ({pp::AdditiveExpression.leftExpr=current} opName=AdditiveOperator //rightExpr=MultiplicativeExpression)* public Group getGroup() { return cGroup; } //MultiplicativeExpression public RuleCall getMultiplicativeExpressionParserRuleCall_0() { return cMultiplicativeExpressionParserRuleCall_0; } //({pp::AdditiveExpression.leftExpr=current} opName=AdditiveOperator rightExpr=MultiplicativeExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::AdditiveExpression.leftExpr=current} public Action getAdditiveExpressionLeftExprAction_1_0() { return cAdditiveExpressionLeftExprAction_1_0; } //opName=AdditiveOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //AdditiveOperator public RuleCall getOpNameAdditiveOperatorParserRuleCall_1_1_0() { return cOpNameAdditiveOperatorParserRuleCall_1_1_0; } //rightExpr=MultiplicativeExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //MultiplicativeExpression public RuleCall getRightExprMultiplicativeExpressionParserRuleCall_1_2_0() { return cRightExprMultiplicativeExpressionParserRuleCall_1_2_0; } } public class MultiplicativeOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MultiplicativeOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cAsteriskKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cSolidusKeyword_1 = (Keyword)cAlternatives.eContents().get(1); private final Keyword cPercentSignKeyword_2 = (Keyword)cAlternatives.eContents().get(2); //// '%' added in Puppet 3.2. Validated in older versions //MultiplicativeOperator: // "*" | "/" | "%"; public ParserRule getRule() { return rule; } //"*" | "/" | "%" public Alternatives getAlternatives() { return cAlternatives; } //"*" public Keyword getAsteriskKeyword_0() { return cAsteriskKeyword_0; } //"/" public Keyword getSolidusKeyword_1() { return cSolidusKeyword_1; } //"%" public Keyword getPercentSignKeyword_2() { return cPercentSignKeyword_2; } } public class MultiplicativeExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MultiplicativeExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cMatchingExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cMultiplicativeExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameMultiplicativeOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprMatchingExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //MultiplicativeExpression returns pp::Expression: // MatchingExpression ({pp::MultiplicativeExpression.leftExpr=current} opName=MultiplicativeOperator // rightExpr=MatchingExpression)*; public ParserRule getRule() { return rule; } //MatchingExpression ({pp::MultiplicativeExpression.leftExpr=current} opName=MultiplicativeOperator //rightExpr=MatchingExpression)* public Group getGroup() { return cGroup; } //MatchingExpression public RuleCall getMatchingExpressionParserRuleCall_0() { return cMatchingExpressionParserRuleCall_0; } //({pp::MultiplicativeExpression.leftExpr=current} opName=MultiplicativeOperator rightExpr=MatchingExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::MultiplicativeExpression.leftExpr=current} public Action getMultiplicativeExpressionLeftExprAction_1_0() { return cMultiplicativeExpressionLeftExprAction_1_0; } //opName=MultiplicativeOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //MultiplicativeOperator public RuleCall getOpNameMultiplicativeOperatorParserRuleCall_1_1_0() { return cOpNameMultiplicativeOperatorParserRuleCall_1_1_0; } //rightExpr=MatchingExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //MatchingExpression public RuleCall getRightExprMatchingExpressionParserRuleCall_1_2_0() { return cRightExprMatchingExpressionParserRuleCall_1_2_0; } } public class MatchingOperatorElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MatchingOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cEqualsSignTildeKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cExclamationMarkTildeKeyword_1 = (Keyword)cAlternatives.eContents().get(1); //// VALIDATION checks regex rhs //MatchingOperator: // "=~" | "!~"; public ParserRule getRule() { return rule; } //"=~" | "!~" public Alternatives getAlternatives() { return cAlternatives; } //"=~" public Keyword getEqualsSignTildeKeyword_0() { return cEqualsSignTildeKeyword_0; } //"!~" public Keyword getExclamationMarkTildeKeyword_1() { return cExclamationMarkTildeKeyword_1; } } public class MatchingExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MatchingExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cInExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cMatchingExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cOpNameMatchingOperatorParserRuleCall_1_1_0 = (RuleCall)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprLiteralRegexParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //MatchingExpression returns pp::Expression: // InExpression ({pp::MatchingExpression.leftExpr=current} opName=MatchingOperator rightExpr=LiteralRegex)*; public ParserRule getRule() { return rule; } //InExpression ({pp::MatchingExpression.leftExpr=current} opName=MatchingOperator rightExpr=LiteralRegex)* public Group getGroup() { return cGroup; } //InExpression public RuleCall getInExpressionParserRuleCall_0() { return cInExpressionParserRuleCall_0; } //({pp::MatchingExpression.leftExpr=current} opName=MatchingOperator rightExpr=LiteralRegex)* public Group getGroup_1() { return cGroup_1; } //{pp::MatchingExpression.leftExpr=current} public Action getMatchingExpressionLeftExprAction_1_0() { return cMatchingExpressionLeftExprAction_1_0; } //opName=MatchingOperator public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //MatchingOperator public RuleCall getOpNameMatchingOperatorParserRuleCall_1_1_0() { return cOpNameMatchingOperatorParserRuleCall_1_1_0; } //rightExpr=LiteralRegex public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //LiteralRegex public RuleCall getRightExprLiteralRegexParserRuleCall_1_2_0() { return cRightExprLiteralRegexParserRuleCall_1_2_0; } } public class InExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cUnaryOrHigherExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cInExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cOpNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final Keyword cOpNameInKeyword_1_1_0 = (Keyword)cOpNameAssignment_1_1.eContents().get(0); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprUnaryOrHigherExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //InExpression returns pp::Expression: // UnaryOrHigherExpression ({pp::InExpression.leftExpr=current} opName="in" rightExpr=UnaryOrHigherExpression)*; public ParserRule getRule() { return rule; } //UnaryOrHigherExpression ({pp::InExpression.leftExpr=current} opName="in" rightExpr=UnaryOrHigherExpression)* public Group getGroup() { return cGroup; } //UnaryOrHigherExpression public RuleCall getUnaryOrHigherExpressionParserRuleCall_0() { return cUnaryOrHigherExpressionParserRuleCall_0; } //({pp::InExpression.leftExpr=current} opName="in" rightExpr=UnaryOrHigherExpression)* public Group getGroup_1() { return cGroup_1; } //{pp::InExpression.leftExpr=current} public Action getInExpressionLeftExprAction_1_0() { return cInExpressionLeftExprAction_1_0; } //opName="in" public Assignment getOpNameAssignment_1_1() { return cOpNameAssignment_1_1; } //"in" public Keyword getOpNameInKeyword_1_1_0() { return cOpNameInKeyword_1_1_0; } //rightExpr=UnaryOrHigherExpression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //UnaryOrHigherExpression public RuleCall getRightExprUnaryOrHigherExpressionParserRuleCall_1_2_0() { return cRightExprUnaryOrHigherExpressionParserRuleCall_1_2_0; } } public class UnaryOrHigherExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnaryOrHigherExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cUnaryMinusExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cNotExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cCollectExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); //UnaryOrHigherExpression returns pp::Expression: // UnaryMinusExpression | NotExpression | CollectExpression; public ParserRule getRule() { return rule; } //UnaryMinusExpression | NotExpression | CollectExpression public Alternatives getAlternatives() { return cAlternatives; } //UnaryMinusExpression public RuleCall getUnaryMinusExpressionParserRuleCall_0() { return cUnaryMinusExpressionParserRuleCall_0; } //NotExpression public RuleCall getNotExpressionParserRuleCall_1() { return cNotExpressionParserRuleCall_1; } //CollectExpression public RuleCall getCollectExpressionParserRuleCall_2() { return cCollectExpressionParserRuleCall_2; } } public class UnaryMinusExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnaryMinusExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cExprCollectExpressionParserRuleCall_1_0 = (RuleCall)cExprAssignment_1.eContents().get(0); //UnaryMinusExpression returns pp::UnaryMinusExpression: // "-" expr=CollectExpression; public ParserRule getRule() { return rule; } //"-" expr=CollectExpression public Group getGroup() { return cGroup; } //"-" public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; } //expr=CollectExpression public Assignment getExprAssignment_1() { return cExprAssignment_1; } //CollectExpression public RuleCall getExprCollectExpressionParserRuleCall_1_0() { return cExprCollectExpressionParserRuleCall_1_0; } } public class NotExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NotExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cExclamationMarkKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cExprCollectExpressionParserRuleCall_1_0 = (RuleCall)cExprAssignment_1.eContents().get(0); //NotExpression returns pp::UnaryNotExpression: // "!" expr=CollectExpression; public ParserRule getRule() { return rule; } //"!" expr=CollectExpression public Group getGroup() { return cGroup; } //"!" public Keyword getExclamationMarkKeyword_0() { return cExclamationMarkKeyword_0; } //expr=CollectExpression public Assignment getExprAssignment_1() { return cExprAssignment_1; } //CollectExpression public RuleCall getExprCollectExpressionParserRuleCall_1_0() { return cExprCollectExpressionParserRuleCall_1_0; } } public class CollectExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CollectExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cSelectorExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cCollectExpressionClassReferenceAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Assignment cQueryAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cQueryCollectQueryParserRuleCall_1_1_0 = (RuleCall)cQueryAssignment_1_1.eContents().get(0); private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); private final Keyword cLeftCurlyBracketKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0); private final Assignment cAttributesAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1); private final RuleCall cAttributesAttributeOperationsParserRuleCall_1_2_1_0 = (RuleCall)cAttributesAssignment_1_2_1.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_1_2_2 = (Keyword)cGroup_1_2.eContents().get(2); //// VALIDATION checks that CollectExpression classReference is a ClassReference, and that query expressions //// conform to a limit set of supported expressions. //CollectExpression returns pp::Expression: // SelectorExpression ({pp::CollectExpression.classReference=current} query=CollectQuery ("{" // attributes=AttributeOperations? "}")?)?; public ParserRule getRule() { return rule; } //SelectorExpression ({pp::CollectExpression.classReference=current} query=CollectQuery ("{" //attributes=AttributeOperations? "}")?)? public Group getGroup() { return cGroup; } //SelectorExpression public RuleCall getSelectorExpressionParserRuleCall_0() { return cSelectorExpressionParserRuleCall_0; } //({pp::CollectExpression.classReference=current} query=CollectQuery ("{" attributes=AttributeOperations? "}")?)? public Group getGroup_1() { return cGroup_1; } //{pp::CollectExpression.classReference=current} public Action getCollectExpressionClassReferenceAction_1_0() { return cCollectExpressionClassReferenceAction_1_0; } //query=CollectQuery public Assignment getQueryAssignment_1_1() { return cQueryAssignment_1_1; } //CollectQuery public RuleCall getQueryCollectQueryParserRuleCall_1_1_0() { return cQueryCollectQueryParserRuleCall_1_1_0; } //("{" attributes=AttributeOperations? "}")? public Group getGroup_1_2() { return cGroup_1_2; } //"{" public Keyword getLeftCurlyBracketKeyword_1_2_0() { return cLeftCurlyBracketKeyword_1_2_0; } //attributes=AttributeOperations? public Assignment getAttributesAssignment_1_2_1() { return cAttributesAssignment_1_2_1; } //AttributeOperations public RuleCall getAttributesAttributeOperationsParserRuleCall_1_2_1_0() { return cAttributesAttributeOperationsParserRuleCall_1_2_1_0; } //"}" public Keyword getRightCurlyBracketKeyword_1_2_2() { return cRightCurlyBracketKeyword_1_2_2; } } public class CollectQueryElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CollectQuery"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cVirtualCollectQueryParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cExportedCollectQueryParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //// VALIDATION ensures that query only contains: //// - ('and' | 'or' | VariableExpression | LiteralName | '==' | '!=' | ParentesisesExpression ) //CollectQuery returns pp::ICollectQuery: // VirtualCollectQuery | ExportedCollectQuery; public ParserRule getRule() { return rule; } //VirtualCollectQuery | ExportedCollectQuery public Alternatives getAlternatives() { return cAlternatives; } //VirtualCollectQuery public RuleCall getVirtualCollectQueryParserRuleCall_0() { return cVirtualCollectQueryParserRuleCall_0; } //ExportedCollectQuery public RuleCall getExportedCollectQueryParserRuleCall_1() { return cExportedCollectQueryParserRuleCall_1; } } public class VirtualCollectQueryElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "VirtualCollectQuery"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cVirtualCollectQueryAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLessThanSignVerticalLineKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cExprAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cExprExpressionParserRuleCall_2_0 = (RuleCall)cExprAssignment_2.eContents().get(0); private final Keyword cVerticalLineGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3); //VirtualCollectQuery returns pp::ICollectQuery: // {pp::VirtualCollectQuery} "<|" expr=Expression? "|>"; public ParserRule getRule() { return rule; } //{pp::VirtualCollectQuery} "<|" expr=Expression? "|>" public Group getGroup() { return cGroup; } //{pp::VirtualCollectQuery} public Action getVirtualCollectQueryAction_0() { return cVirtualCollectQueryAction_0; } //"<|" public Keyword getLessThanSignVerticalLineKeyword_1() { return cLessThanSignVerticalLineKeyword_1; } //expr=Expression? public Assignment getExprAssignment_2() { return cExprAssignment_2; } //Expression public RuleCall getExprExpressionParserRuleCall_2_0() { return cExprExpressionParserRuleCall_2_0; } //"|>" public Keyword getVerticalLineGreaterThanSignKeyword_3() { return cVerticalLineGreaterThanSignKeyword_3; } } public class ExportedCollectQueryElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ExportedCollectQuery"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cExportedCollectQueryAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLessThanSignLessThanSignVerticalLineKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cExprAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cExprExpressionParserRuleCall_2_0 = (RuleCall)cExprAssignment_2.eContents().get(0); private final Keyword cVerticalLineGreaterThanSignGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3); //ExportedCollectQuery returns pp::ICollectQuery: // {pp::ExportedCollectQuery} "<<|" expr=Expression? "|>>"; public ParserRule getRule() { return rule; } //{pp::ExportedCollectQuery} "<<|" expr=Expression? "|>>" public Group getGroup() { return cGroup; } //{pp::ExportedCollectQuery} public Action getExportedCollectQueryAction_0() { return cExportedCollectQueryAction_0; } //"<<|" public Keyword getLessThanSignLessThanSignVerticalLineKeyword_1() { return cLessThanSignLessThanSignVerticalLineKeyword_1; } //expr=Expression? public Assignment getExprAssignment_2() { return cExprAssignment_2; } //Expression public RuleCall getExprExpressionParserRuleCall_2_0() { return cExprExpressionParserRuleCall_2_0; } //"|>>" public Keyword getVerticalLineGreaterThanSignGreaterThanSignKeyword_3() { return cVerticalLineGreaterThanSignGreaterThanSignKeyword_3; } } public class SelectorExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SelectorExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cAtExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cSelectorExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cQuestionMarkKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Alternatives cAlternatives_1_2 = (Alternatives)cGroup_1.eContents().get(2); private final Group cGroup_1_2_0 = (Group)cAlternatives_1_2.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_1_2_0_0 = (Keyword)cGroup_1_2_0.eContents().get(0); private final Assignment cParametersAssignment_1_2_0_1 = (Assignment)cGroup_1_2_0.eContents().get(1); private final RuleCall cParametersSelectorEntryParserRuleCall_1_2_0_1_0 = (RuleCall)cParametersAssignment_1_2_0_1.eContents().get(0); private final Alternatives cAlternatives_1_2_0_2 = (Alternatives)cGroup_1_2_0.eContents().get(2); private final Group cGroup_1_2_0_2_0 = (Group)cAlternatives_1_2_0_2.eContents().get(0); private final Keyword cCommaKeyword_1_2_0_2_0_0 = (Keyword)cGroup_1_2_0_2_0.eContents().get(0); private final Assignment cParametersAssignment_1_2_0_2_0_1 = (Assignment)cGroup_1_2_0_2_0.eContents().get(1); private final RuleCall cParametersSelectorEntryParserRuleCall_1_2_0_2_0_1_0 = (RuleCall)cParametersAssignment_1_2_0_2_0_1.eContents().get(0); private final Assignment cParametersAssignment_1_2_0_2_1 = (Assignment)cAlternatives_1_2_0_2.eContents().get(1); private final RuleCall cParametersSelectorEntryParserRuleCall_1_2_0_2_1_0 = (RuleCall)cParametersAssignment_1_2_0_2_1.eContents().get(0); private final Keyword cCommaKeyword_1_2_0_3 = (Keyword)cGroup_1_2_0.eContents().get(3); private final Keyword cRightCurlyBracketKeyword_1_2_0_4 = (Keyword)cGroup_1_2_0.eContents().get(4); private final Assignment cParametersAssignment_1_2_1 = (Assignment)cAlternatives_1_2.eContents().get(1); private final RuleCall cParametersSelectorEntryParserRuleCall_1_2_1_0 = (RuleCall)cParametersAssignment_1_2_1.eContents().get(0); //SelectorExpression returns pp::Expression: // AtExpression ({pp::SelectorExpression.leftExpr=current} "?" ("{" parameters+=SelectorEntry ("," // parameters+=SelectorEntry | parameters+=SelectorEntry)* ","? / * endcomma? * / "}" | parameters+=SelectorEntry))?; public ParserRule getRule() { return rule; } //AtExpression ({pp::SelectorExpression.leftExpr=current} "?" ("{" parameters+=SelectorEntry ("," //parameters+=SelectorEntry | parameters+=SelectorEntry)* ","? / * endcomma? * / "}" | parameters+=SelectorEntry))? public Group getGroup() { return cGroup; } //AtExpression public RuleCall getAtExpressionParserRuleCall_0() { return cAtExpressionParserRuleCall_0; } //({pp::SelectorExpression.leftExpr=current} "?" ("{" parameters+=SelectorEntry ("," parameters+=SelectorEntry | //parameters+=SelectorEntry)* ","? / * endcomma? * / "}" | parameters+=SelectorEntry))? public Group getGroup_1() { return cGroup_1; } //{pp::SelectorExpression.leftExpr=current} public Action getSelectorExpressionLeftExprAction_1_0() { return cSelectorExpressionLeftExprAction_1_0; } //"?" public Keyword getQuestionMarkKeyword_1_1() { return cQuestionMarkKeyword_1_1; } //"{" parameters+=SelectorEntry ("," parameters+=SelectorEntry | parameters+=SelectorEntry)* ","? / * endcomma? * / "}" | //parameters+=SelectorEntry public Alternatives getAlternatives_1_2() { return cAlternatives_1_2; } //"{" parameters+=SelectorEntry ("," parameters+=SelectorEntry | parameters+=SelectorEntry)* ","? / * endcomma? * / "}" public Group getGroup_1_2_0() { return cGroup_1_2_0; } //"{" public Keyword getLeftCurlyBracketKeyword_1_2_0_0() { return cLeftCurlyBracketKeyword_1_2_0_0; } //parameters+=SelectorEntry public Assignment getParametersAssignment_1_2_0_1() { return cParametersAssignment_1_2_0_1; } //SelectorEntry public RuleCall getParametersSelectorEntryParserRuleCall_1_2_0_1_0() { return cParametersSelectorEntryParserRuleCall_1_2_0_1_0; } //("," parameters+=SelectorEntry | parameters+=SelectorEntry)* public Alternatives getAlternatives_1_2_0_2() { return cAlternatives_1_2_0_2; } //"," parameters+=SelectorEntry public Group getGroup_1_2_0_2_0() { return cGroup_1_2_0_2_0; } //"," public Keyword getCommaKeyword_1_2_0_2_0_0() { return cCommaKeyword_1_2_0_2_0_0; } //parameters+=SelectorEntry public Assignment getParametersAssignment_1_2_0_2_0_1() { return cParametersAssignment_1_2_0_2_0_1; } //SelectorEntry public RuleCall getParametersSelectorEntryParserRuleCall_1_2_0_2_0_1_0() { return cParametersSelectorEntryParserRuleCall_1_2_0_2_0_1_0; } //parameters+=SelectorEntry public Assignment getParametersAssignment_1_2_0_2_1() { return cParametersAssignment_1_2_0_2_1; } //SelectorEntry public RuleCall getParametersSelectorEntryParserRuleCall_1_2_0_2_1_0() { return cParametersSelectorEntryParserRuleCall_1_2_0_2_1_0; } //","? public Keyword getCommaKeyword_1_2_0_3() { return cCommaKeyword_1_2_0_3; } //"}" public Keyword getRightCurlyBracketKeyword_1_2_0_4() { return cRightCurlyBracketKeyword_1_2_0_4; } //parameters+=SelectorEntry public Assignment getParametersAssignment_1_2_1() { return cParametersAssignment_1_2_1; } //SelectorEntry public RuleCall getParametersSelectorEntryParserRuleCall_1_2_1_0() { return cParametersSelectorEntryParserRuleCall_1_2_1_0; } } public class SelectorEntryElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SelectorEntry"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cSelectorEntryLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cEqualsSignGreaterThanSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Assignment cRightExprAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cRightExprExpressionParserRuleCall_1_2_0 = (RuleCall)cRightExprAssignment_1_2.eContents().get(0); //// VALIDATION checks lhs is a valid selector left value //SelectorEntry returns pp::Expression: // Expression ({pp::SelectorEntry.leftExpr=current} "=>" rightExpr=Expression)?; public ParserRule getRule() { return rule; } //Expression ({pp::SelectorEntry.leftExpr=current} "=>" rightExpr=Expression)? public Group getGroup() { return cGroup; } //Expression public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; } //({pp::SelectorEntry.leftExpr=current} "=>" rightExpr=Expression)? public Group getGroup_1() { return cGroup_1; } //{pp::SelectorEntry.leftExpr=current} public Action getSelectorEntryLeftExprAction_1_0() { return cSelectorEntryLeftExprAction_1_0; } //"=>" public Keyword getEqualsSignGreaterThanSignKeyword_1_1() { return cEqualsSignGreaterThanSignKeyword_1_1; } //rightExpr=Expression public Assignment getRightExprAssignment_1_2() { return cRightExprAssignment_1_2; } //Expression public RuleCall getRightExprExpressionParserRuleCall_1_2_0() { return cRightExprExpressionParserRuleCall_1_2_0; } } public class AtExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AtExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cMethodCallParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cAtExpressionLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cLeftSquareBracketKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); private final Assignment cParametersAssignment_1_2_0 = (Assignment)cGroup_1_2.eContents().get(0); private final RuleCall cParametersExpressionParserRuleCall_1_2_0_0 = (RuleCall)cParametersAssignment_1_2_0.eContents().get(0); private final Group cGroup_1_2_1 = (Group)cGroup_1_2.eContents().get(1); private final Keyword cCommaKeyword_1_2_1_0 = (Keyword)cGroup_1_2_1.eContents().get(0); private final Assignment cParametersAssignment_1_2_1_1 = (Assignment)cGroup_1_2_1.eContents().get(1); private final RuleCall cParametersExpressionParserRuleCall_1_2_1_1_0 = (RuleCall)cParametersAssignment_1_2_1_1.eContents().get(0); private final Keyword cRightSquareBracketKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3); //// Note: AtExpression serves dual purpose: ResourceReference and '#' access //// VALIDATION: checks 2 level nesting constraint on At a[x][y] is ok but not a[x][y][z] if bug compatible mode //// VALIDATION: checks At dual roles and validates accordingly (only single parameter for normal At) etc. //AtExpression returns pp::Expression: // MethodCall ({pp::AtExpression.leftExpr=current} "[" (parameters+=Expression ("," parameters+=Expression)*)? "]")*; public ParserRule getRule() { return rule; } //MethodCall ({pp::AtExpression.leftExpr=current} "[" (parameters+=Expression ("," parameters+=Expression)*)? "]")* public Group getGroup() { return cGroup; } //MethodCall public RuleCall getMethodCallParserRuleCall_0() { return cMethodCallParserRuleCall_0; } //({pp::AtExpression.leftExpr=current} "[" (parameters+=Expression ("," parameters+=Expression)*)? "]")* public Group getGroup_1() { return cGroup_1; } //{pp::AtExpression.leftExpr=current} public Action getAtExpressionLeftExprAction_1_0() { return cAtExpressionLeftExprAction_1_0; } //"[" public Keyword getLeftSquareBracketKeyword_1_1() { return cLeftSquareBracketKeyword_1_1; } //(parameters+=Expression ("," parameters+=Expression)*)? public Group getGroup_1_2() { return cGroup_1_2; } //parameters+=Expression public Assignment getParametersAssignment_1_2_0() { return cParametersAssignment_1_2_0; } //Expression public RuleCall getParametersExpressionParserRuleCall_1_2_0_0() { return cParametersExpressionParserRuleCall_1_2_0_0; } //("," parameters+=Expression)* public Group getGroup_1_2_1() { return cGroup_1_2_1; } //"," public Keyword getCommaKeyword_1_2_1_0() { return cCommaKeyword_1_2_1_0; } //parameters+=Expression public Assignment getParametersAssignment_1_2_1_1() { return cParametersAssignment_1_2_1_1; } //Expression public RuleCall getParametersExpressionParserRuleCall_1_2_1_1_0() { return cParametersExpressionParserRuleCall_1_2_1_1_0; } //"]" public Keyword getRightSquareBracketKeyword_1_3() { return cRightSquareBracketKeyword_1_3; } } public class MethodCallElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MethodCall"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cFunctionCallParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Action cMethodCallLeftExprAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cFullStopKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); private final Assignment cMethodExprAssignment_1_2_0 = (Assignment)cGroup_1_2.eContents().get(0); private final RuleCall cMethodExprLiteralNameParserRuleCall_1_2_0_0 = (RuleCall)cMethodExprAssignment_1_2_0.eContents().get(0); private final Group cGroup_1_2_1 = (Group)cGroup_1_2.eContents().get(1); private final Assignment cParenthesizedAssignment_1_2_1_0 = (Assignment)cGroup_1_2_1.eContents().get(0); private final RuleCall cParenthesizedLPARBooleanParserRuleCall_1_2_1_0_0 = (RuleCall)cParenthesizedAssignment_1_2_1_0.eContents().get(0); private final Group cGroup_1_2_1_1 = (Group)cGroup_1_2_1.eContents().get(1); private final Assignment cParametersAssignment_1_2_1_1_0 = (Assignment)cGroup_1_2_1_1.eContents().get(0); private final RuleCall cParametersExpressionParserRuleCall_1_2_1_1_0_0 = (RuleCall)cParametersAssignment_1_2_1_1_0.eContents().get(0); private final Group cGroup_1_2_1_1_1 = (Group)cGroup_1_2_1_1.eContents().get(1); private final Keyword cCommaKeyword_1_2_1_1_1_0 = (Keyword)cGroup_1_2_1_1_1.eContents().get(0); private final Assignment cParametersAssignment_1_2_1_1_1_1 = (Assignment)cGroup_1_2_1_1_1.eContents().get(1); private final RuleCall cParametersExpressionParserRuleCall_1_2_1_1_1_1_0 = (RuleCall)cParametersAssignment_1_2_1_1_1_1.eContents().get(0); private final Keyword cCommaKeyword_1_2_1_1_2 = (Keyword)cGroup_1_2_1_1.eContents().get(2); private final Keyword cRightParenthesisKeyword_1_2_1_2 = (Keyword)cGroup_1_2_1.eContents().get(2); private final Assignment cLambdaAssignment_1_3 = (Assignment)cGroup_1.eContents().get(3); private final RuleCall cLambdaLambdaExpressionParserRuleCall_1_3_0 = (RuleCall)cLambdaAssignment_1_3.eContents().get(0); //MethodCall returns pp::Expression: // FunctionCall ({pp::MethodCall.leftExpr=current} "." (methodExpr=LiteralName (parenthesized= // remember if an empty list had parentheses or not // LPARBoolean (parameters+=Expression ("," parameters+=Expression)* ","?)? / *endComma? * / ")")?)? // lambda=LambdaExpression?)*; public ParserRule getRule() { return rule; } //FunctionCall ({pp::MethodCall.leftExpr=current} "." (methodExpr=LiteralName (parenthesized= // remember if an empty list had parentheses or not //LPARBoolean (parameters+=Expression ("," parameters+=Expression)* ","?)? / *endComma? * / ")")?)? //lambda=LambdaExpression?)* public Group getGroup() { return cGroup; } //FunctionCall public RuleCall getFunctionCallParserRuleCall_0() { return cFunctionCallParserRuleCall_0; } //({pp::MethodCall.leftExpr=current} "." (methodExpr=LiteralName (parenthesized= // remember if an empty list had parentheses or not //LPARBoolean (parameters+=Expression ("," parameters+=Expression)* ","?)? / *endComma? * / ")")?)? //lambda=LambdaExpression?)* public Group getGroup_1() { return cGroup_1; } //{pp::MethodCall.leftExpr=current} public Action getMethodCallLeftExprAction_1_0() { return cMethodCallLeftExprAction_1_0; } //"." public Keyword getFullStopKeyword_1_1() { return cFullStopKeyword_1_1; } //(methodExpr=LiteralName (parenthesized= // remember if an empty list had parentheses or not //LPARBoolean (parameters+=Expression ("," parameters+=Expression)* ","?)? / *endComma? * / ")")?)? public Group getGroup_1_2() { return cGroup_1_2; } //methodExpr=LiteralName public Assignment getMethodExprAssignment_1_2_0() { return cMethodExprAssignment_1_2_0; } //LiteralName public RuleCall getMethodExprLiteralNameParserRuleCall_1_2_0_0() { return cMethodExprLiteralNameParserRuleCall_1_2_0_0; } //(parenthesized= // remember if an empty list had parentheses or not //LPARBoolean (parameters+=Expression ("," parameters+=Expression)* ","?)? / *endComma? * / ")")? public Group getGroup_1_2_1() { return cGroup_1_2_1; } //parenthesized= // remember if an empty list had parentheses or not //LPARBoolean public Assignment getParenthesizedAssignment_1_2_1_0() { return cParenthesizedAssignment_1_2_1_0; } //// remember if an empty list had parentheses or not //LPARBoolean public RuleCall getParenthesizedLPARBooleanParserRuleCall_1_2_1_0_0() { return cParenthesizedLPARBooleanParserRuleCall_1_2_1_0_0; } //(parameters+=Expression ("," parameters+=Expression)* ","?)? public Group getGroup_1_2_1_1() { return cGroup_1_2_1_1; } //parameters+=Expression public Assignment getParametersAssignment_1_2_1_1_0() { return cParametersAssignment_1_2_1_1_0; } //Expression public RuleCall getParametersExpressionParserRuleCall_1_2_1_1_0_0() { return cParametersExpressionParserRuleCall_1_2_1_1_0_0; } //("," parameters+=Expression)* public Group getGroup_1_2_1_1_1() { return cGroup_1_2_1_1_1; } //"," public Keyword getCommaKeyword_1_2_1_1_1_0() { return cCommaKeyword_1_2_1_1_1_0; } //parameters+=Expression public Assignment getParametersAssignment_1_2_1_1_1_1() { return cParametersAssignment_1_2_1_1_1_1; } //Expression public RuleCall getParametersExpressionParserRuleCall_1_2_1_1_1_1_0() { return cParametersExpressionParserRuleCall_1_2_1_1_1_1_0; } //","? public Keyword getCommaKeyword_1_2_1_1_2() { return cCommaKeyword_1_2_1_1_2; } //")" public Keyword getRightParenthesisKeyword_1_2_1_2() { return cRightParenthesisKeyword_1_2_1_2; } //lambda=LambdaExpression? public Assignment getLambdaAssignment_1_3() { return cLambdaAssignment_1_3; } //LambdaExpression public RuleCall getLambdaLambdaExpressionParserRuleCall_1_3_0() { return cLambdaLambdaExpressionParserRuleCall_1_3_0; } } public class LPARBooleanElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LPARBoolean"); private final Keyword cLeftParenthesisKeyword = (Keyword)rule.eContents().get(1); //LPARBoolean returns ecore::EBoolean: // "("; public ParserRule getRule() { return rule; } //"(" public Keyword getLeftParenthesisKeyword() { return cLeftParenthesisKeyword; } } public class LambdaExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LambdaExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cJava8LambdaParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cRubyLambdaParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //LambdaExpression returns pp::Lambda: // Java8Lambda | RubyLambda; public ParserRule getRule() { return rule; } //Java8Lambda | RubyLambda public Alternatives getAlternatives() { return cAlternatives; } //Java8Lambda public RuleCall getJava8LambdaParserRuleCall_0() { return cJava8LambdaParserRuleCall_0; } //RubyLambda public RuleCall getRubyLambdaParserRuleCall_1() { return cRubyLambdaParserRuleCall_1; } } public class Java8LambdaElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Java8Lambda"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cVerticalLineKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Action cJavaLambdaAction_1 = (Action)cGroup.eContents().get(1); private final Assignment cArgumentsAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cArgumentsLambdaParametersParserRuleCall_2_0 = (RuleCall)cArgumentsAssignment_2.eContents().get(0); private final Keyword cVerticalLineKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cFarrowAssignment_4 = (Assignment)cGroup.eContents().get(4); private final Keyword cFarrowEqualsSignGreaterThanSignKeyword_4_0 = (Keyword)cFarrowAssignment_4.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); private final Assignment cStatementsAssignment_6 = (Assignment)cGroup.eContents().get(6); private final RuleCall cStatementsExpressionListParserRuleCall_6_0 = (RuleCall)cStatementsAssignment_6.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7); //Java8Lambda returns pp::Lambda: // "|" {pp::JavaLambda} arguments=LambdaParameters? "|" farrow?="=>"? "{" statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //"|" {pp::JavaLambda} arguments=LambdaParameters? "|" farrow?="=>"? "{" statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //"|" public Keyword getVerticalLineKeyword_0() { return cVerticalLineKeyword_0; } //{pp::JavaLambda} public Action getJavaLambdaAction_1() { return cJavaLambdaAction_1; } //arguments=LambdaParameters? public Assignment getArgumentsAssignment_2() { return cArgumentsAssignment_2; } //LambdaParameters public RuleCall getArgumentsLambdaParametersParserRuleCall_2_0() { return cArgumentsLambdaParametersParserRuleCall_2_0; } //"|" public Keyword getVerticalLineKeyword_3() { return cVerticalLineKeyword_3; } //farrow?="=>"? public Assignment getFarrowAssignment_4() { return cFarrowAssignment_4; } //"=>" public Keyword getFarrowEqualsSignGreaterThanSignKeyword_4_0() { return cFarrowEqualsSignGreaterThanSignKeyword_4_0; } //"{" public Keyword getLeftCurlyBracketKeyword_5() { return cLeftCurlyBracketKeyword_5; } //statements+=ExpressionList* public Assignment getStatementsAssignment_6() { return cStatementsAssignment_6; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_6_0() { return cStatementsExpressionListParserRuleCall_6_0; } //"}" public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; } } public class RubyLambdaElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RubyLambda"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cLAMBDATerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Keyword cVerticalLineKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Action cRubyLambdaAction_2 = (Action)cGroup.eContents().get(2); private final Assignment cArgumentsAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cArgumentsLambdaParametersParserRuleCall_3_0 = (RuleCall)cArgumentsAssignment_3.eContents().get(0); private final Keyword cVerticalLineKeyword_4 = (Keyword)cGroup.eContents().get(4); private final Assignment cStatementsAssignment_5 = (Assignment)cGroup.eContents().get(5); private final RuleCall cStatementsExpressionListParserRuleCall_5_0 = (RuleCall)cStatementsAssignment_5.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); //RubyLambda returns pp::Lambda: // LAMBDA "|" {pp::RubyLambda} arguments=LambdaParameters? "|" statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //LAMBDA "|" {pp::RubyLambda} arguments=LambdaParameters? "|" statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //LAMBDA public RuleCall getLAMBDATerminalRuleCall_0() { return cLAMBDATerminalRuleCall_0; } //"|" public Keyword getVerticalLineKeyword_1() { return cVerticalLineKeyword_1; } //{pp::RubyLambda} public Action getRubyLambdaAction_2() { return cRubyLambdaAction_2; } //arguments=LambdaParameters? public Assignment getArgumentsAssignment_3() { return cArgumentsAssignment_3; } //LambdaParameters public RuleCall getArgumentsLambdaParametersParserRuleCall_3_0() { return cArgumentsLambdaParametersParserRuleCall_3_0; } //"|" public Keyword getVerticalLineKeyword_4() { return cVerticalLineKeyword_4; } //statements+=ExpressionList* public Assignment getStatementsAssignment_5() { return cStatementsAssignment_5; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_5_0() { return cStatementsExpressionListParserRuleCall_5_0; } //"}" public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } } public class LambdaParametersElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LambdaParameters"); private final Group cGroup = (Group)rule.eContents().get(1); private final Group cGroup_0 = (Group)cGroup.eContents().get(0); private final Assignment cArgumentsAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0); private final RuleCall cArgumentsDefinitionArgumentParserRuleCall_0_0_0 = (RuleCall)cArgumentsAssignment_0_0.eContents().get(0); private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); private final Keyword cCommaKeyword_0_1_0 = (Keyword)cGroup_0_1.eContents().get(0); private final Assignment cArgumentsAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1); private final RuleCall cArgumentsDefinitionArgumentParserRuleCall_0_1_1_0 = (RuleCall)cArgumentsAssignment_0_1_1.eContents().get(0); private final Keyword cCommaKeyword_1 = (Keyword)cGroup.eContents().get(1); //LambdaParameters returns pp::DefinitionArgumentList: // (arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*) ","? / * endComma? * /; public ParserRule getRule() { return rule; } //(arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*) ","? / * endComma? * / public Group getGroup() { return cGroup; } //arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)* public Group getGroup_0() { return cGroup_0; } //arguments+=DefinitionArgument public Assignment getArgumentsAssignment_0_0() { return cArgumentsAssignment_0_0; } //DefinitionArgument public RuleCall getArgumentsDefinitionArgumentParserRuleCall_0_0_0() { return cArgumentsDefinitionArgumentParserRuleCall_0_0_0; } //("," arguments+=DefinitionArgument)* public Group getGroup_0_1() { return cGroup_0_1; } //"," public Keyword getCommaKeyword_0_1_0() { return cCommaKeyword_0_1_0; } //arguments+=DefinitionArgument public Assignment getArgumentsAssignment_0_1_1() { return cArgumentsAssignment_0_1_1; } //DefinitionArgument public RuleCall getArgumentsDefinitionArgumentParserRuleCall_0_1_1_0() { return cArgumentsDefinitionArgumentParserRuleCall_0_1_1_0; } //","? public Keyword getCommaKeyword_1() { return cCommaKeyword_1; } } public class FunctionCallElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FunctionCall"); private final Group cGroup = (Group)rule.eContents().get(1); private final RuleCall cPrimaryExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0); private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0); private final Action cFunctionCallLeftExprAction_1_0_0_0 = (Action)cGroup_1_0_0.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1); private final Assignment cParametersAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); private final RuleCall cParametersExpressionParserRuleCall_1_1_0_0 = (RuleCall)cParametersAssignment_1_1_0.eContents().get(0); private final Group cGroup_1_1_1 = (Group)cGroup_1_1.eContents().get(1); private final Keyword cCommaKeyword_1_1_1_0 = (Keyword)cGroup_1_1_1.eContents().get(0); private final Assignment cParametersAssignment_1_1_1_1 = (Assignment)cGroup_1_1_1.eContents().get(1); private final RuleCall cParametersExpressionParserRuleCall_1_1_1_1_0 = (RuleCall)cParametersAssignment_1_1_1_1.eContents().get(0); private final Keyword cCommaKeyword_1_1_2 = (Keyword)cGroup_1_1.eContents().get(2); private final Keyword cRightParenthesisKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); private final Assignment cLambdaAssignment_1_3_0 = (Assignment)cGroup_1_3.eContents().get(0); private final RuleCall cLambdaLambdaExpressionParserRuleCall_1_3_0_0 = (RuleCall)cLambdaAssignment_1_3_0.eContents().get(0); //// FunctionCall has different syntax restrictions depending on context //// - when used where only one expression can occur, parentheses are required around the arguments //// To solve this, the parser does NOT recognize func x as a function call, this is instead treated as //// a sequence of two expressions, a later step will need to determine if 'func' is a function, if so, how //// many arguments it is supposed to take, and then validate if the input is correct. //// //// VALIDATION : functionExpr is a valid function name //FunctionCall returns pp::Expression: // PrimaryExpression (=> ({pp::FunctionCall.leftExpr=current} "(") (parameters+=Expression ("," parameters+=Expression)* // ","?)? / *endComma? * / ")" => (lambda=LambdaExpression?))*; public ParserRule getRule() { return rule; } //PrimaryExpression (=> ({pp::FunctionCall.leftExpr=current} "(") (parameters+=Expression ("," parameters+=Expression)* //","?)? / *endComma? * / ")" => (lambda=LambdaExpression?))* public Group getGroup() { return cGroup; } //PrimaryExpression public RuleCall getPrimaryExpressionParserRuleCall_0() { return cPrimaryExpressionParserRuleCall_0; } //(=> ({pp::FunctionCall.leftExpr=current} "(") (parameters+=Expression ("," parameters+=Expression)* ","?)? /// *endComma? * / ")" => (lambda=LambdaExpression?))* public Group getGroup_1() { return cGroup_1; } //=> ({pp::FunctionCall.leftExpr=current} "(") public Group getGroup_1_0() { return cGroup_1_0; } //{pp::FunctionCall.leftExpr=current} "(" public Group getGroup_1_0_0() { return cGroup_1_0_0; } //{pp::FunctionCall.leftExpr=current} public Action getFunctionCallLeftExprAction_1_0_0_0() { return cFunctionCallLeftExprAction_1_0_0_0; } //"(" public Keyword getLeftParenthesisKeyword_1_0_0_1() { return cLeftParenthesisKeyword_1_0_0_1; } //(parameters+=Expression ("," parameters+=Expression)* ","?)? public Group getGroup_1_1() { return cGroup_1_1; } //parameters+=Expression public Assignment getParametersAssignment_1_1_0() { return cParametersAssignment_1_1_0; } //Expression public RuleCall getParametersExpressionParserRuleCall_1_1_0_0() { return cParametersExpressionParserRuleCall_1_1_0_0; } //("," parameters+=Expression)* public Group getGroup_1_1_1() { return cGroup_1_1_1; } //"," public Keyword getCommaKeyword_1_1_1_0() { return cCommaKeyword_1_1_1_0; } //parameters+=Expression public Assignment getParametersAssignment_1_1_1_1() { return cParametersAssignment_1_1_1_1; } //Expression public RuleCall getParametersExpressionParserRuleCall_1_1_1_1_0() { return cParametersExpressionParserRuleCall_1_1_1_1_0; } //","? public Keyword getCommaKeyword_1_1_2() { return cCommaKeyword_1_1_2; } //")" public Keyword getRightParenthesisKeyword_1_2() { return cRightParenthesisKeyword_1_2; } //=> (lambda=LambdaExpression?) public Group getGroup_1_3() { return cGroup_1_3; } //lambda=LambdaExpression? public Assignment getLambdaAssignment_1_3_0() { return cLambdaAssignment_1_3_0; } //LambdaExpression public RuleCall getLambdaLambdaExpressionParserRuleCall_1_3_0_0() { return cLambdaLambdaExpressionParserRuleCall_1_3_0_0; } } public class PrimaryExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PrimaryExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cIfExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cUnlessExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cCaseExpressionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cImportExpressionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); private final RuleCall cDefinitionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); private final RuleCall cHostClassDefinitionParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); private final RuleCall cNodeDefinitionParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); private final RuleCall cVirtualNameOrReferenceParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); private final RuleCall cLiteralExpressionParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8); private final RuleCall cVariableExpressionParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9); private final RuleCall cParenthisedExpressionParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10); //PrimaryExpression returns pp::Expression: // IfExpression | UnlessExpression | CaseExpression | ImportExpression | Definition | HostClassDefinition | // NodeDefinition | VirtualNameOrReference | LiteralExpression | VariableExpression | ParenthisedExpression; public ParserRule getRule() { return rule; } //IfExpression | UnlessExpression | CaseExpression | ImportExpression | Definition | HostClassDefinition | NodeDefinition //| VirtualNameOrReference | LiteralExpression | VariableExpression | ParenthisedExpression public Alternatives getAlternatives() { return cAlternatives; } //IfExpression public RuleCall getIfExpressionParserRuleCall_0() { return cIfExpressionParserRuleCall_0; } //UnlessExpression public RuleCall getUnlessExpressionParserRuleCall_1() { return cUnlessExpressionParserRuleCall_1; } //CaseExpression public RuleCall getCaseExpressionParserRuleCall_2() { return cCaseExpressionParserRuleCall_2; } //ImportExpression public RuleCall getImportExpressionParserRuleCall_3() { return cImportExpressionParserRuleCall_3; } //Definition public RuleCall getDefinitionParserRuleCall_4() { return cDefinitionParserRuleCall_4; } //HostClassDefinition public RuleCall getHostClassDefinitionParserRuleCall_5() { return cHostClassDefinitionParserRuleCall_5; } //NodeDefinition public RuleCall getNodeDefinitionParserRuleCall_6() { return cNodeDefinitionParserRuleCall_6; } //VirtualNameOrReference public RuleCall getVirtualNameOrReferenceParserRuleCall_7() { return cVirtualNameOrReferenceParserRuleCall_7; } //LiteralExpression public RuleCall getLiteralExpressionParserRuleCall_8() { return cLiteralExpressionParserRuleCall_8; } //VariableExpression public RuleCall getVariableExpressionParserRuleCall_9() { return cVariableExpressionParserRuleCall_9; } //ParenthisedExpression public RuleCall getParenthisedExpressionParserRuleCall_10() { return cParenthisedExpressionParserRuleCall_10; } } public class NodeDefinitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NodeDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cNodeKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cHostNamesAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cHostNamesHostReferenceParserRuleCall_1_0 = (RuleCall)cHostNamesAssignment_1.eContents().get(0); private final Group cGroup_2 = (Group)cGroup.eContents().get(2); private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); private final Assignment cHostNamesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); private final RuleCall cHostNamesHostReferenceParserRuleCall_2_1_0 = (RuleCall)cHostNamesAssignment_2_1.eContents().get(0); private final Group cGroup_3 = (Group)cGroup.eContents().get(3); private final Keyword cInheritsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); private final Assignment cParentNameAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); private final RuleCall cParentNameHostReferenceParserRuleCall_3_1_0 = (RuleCall)cParentNameAssignment_3_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); private final Assignment cStatementsAssignment_5 = (Assignment)cGroup.eContents().get(5); private final RuleCall cStatementsExpressionListParserRuleCall_5_0 = (RuleCall)cStatementsAssignment_5.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); //NodeDefinition returns pp::NodeDefinition: // "node" hostNames+=HostReference ("," hostNames+=HostReference)* ("inherits" parentName=HostReference)? "{" // statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //"node" hostNames+=HostReference ("," hostNames+=HostReference)* ("inherits" parentName=HostReference)? "{" //statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //"node" public Keyword getNodeKeyword_0() { return cNodeKeyword_0; } //hostNames+=HostReference public Assignment getHostNamesAssignment_1() { return cHostNamesAssignment_1; } //HostReference public RuleCall getHostNamesHostReferenceParserRuleCall_1_0() { return cHostNamesHostReferenceParserRuleCall_1_0; } //("," hostNames+=HostReference)* public Group getGroup_2() { return cGroup_2; } //"," public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; } //hostNames+=HostReference public Assignment getHostNamesAssignment_2_1() { return cHostNamesAssignment_2_1; } //HostReference public RuleCall getHostNamesHostReferenceParserRuleCall_2_1_0() { return cHostNamesHostReferenceParserRuleCall_2_1_0; } //("inherits" parentName=HostReference)? public Group getGroup_3() { return cGroup_3; } //"inherits" public Keyword getInheritsKeyword_3_0() { return cInheritsKeyword_3_0; } //parentName=HostReference public Assignment getParentNameAssignment_3_1() { return cParentNameAssignment_3_1; } //HostReference public RuleCall getParentNameHostReferenceParserRuleCall_3_1_0() { return cParentNameHostReferenceParserRuleCall_3_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } //statements+=ExpressionList* public Assignment getStatementsAssignment_5() { return cStatementsAssignment_5; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_5_0() { return cStatementsExpressionListParserRuleCall_5_0; } //"}" public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } } public class HostReferenceElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HostReference"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cStringExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cLiteralRegexParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cLiteralDefaultParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cLiteralNameOrReferenceParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); //HostReference returns pp::Expression: // StringExpression | LiteralRegex | LiteralDefault | LiteralNameOrReference; public ParserRule getRule() { return rule; } //StringExpression | LiteralRegex | LiteralDefault | LiteralNameOrReference public Alternatives getAlternatives() { return cAlternatives; } //StringExpression public RuleCall getStringExpressionParserRuleCall_0() { return cStringExpressionParserRuleCall_0; } //LiteralRegex public RuleCall getLiteralRegexParserRuleCall_1() { return cLiteralRegexParserRuleCall_1; } //LiteralDefault public RuleCall getLiteralDefaultParserRuleCall_2() { return cLiteralDefaultParserRuleCall_2; } //LiteralNameOrReference public RuleCall getLiteralNameOrReferenceParserRuleCall_3() { return cLiteralNameOrReferenceParserRuleCall_3; } } public class HostClassDefinitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HostClassDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cClassKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cClassNameAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cClassNameClassnameParserRuleCall_1_0 = (RuleCall)cClassNameAssignment_1.eContents().get(0); private final Assignment cArgumentsAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cArgumentsDefinitionArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentsAssignment_2.eContents().get(0); private final Group cGroup_3 = (Group)cGroup.eContents().get(3); private final Keyword cInheritsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); private final Assignment cParentAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); private final RuleCall cParentParentNameParserRuleCall_3_1_0 = (RuleCall)cParentAssignment_3_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); private final Assignment cStatementsAssignment_5 = (Assignment)cGroup.eContents().get(5); private final RuleCall cStatementsExpressionListParserRuleCall_5_0 = (RuleCall)cStatementsAssignment_5.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); //HostClassDefinition returns pp::HostClassDefinition: // "class" className=classname arguments=DefinitionArgumentList? ("inherits" parent=ParentName)? "{" // statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //"class" className=classname arguments=DefinitionArgumentList? ("inherits" parent=ParentName)? "{" //statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //"class" public Keyword getClassKeyword_0() { return cClassKeyword_0; } //className=classname public Assignment getClassNameAssignment_1() { return cClassNameAssignment_1; } //classname public RuleCall getClassNameClassnameParserRuleCall_1_0() { return cClassNameClassnameParserRuleCall_1_0; } //arguments=DefinitionArgumentList? public Assignment getArgumentsAssignment_2() { return cArgumentsAssignment_2; } //DefinitionArgumentList public RuleCall getArgumentsDefinitionArgumentListParserRuleCall_2_0() { return cArgumentsDefinitionArgumentListParserRuleCall_2_0; } //("inherits" parent=ParentName)? public Group getGroup_3() { return cGroup_3; } //"inherits" public Keyword getInheritsKeyword_3_0() { return cInheritsKeyword_3_0; } //parent=ParentName public Assignment getParentAssignment_3_1() { return cParentAssignment_3_1; } //ParentName public RuleCall getParentParentNameParserRuleCall_3_1_0() { return cParentParentNameParserRuleCall_3_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } //statements+=ExpressionList* public Assignment getStatementsAssignment_5() { return cStatementsAssignment_5; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_5_0() { return cStatementsExpressionListParserRuleCall_5_0; } //"}" public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } } public class ParentNameElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ParentName"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cLiteralDefaultParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cLiteralClassParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cLiteralNameOrReferenceParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); //ParentName returns pp::LiteralExpression: // LiteralDefault | LiteralClass | LiteralNameOrReference; public ParserRule getRule() { return rule; } //LiteralDefault | LiteralClass | LiteralNameOrReference public Alternatives getAlternatives() { return cAlternatives; } //LiteralDefault public RuleCall getLiteralDefaultParserRuleCall_0() { return cLiteralDefaultParserRuleCall_0; } //LiteralClass public RuleCall getLiteralClassParserRuleCall_1() { return cLiteralClassParserRuleCall_1; } //LiteralNameOrReference public RuleCall getLiteralNameOrReferenceParserRuleCall_2() { return cLiteralNameOrReferenceParserRuleCall_2; } } public class DefinitionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Definition"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cDefineKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cClassNameAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cClassNameClassnameParserRuleCall_1_0 = (RuleCall)cClassNameAssignment_1.eContents().get(0); private final Assignment cArgumentsAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cArgumentsDefinitionArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentsAssignment_2.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cStatementsAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cStatementsExpressionListParserRuleCall_4_0 = (RuleCall)cStatementsAssignment_4.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); //Definition returns pp::Definition: // "define" className=classname arguments=DefinitionArgumentList? "{" statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //"define" className=classname arguments=DefinitionArgumentList? "{" statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //"define" public Keyword getDefineKeyword_0() { return cDefineKeyword_0; } //className=classname public Assignment getClassNameAssignment_1() { return cClassNameAssignment_1; } //classname public RuleCall getClassNameClassnameParserRuleCall_1_0() { return cClassNameClassnameParserRuleCall_1_0; } //arguments=DefinitionArgumentList? public Assignment getArgumentsAssignment_2() { return cArgumentsAssignment_2; } //DefinitionArgumentList public RuleCall getArgumentsDefinitionArgumentListParserRuleCall_2_0() { return cArgumentsDefinitionArgumentListParserRuleCall_2_0; } //"{" public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; } //statements+=ExpressionList* public Assignment getStatementsAssignment_4() { return cStatementsAssignment_4; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_4_0() { return cStatementsExpressionListParserRuleCall_4_0; } //"}" public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } } public class DefinitionArgumentListElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DefinitionArgumentList"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cDefinitionArgumentListAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Group cGroup_2 = (Group)cGroup.eContents().get(2); private final Assignment cArgumentsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); private final RuleCall cArgumentsDefinitionArgumentParserRuleCall_2_0_0 = (RuleCall)cArgumentsAssignment_2_0.eContents().get(0); private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); private final Assignment cArgumentsAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); private final RuleCall cArgumentsDefinitionArgumentParserRuleCall_2_1_1_0 = (RuleCall)cArgumentsAssignment_2_1_1.eContents().get(0); private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4); //DefinitionArgumentList returns pp::DefinitionArgumentList: // {pp::DefinitionArgumentList} "(" (arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*)? ","? // / * endComma? * / ")"; public ParserRule getRule() { return rule; } //{pp::DefinitionArgumentList} "(" (arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*)? ","? /// * endComma? * / ")" public Group getGroup() { return cGroup; } //{pp::DefinitionArgumentList} public Action getDefinitionArgumentListAction_0() { return cDefinitionArgumentListAction_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //(arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*)? public Group getGroup_2() { return cGroup_2; } //arguments+=DefinitionArgument public Assignment getArgumentsAssignment_2_0() { return cArgumentsAssignment_2_0; } //DefinitionArgument public RuleCall getArgumentsDefinitionArgumentParserRuleCall_2_0_0() { return cArgumentsDefinitionArgumentParserRuleCall_2_0_0; } //("," arguments+=DefinitionArgument)* public Group getGroup_2_1() { return cGroup_2_1; } //"," public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } //arguments+=DefinitionArgument public Assignment getArgumentsAssignment_2_1_1() { return cArgumentsAssignment_2_1_1; } //DefinitionArgument public RuleCall getArgumentsDefinitionArgumentParserRuleCall_2_1_1_0() { return cArgumentsDefinitionArgumentParserRuleCall_2_1_1_0; } //","? public Keyword getCommaKeyword_3() { return cCommaKeyword_3; } //")" public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; } } public class DefinitionArgumentElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DefinitionArgument"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cArgNameAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cArgNameUNION_VARIABLE_OR_NAMEParserRuleCall_0_0 = (RuleCall)cArgNameAssignment_0.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Alternatives cAlternatives_1_0 = (Alternatives)cGroup_1.eContents().get(0); private final Assignment cOpAssignment_1_0_0 = (Assignment)cAlternatives_1_0.eContents().get(0); private final Keyword cOpEqualsSignKeyword_1_0_0_0 = (Keyword)cOpAssignment_1_0_0.eContents().get(0); private final Assignment cOpAssignment_1_0_1 = (Assignment)cAlternatives_1_0.eContents().get(1); private final Keyword cOpEqualsSignGreaterThanSignKeyword_1_0_1_0 = (Keyword)cOpAssignment_1_0_1.eContents().get(0); private final Assignment cValueAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cValueAssignmentExpressionParserRuleCall_1_1_0 = (RuleCall)cValueAssignment_1_1.eContents().get(0); //// VALIDATION: Deprecated warning if name does not start with $ //// VALIDATION: Not all variations of SimplefiedVariableOrName are valid (with NS) //// VALIDATION: value expr is RVALUE //// //DefinitionArgument returns pp::DefinitionArgument: // argName=UNION_VARIABLE_OR_NAME ((op="=" | op="=>") value=AssignmentExpression)?; public ParserRule getRule() { return rule; } //argName=UNION_VARIABLE_OR_NAME ((op="=" | op="=>") value=AssignmentExpression)? public Group getGroup() { return cGroup; } //argName=UNION_VARIABLE_OR_NAME public Assignment getArgNameAssignment_0() { return cArgNameAssignment_0; } //UNION_VARIABLE_OR_NAME public RuleCall getArgNameUNION_VARIABLE_OR_NAMEParserRuleCall_0_0() { return cArgNameUNION_VARIABLE_OR_NAMEParserRuleCall_0_0; } //((op="=" | op="=>") value=AssignmentExpression)? public Group getGroup_1() { return cGroup_1; } //op="=" | op="=>" public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; } //op="=" public Assignment getOpAssignment_1_0_0() { return cOpAssignment_1_0_0; } //"=" public Keyword getOpEqualsSignKeyword_1_0_0_0() { return cOpEqualsSignKeyword_1_0_0_0; } //op="=>" public Assignment getOpAssignment_1_0_1() { return cOpAssignment_1_0_1; } //"=>" public Keyword getOpEqualsSignGreaterThanSignKeyword_1_0_1_0() { return cOpEqualsSignGreaterThanSignKeyword_1_0_1_0; } //value=AssignmentExpression public Assignment getValueAssignment_1_1() { return cValueAssignment_1_1; } //AssignmentExpression public RuleCall getValueAssignmentExpressionParserRuleCall_1_1_0() { return cValueAssignmentExpressionParserRuleCall_1_1_0; } } public class CaseExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CaseExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cCaseKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cSwitchExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cSwitchExprAssignmentExpressionParserRuleCall_1_0 = (RuleCall)cSwitchExprAssignment_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cCasesAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cCasesCaseParserRuleCall_3_0 = (RuleCall)cCasesAssignment_3.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); ////-- CASE //// //CaseExpression returns pp::CaseExpression: // "case" switchExpr=AssignmentExpression "{" cases+=Case* "}"; public ParserRule getRule() { return rule; } //"case" switchExpr=AssignmentExpression "{" cases+=Case* "}" public Group getGroup() { return cGroup; } //"case" public Keyword getCaseKeyword_0() { return cCaseKeyword_0; } //switchExpr=AssignmentExpression public Assignment getSwitchExprAssignment_1() { return cSwitchExprAssignment_1; } //AssignmentExpression public RuleCall getSwitchExprAssignmentExpressionParserRuleCall_1_0() { return cSwitchExprAssignmentExpressionParserRuleCall_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } //cases+=Case* public Assignment getCasesAssignment_3() { return cCasesAssignment_3; } //Case public RuleCall getCasesCaseParserRuleCall_3_0() { return cCasesCaseParserRuleCall_3_0; } //"}" public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } } public class CaseElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Case"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cValuesAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cValuesAssignmentExpressionParserRuleCall_0_0 = (RuleCall)cValuesAssignment_0.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); private final Assignment cValuesAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); private final RuleCall cValuesAssignmentExpressionParserRuleCall_1_1_0 = (RuleCall)cValuesAssignment_1_1.eContents().get(0); private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cStatementsAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cStatementsExpressionListParserRuleCall_4_0 = (RuleCall)cStatementsAssignment_4.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); //Case returns pp::Case: // values+=AssignmentExpression ("," values+=AssignmentExpression)* ":" "{" statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //values+=AssignmentExpression ("," values+=AssignmentExpression)* ":" "{" statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //values+=AssignmentExpression public Assignment getValuesAssignment_0() { return cValuesAssignment_0; } //AssignmentExpression public RuleCall getValuesAssignmentExpressionParserRuleCall_0_0() { return cValuesAssignmentExpressionParserRuleCall_0_0; } //("," values+=AssignmentExpression)* public Group getGroup_1() { return cGroup_1; } //"," public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; } //values+=AssignmentExpression public Assignment getValuesAssignment_1_1() { return cValuesAssignment_1_1; } //AssignmentExpression public RuleCall getValuesAssignmentExpressionParserRuleCall_1_1_0() { return cValuesAssignmentExpressionParserRuleCall_1_1_0; } //":" public Keyword getColonKeyword_2() { return cColonKeyword_2; } //"{" public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; } //statements+=ExpressionList* public Assignment getStatementsAssignment_4() { return cStatementsAssignment_4; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_4_0() { return cStatementsExpressionListParserRuleCall_4_0; } //"}" public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } } public class UnlessExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnlessExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cUnlessKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cCondExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cCondExprAssignmentExpressionParserRuleCall_1_0 = (RuleCall)cCondExprAssignment_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cThenStatementsAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cThenStatementsExpressionListParserRuleCall_3_0 = (RuleCall)cThenStatementsAssignment_3.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); private final Group cGroup_5 = (Group)cGroup.eContents().get(5); private final Keyword cElseKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); private final Assignment cElseStatementAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1); private final RuleCall cElseStatementElseExpressionParserRuleCall_5_1_0 = (RuleCall)cElseStatementAssignment_5_1.eContents().get(0); ////-- UNLESS (is the same as if !(e) {}, but without support for "else" //UnlessExpression returns pp::UnlessExpression: // "unless" condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("else" elseStatement=ElseExpression)?; public ParserRule getRule() { return rule; } //"unless" condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("else" elseStatement=ElseExpression)? public Group getGroup() { return cGroup; } //"unless" public Keyword getUnlessKeyword_0() { return cUnlessKeyword_0; } //condExpr=AssignmentExpression public Assignment getCondExprAssignment_1() { return cCondExprAssignment_1; } //AssignmentExpression public RuleCall getCondExprAssignmentExpressionParserRuleCall_1_0() { return cCondExprAssignmentExpressionParserRuleCall_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } //thenStatements+=ExpressionList* public Assignment getThenStatementsAssignment_3() { return cThenStatementsAssignment_3; } //ExpressionList public RuleCall getThenStatementsExpressionListParserRuleCall_3_0() { return cThenStatementsExpressionListParserRuleCall_3_0; } //"}" public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } //(=> "else" elseStatement=ElseExpression)? public Group getGroup_5() { return cGroup_5; } //=> "else" public Keyword getElseKeyword_5_0() { return cElseKeyword_5_0; } //elseStatement=ElseExpression public Assignment getElseStatementAssignment_5_1() { return cElseStatementAssignment_5_1; } //ElseExpression public RuleCall getElseStatementElseExpressionParserRuleCall_5_1_0() { return cElseStatementElseExpressionParserRuleCall_5_1_0; } } public class IfExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IfExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cCondExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cCondExprAssignmentExpressionParserRuleCall_1_0 = (RuleCall)cCondExprAssignment_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cThenStatementsAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cThenStatementsExpressionListParserRuleCall_3_0 = (RuleCall)cThenStatementsAssignment_3.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); private final Alternatives cAlternatives_5 = (Alternatives)cGroup.eContents().get(5); private final Group cGroup_5_0 = (Group)cAlternatives_5.eContents().get(0); private final Keyword cElsifKeyword_5_0_0 = (Keyword)cGroup_5_0.eContents().get(0); private final Assignment cElseStatementAssignment_5_0_1 = (Assignment)cGroup_5_0.eContents().get(1); private final RuleCall cElseStatementElseIfExpressionParserRuleCall_5_0_1_0 = (RuleCall)cElseStatementAssignment_5_0_1.eContents().get(0); private final Group cGroup_5_1 = (Group)cAlternatives_5.eContents().get(1); private final Keyword cElseKeyword_5_1_0 = (Keyword)cGroup_5_1.eContents().get(0); private final Assignment cElseStatementAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1); private final RuleCall cElseStatementElseExpressionParserRuleCall_5_1_1_0 = (RuleCall)cElseStatementAssignment_5_1_1.eContents().get(0); ////-- IF //// //// VALIDATION: checks that the elseStatement is an Else of Elsif, and validate that Else or Elsif //// only appears as parented by If, Else or Elseif //IfExpression returns pp::IfExpression: // "if" condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("elsif" elseStatement=ElseIfExpression | // "else" elseStatement=ElseExpression)?; public ParserRule getRule() { return rule; } //"if" condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("elsif" elseStatement=ElseIfExpression | //"else" elseStatement=ElseExpression)? public Group getGroup() { return cGroup; } //"if" public Keyword getIfKeyword_0() { return cIfKeyword_0; } //condExpr=AssignmentExpression public Assignment getCondExprAssignment_1() { return cCondExprAssignment_1; } //AssignmentExpression public RuleCall getCondExprAssignmentExpressionParserRuleCall_1_0() { return cCondExprAssignmentExpressionParserRuleCall_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } //thenStatements+=ExpressionList* public Assignment getThenStatementsAssignment_3() { return cThenStatementsAssignment_3; } //ExpressionList public RuleCall getThenStatementsExpressionListParserRuleCall_3_0() { return cThenStatementsExpressionListParserRuleCall_3_0; } //"}" public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } //(=> "elsif" elseStatement=ElseIfExpression | "else" elseStatement=ElseExpression)? public Alternatives getAlternatives_5() { return cAlternatives_5; } //=> "elsif" elseStatement=ElseIfExpression public Group getGroup_5_0() { return cGroup_5_0; } //=> "elsif" public Keyword getElsifKeyword_5_0_0() { return cElsifKeyword_5_0_0; } //elseStatement=ElseIfExpression public Assignment getElseStatementAssignment_5_0_1() { return cElseStatementAssignment_5_0_1; } //ElseIfExpression public RuleCall getElseStatementElseIfExpressionParserRuleCall_5_0_1_0() { return cElseStatementElseIfExpressionParserRuleCall_5_0_1_0; } //=> "else" elseStatement=ElseExpression public Group getGroup_5_1() { return cGroup_5_1; } //=> "else" public Keyword getElseKeyword_5_1_0() { return cElseKeyword_5_1_0; } //elseStatement=ElseExpression public Assignment getElseStatementAssignment_5_1_1() { return cElseStatementAssignment_5_1_1; } //ElseExpression public RuleCall getElseStatementElseExpressionParserRuleCall_5_1_1_0() { return cElseStatementElseExpressionParserRuleCall_5_1_1_0; } } public class ElseExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ElseExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cElseExpressionAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cStatementsAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cStatementsExpressionListParserRuleCall_2_0 = (RuleCall)cStatementsAssignment_2.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); //ElseExpression returns pp::Expression: // {pp::ElseExpression} "{" statements+=ExpressionList* "}"; public ParserRule getRule() { return rule; } //{pp::ElseExpression} "{" statements+=ExpressionList* "}" public Group getGroup() { return cGroup; } //{pp::ElseExpression} public Action getElseExpressionAction_0() { return cElseExpressionAction_0; } //"{" public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } //statements+=ExpressionList* public Assignment getStatementsAssignment_2() { return cStatementsAssignment_2; } //ExpressionList public RuleCall getStatementsExpressionListParserRuleCall_2_0() { return cStatementsExpressionListParserRuleCall_2_0; } //"}" public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; } } public class ElseIfExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ElseIfExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cElseIfExpressionAction_0 = (Action)cGroup.eContents().get(0); private final Assignment cCondExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cCondExprAssignmentExpressionParserRuleCall_1_0 = (RuleCall)cCondExprAssignment_1.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cThenStatementsAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cThenStatementsExpressionListParserRuleCall_3_0 = (RuleCall)cThenStatementsAssignment_3.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); private final Alternatives cAlternatives_5 = (Alternatives)cGroup.eContents().get(5); private final Group cGroup_5_0 = (Group)cAlternatives_5.eContents().get(0); private final Keyword cElsifKeyword_5_0_0 = (Keyword)cGroup_5_0.eContents().get(0); private final Assignment cElseStatementAssignment_5_0_1 = (Assignment)cGroup_5_0.eContents().get(1); private final RuleCall cElseStatementElseIfExpressionParserRuleCall_5_0_1_0 = (RuleCall)cElseStatementAssignment_5_0_1.eContents().get(0); private final Group cGroup_5_1 = (Group)cAlternatives_5.eContents().get(1); private final Keyword cElseKeyword_5_1_0 = (Keyword)cGroup_5_1.eContents().get(0); private final Assignment cElseStatementAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1); private final RuleCall cElseStatementElseExpressionParserRuleCall_5_1_1_0 = (RuleCall)cElseStatementAssignment_5_1_1.eContents().get(0); //ElseIfExpression returns pp::Expression: // {pp::ElseIfExpression} condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("elsif" // elseStatement=ElseIfExpression | "else" elseStatement=ElseExpression)?; public ParserRule getRule() { return rule; } //{pp::ElseIfExpression} condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("elsif" //elseStatement=ElseIfExpression | "else" elseStatement=ElseExpression)? public Group getGroup() { return cGroup; } //{pp::ElseIfExpression} public Action getElseIfExpressionAction_0() { return cElseIfExpressionAction_0; } //condExpr=AssignmentExpression public Assignment getCondExprAssignment_1() { return cCondExprAssignment_1; } //AssignmentExpression public RuleCall getCondExprAssignmentExpressionParserRuleCall_1_0() { return cCondExprAssignmentExpressionParserRuleCall_1_0; } //"{" public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } //thenStatements+=ExpressionList* public Assignment getThenStatementsAssignment_3() { return cThenStatementsAssignment_3; } //ExpressionList public RuleCall getThenStatementsExpressionListParserRuleCall_3_0() { return cThenStatementsExpressionListParserRuleCall_3_0; } //"}" public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } //(=> "elsif" elseStatement=ElseIfExpression | "else" elseStatement=ElseExpression)? public Alternatives getAlternatives_5() { return cAlternatives_5; } //=> "elsif" elseStatement=ElseIfExpression public Group getGroup_5_0() { return cGroup_5_0; } //=> "elsif" public Keyword getElsifKeyword_5_0_0() { return cElsifKeyword_5_0_0; } //elseStatement=ElseIfExpression public Assignment getElseStatementAssignment_5_0_1() { return cElseStatementAssignment_5_0_1; } //ElseIfExpression public RuleCall getElseStatementElseIfExpressionParserRuleCall_5_0_1_0() { return cElseStatementElseIfExpressionParserRuleCall_5_0_1_0; } //=> "else" elseStatement=ElseExpression public Group getGroup_5_1() { return cGroup_5_1; } //=> "else" public Keyword getElseKeyword_5_1_0() { return cElseKeyword_5_1_0; } //elseStatement=ElseExpression public Assignment getElseStatementAssignment_5_1_1() { return cElseStatementAssignment_5_1_1; } //ElseExpression public RuleCall getElseStatementElseExpressionParserRuleCall_5_1_1_0() { return cElseStatementElseExpressionParserRuleCall_5_1_1_0; } } public class LiteralExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cLiteralBooleanParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cLiteralUndefParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cLiteralDefaultParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cLiteralListParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); private final RuleCall cLiteralHashParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); private final RuleCall cLiteralRegexParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); private final RuleCall cStringExpressionParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); private final RuleCall cLiteralNameOrReferenceParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); //LiteralExpression returns pp::Expression: // LiteralBoolean | LiteralUndef | LiteralDefault | LiteralList | LiteralHash | LiteralRegex | StringExpression | // LiteralNameOrReference; public ParserRule getRule() { return rule; } //LiteralBoolean | LiteralUndef | LiteralDefault | LiteralList | LiteralHash | LiteralRegex | StringExpression | //LiteralNameOrReference public Alternatives getAlternatives() { return cAlternatives; } //LiteralBoolean public RuleCall getLiteralBooleanParserRuleCall_0() { return cLiteralBooleanParserRuleCall_0; } //LiteralUndef public RuleCall getLiteralUndefParserRuleCall_1() { return cLiteralUndefParserRuleCall_1; } //LiteralDefault public RuleCall getLiteralDefaultParserRuleCall_2() { return cLiteralDefaultParserRuleCall_2; } //LiteralList public RuleCall getLiteralListParserRuleCall_3() { return cLiteralListParserRuleCall_3; } //LiteralHash public RuleCall getLiteralHashParserRuleCall_4() { return cLiteralHashParserRuleCall_4; } //LiteralRegex public RuleCall getLiteralRegexParserRuleCall_5() { return cLiteralRegexParserRuleCall_5; } //StringExpression public RuleCall getStringExpressionParserRuleCall_6() { return cStringExpressionParserRuleCall_6; } //LiteralNameOrReference public RuleCall getLiteralNameOrReferenceParserRuleCall_7() { return cLiteralNameOrReferenceParserRuleCall_7; } } public class LiteralNameOrReferenceElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralNameOrReference"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cValueNameParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); //LiteralNameOrReference returns pp::LiteralNameOrReference: // value=name; public ParserRule getRule() { return rule; } //value=name public Assignment getValueAssignment() { return cValueAssignment; } //name public RuleCall getValueNameParserRuleCall_0() { return cValueNameParserRuleCall_0; } } public class UNION_VARIABLE_OR_NAMEElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UNION_VARIABLE_OR_NAME"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cDollarVariableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cNameParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //UNION_VARIABLE_OR_NAME: // dollarVariable | name; public ParserRule getRule() { return rule; } //dollarVariable | name public Alternatives getAlternatives() { return cAlternatives; } //dollarVariable public RuleCall getDollarVariableParserRuleCall_0() { return cDollarVariableParserRuleCall_0; } //name public RuleCall getNameParserRuleCall_1() { return cNameParserRuleCall_1; } } public class ParenthisedExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ParenthisedExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cLeftParenthesisKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Action cParenthesisedExpressionAction_1 = (Action)cGroup.eContents().get(1); private final Assignment cExprAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cExprAssignmentExpressionParserRuleCall_2_0 = (RuleCall)cExprAssignment_2.eContents().get(0); private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3); //// validate that expr is not empty //ParenthisedExpression returns pp::ParenthesisedExpression: // "(" {pp::ParenthesisedExpression} expr=AssignmentExpression? ")"; public ParserRule getRule() { return rule; } //"(" {pp::ParenthesisedExpression} expr=AssignmentExpression? ")" public Group getGroup() { return cGroup; } //"(" public Keyword getLeftParenthesisKeyword_0() { return cLeftParenthesisKeyword_0; } //{pp::ParenthesisedExpression} public Action getParenthesisedExpressionAction_1() { return cParenthesisedExpressionAction_1; } //expr=AssignmentExpression? public Assignment getExprAssignment_2() { return cExprAssignment_2; } //AssignmentExpression public RuleCall getExprAssignmentExpressionParserRuleCall_2_0() { return cExprAssignmentExpressionParserRuleCall_2_0; } //")" public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; } } public class SeparatorExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SeparatorExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cSeparatorExpressionAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cSemicolonKeyword_1 = (Keyword)cGroup.eContents().get(1); //SeparatorExpression returns pp::SeparatorExpression: // {pp::SeparatorExpression} ";"; public ParserRule getRule() { return rule; } //{pp::SeparatorExpression} ";" public Group getGroup() { return cGroup; } //{pp::SeparatorExpression} public Action getSeparatorExpressionAction_0() { return cSeparatorExpressionAction_0; } //";" public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; } } public class VirtualNameOrReferenceElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "VirtualNameOrReference"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cCommercialAtKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cExportedAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cExportedATBooleanParserRuleCall_1_0 = (RuleCall)cExportedAssignment_1.eContents().get(0); private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cValueUnionNameOrReferenceParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0); //VirtualNameOrReference returns pp::VirtualNameOrReference: // "@" exported=ATBoolean? value=unionNameOrReference; public ParserRule getRule() { return rule; } //"@" exported=ATBoolean? value=unionNameOrReference public Group getGroup() { return cGroup; } //"@" public Keyword getCommercialAtKeyword_0() { return cCommercialAtKeyword_0; } //exported=ATBoolean? public Assignment getExportedAssignment_1() { return cExportedAssignment_1; } //ATBoolean public RuleCall getExportedATBooleanParserRuleCall_1_0() { return cExportedATBooleanParserRuleCall_1_0; } //value=unionNameOrReference public Assignment getValueAssignment_2() { return cValueAssignment_2; } //unionNameOrReference public RuleCall getValueUnionNameOrReferenceParserRuleCall_2_0() { return cValueUnionNameOrReferenceParserRuleCall_2_0; } } public class ATBooleanElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ATBoolean"); private final Keyword cCommercialAtKeyword = (Keyword)rule.eContents().get(1); //// Kludge for a serialization issue using exported = '@'? //// Note: has value converter //ATBoolean returns ecore::EBoolean: // "@"; public ParserRule getRule() { return rule; } //"@" public Keyword getCommercialAtKeyword() { return cCommercialAtKeyword; } } public class ImportExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ImportExpression"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cImportExpressionAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cImportKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Group cGroup_2 = (Group)cGroup.eContents().get(2); private final Assignment cValuesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); private final RuleCall cValuesQuotedStringParserRuleCall_2_0_0 = (RuleCall)cValuesAssignment_2_0.eContents().get(0); private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); private final Assignment cValuesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); private final RuleCall cValuesQuotedStringParserRuleCall_2_1_1_0 = (RuleCall)cValuesAssignment_2_1_1.eContents().get(0); //// VALIDATION: No interpolation takes place in DoubleQuotedStrings, a warning will be issued. //// VALIDATION: Checks that import has at least one thing to import //ImportExpression returns pp::ImportExpression: // {pp::ImportExpression} "import" (values+=QuotedString ("," values+=QuotedString)*)?; public ParserRule getRule() { return rule; } //{pp::ImportExpression} "import" (values+=QuotedString ("," values+=QuotedString)*)? public Group getGroup() { return cGroup; } //{pp::ImportExpression} public Action getImportExpressionAction_0() { return cImportExpressionAction_0; } //"import" public Keyword getImportKeyword_1() { return cImportKeyword_1; } //(values+=QuotedString ("," values+=QuotedString)*)? public Group getGroup_2() { return cGroup_2; } //values+=QuotedString public Assignment getValuesAssignment_2_0() { return cValuesAssignment_2_0; } //QuotedString public RuleCall getValuesQuotedStringParserRuleCall_2_0_0() { return cValuesQuotedStringParserRuleCall_2_0_0; } //("," values+=QuotedString)* public Group getGroup_2_1() { return cGroup_2_1; } //"," public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } //values+=QuotedString public Assignment getValuesAssignment_2_1_1() { return cValuesAssignment_2_1_1; } //QuotedString public RuleCall getValuesQuotedStringParserRuleCall_2_1_1_0() { return cValuesQuotedStringParserRuleCall_2_1_1_0; } } public class LiteralListElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralList"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cLiteralListAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Group cGroup_2 = (Group)cGroup.eContents().get(2); private final Assignment cElementsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); private final RuleCall cElementsAssignmentExpressionParserRuleCall_2_0_0 = (RuleCall)cElementsAssignment_2_0.eContents().get(0); private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); private final Assignment cElementsAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); private final RuleCall cElementsAssignmentExpressionParserRuleCall_2_1_1_0 = (RuleCall)cElementsAssignment_2_1_1.eContents().get(0); private final Keyword cCommaKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); //LiteralList returns pp::LiteralList: // {pp::LiteralList} "[" (elements+=AssignmentExpression ("," elements+=AssignmentExpression)* ","?)? "]"; public ParserRule getRule() { return rule; } //{pp::LiteralList} "[" (elements+=AssignmentExpression ("," elements+=AssignmentExpression)* ","?)? "]" public Group getGroup() { return cGroup; } //{pp::LiteralList} public Action getLiteralListAction_0() { return cLiteralListAction_0; } //"[" public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; } //(elements+=AssignmentExpression ("," elements+=AssignmentExpression)* ","?)? public Group getGroup_2() { return cGroup_2; } //elements+=AssignmentExpression public Assignment getElementsAssignment_2_0() { return cElementsAssignment_2_0; } //AssignmentExpression public RuleCall getElementsAssignmentExpressionParserRuleCall_2_0_0() { return cElementsAssignmentExpressionParserRuleCall_2_0_0; } //("," elements+=AssignmentExpression)* public Group getGroup_2_1() { return cGroup_2_1; } //"," public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } //elements+=AssignmentExpression public Assignment getElementsAssignment_2_1_1() { return cElementsAssignment_2_1_1; } //AssignmentExpression public RuleCall getElementsAssignmentExpressionParserRuleCall_2_1_1_0() { return cElementsAssignmentExpressionParserRuleCall_2_1_1_0; } //","? public Keyword getCommaKeyword_2_2() { return cCommaKeyword_2_2; } //"]" public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; } } public class LiteralHashElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralHash"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cLiteralHashAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Group cGroup_2 = (Group)cGroup.eContents().get(2); private final Assignment cElementsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); private final RuleCall cElementsHashEntryParserRuleCall_2_0_0 = (RuleCall)cElementsAssignment_2_0.eContents().get(0); private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); private final Assignment cElementsAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); private final RuleCall cElementsHashEntryParserRuleCall_2_1_1_0 = (RuleCall)cElementsAssignment_2_1_1.eContents().get(0); private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); //LiteralHash returns pp::LiteralHash: // {pp::LiteralHash} "{" (elements+=HashEntry ("," elements+=HashEntry)*)? ","? / * endComma? * / "}"; public ParserRule getRule() { return rule; } //{pp::LiteralHash} "{" (elements+=HashEntry ("," elements+=HashEntry)*)? ","? / * endComma? * / "}" public Group getGroup() { return cGroup; } //{pp::LiteralHash} public Action getLiteralHashAction_0() { return cLiteralHashAction_0; } //"{" public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } //(elements+=HashEntry ("," elements+=HashEntry)*)? public Group getGroup_2() { return cGroup_2; } //elements+=HashEntry public Assignment getElementsAssignment_2_0() { return cElementsAssignment_2_0; } //HashEntry public RuleCall getElementsHashEntryParserRuleCall_2_0_0() { return cElementsHashEntryParserRuleCall_2_0_0; } //("," elements+=HashEntry)* public Group getGroup_2_1() { return cGroup_2_1; } //"," public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } //elements+=HashEntry public Assignment getElementsAssignment_2_1_1() { return cElementsAssignment_2_1_1; } //HashEntry public RuleCall getElementsHashEntryParserRuleCall_2_1_1_0() { return cElementsHashEntryParserRuleCall_2_1_1_0; } //","? public Keyword getCommaKeyword_3() { return cCommaKeyword_3; } //"}" public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } } public class HashEntryElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HashEntry"); private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cKeyLiteralNameOrStringParserRuleCall_0_0 = (RuleCall)cKeyAssignment_0.eContents().get(0); private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cValueAssignmentExpressionParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0); //// Use LiteralNameOrString to get different literals (to preserve quotes) as opposed to just the token value. //// TODO: Check constraints on LiteralNameOrString is ${name::name} allowed ? //HashEntry returns pp::HashEntry: // key=LiteralNameOrString "=>" value=AssignmentExpression; public ParserRule getRule() { return rule; } //key=LiteralNameOrString "=>" value=AssignmentExpression public Group getGroup() { return cGroup; } //key=LiteralNameOrString public Assignment getKeyAssignment_0() { return cKeyAssignment_0; } //LiteralNameOrString public RuleCall getKeyLiteralNameOrStringParserRuleCall_0_0() { return cKeyLiteralNameOrStringParserRuleCall_0_0; } //"=>" public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; } //value=AssignmentExpression public Assignment getValueAssignment_2() { return cValueAssignment_2; } //AssignmentExpression public RuleCall getValueAssignmentExpressionParserRuleCall_2_0() { return cValueAssignmentExpressionParserRuleCall_2_0; } } public class LiteralNameOrStringElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralNameOrString"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cStringExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cLiteralNameParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //// TODO: Check constraints on LiteralNameOrString is ${name::name} allowed ? //LiteralNameOrString returns pp::Expression: // StringExpression | LiteralName; public ParserRule getRule() { return rule; } //StringExpression | LiteralName public Alternatives getAlternatives() { return cAlternatives; } //StringExpression public RuleCall getStringExpressionParserRuleCall_0() { return cStringExpressionParserRuleCall_0; } //LiteralName public RuleCall getLiteralNameParserRuleCall_1() { return cLiteralNameParserRuleCall_1; } } public class BooleanValueElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BooleanValue"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cTrueKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cFalseKeyword_1 = (Keyword)cAlternatives.eContents().get(1); //// has converter //BooleanValue returns ecore::EBoolean: // "true" | "false"; public ParserRule getRule() { return rule; } //"true" | "false" public Alternatives getAlternatives() { return cAlternatives; } //"true" public Keyword getTrueKeyword_0() { return cTrueKeyword_0; } //"false" public Keyword getFalseKeyword_1() { return cFalseKeyword_1; } } public class LiteralBooleanElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralBoolean"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cValueBooleanValueParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); //LiteralBoolean returns pp::LiteralBoolean: // value=BooleanValue; public ParserRule getRule() { return rule; } //value=BooleanValue public Assignment getValueAssignment() { return cValueAssignment; } //BooleanValue public RuleCall getValueBooleanValueParserRuleCall_0() { return cValueBooleanValueParserRuleCall_0; } } public class LiteralDefaultElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralDefault"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cLiteralDefaultAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cDefaultKeyword_1 = (Keyword)cGroup.eContents().get(1); //LiteralDefault returns pp::LiteralDefault: // {pp::LiteralDefault} "default"; public ParserRule getRule() { return rule; } //{pp::LiteralDefault} "default" public Group getGroup() { return cGroup; } //{pp::LiteralDefault} public Action getLiteralDefaultAction_0() { return cLiteralDefaultAction_0; } //"default" public Keyword getDefaultKeyword_1() { return cDefaultKeyword_1; } } public class LiteralUndefElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralUndef"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cLiteralUndefAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cUndefKeyword_1 = (Keyword)cGroup.eContents().get(1); //LiteralUndef returns pp::LiteralUndef: // {pp::LiteralUndef} "undef"; public ParserRule getRule() { return rule; } //{pp::LiteralUndef} "undef" public Group getGroup() { return cGroup; } //{pp::LiteralUndef} public Action getLiteralUndefAction_0() { return cLiteralUndefAction_0; } //"undef" public Keyword getUndefKeyword_1() { return cUndefKeyword_1; } } public class LiteralClassElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralClass"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cLiteralClassAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1); //LiteralClass returns pp::LiteralClass: // {pp::LiteralClass} "class"; public ParserRule getRule() { return rule; } //{pp::LiteralClass} "class" public Group getGroup() { return cGroup; } //{pp::LiteralClass} public Action getLiteralClassAction_0() { return cLiteralClassAction_0; } //"class" public Keyword getClassKeyword_1() { return cClassKeyword_1; } } public class StringExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StringExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cSingleQuotedStringParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cUnquotedStringParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cDoubleQuotedStringParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); //StringExpression returns pp::Expression hidden(WS, SL_COMMENT, ML_COMMENT): // SingleQuotedString | UnquotedString | DoubleQuotedString; public ParserRule getRule() { return rule; } //SingleQuotedString | UnquotedString | DoubleQuotedString public Alternatives getAlternatives() { return cAlternatives; } //SingleQuotedString public RuleCall getSingleQuotedStringParserRuleCall_0() { return cSingleQuotedStringParserRuleCall_0; } //UnquotedString public RuleCall getUnquotedStringParserRuleCall_1() { return cUnquotedStringParserRuleCall_1; } //DoubleQuotedString public RuleCall getDoubleQuotedStringParserRuleCall_2() { return cDoubleQuotedStringParserRuleCall_2; } } public class QuotedStringElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QuotedString"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cDoubleQuotedStringParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cSingleQuotedStringParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //QuotedString returns pp::IQuotedString hidden(WS, SL_COMMENT, ML_COMMENT): // DoubleQuotedString | SingleQuotedString; public ParserRule getRule() { return rule; } //DoubleQuotedString | SingleQuotedString public Alternatives getAlternatives() { return cAlternatives; } //DoubleQuotedString public RuleCall getDoubleQuotedStringParserRuleCall_0() { return cDoubleQuotedStringParserRuleCall_0; } //SingleQuotedString public RuleCall getSingleQuotedStringParserRuleCall_1() { return cSingleQuotedStringParserRuleCall_1; } } public class SingleQuotedStringElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SingleQuotedString"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cSingleQuotedStringAction_0 = (Action)cGroup.eContents().get(0); private final Assignment cTextAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cTextSqTextParserRuleCall_1_0 = (RuleCall)cTextAssignment_1.eContents().get(0); //SingleQuotedString returns pp::SingleQuotedString: // {pp::SingleQuotedString} text=sqText; public ParserRule getRule() { return rule; } //{pp::SingleQuotedString} text=sqText public Group getGroup() { return cGroup; } //{pp::SingleQuotedString} public Action getSingleQuotedStringAction_0() { return cSingleQuotedStringAction_0; } //text=sqText public Assignment getTextAssignment_1() { return cTextAssignment_1; } //sqText public RuleCall getTextSqTextParserRuleCall_1_0() { return cTextSqTextParserRuleCall_1_0; } } public class DoubleQuotedStringElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DoubleQuotedString"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cQuotationMarkKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Action cDoubleQuotedStringAction_1 = (Action)cGroup.eContents().get(1); private final Assignment cStringPartAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cStringPartTextExpressionParserRuleCall_2_0 = (RuleCall)cStringPartAssignment_2.eContents().get(0); private final Keyword cQuotationMarkKeyword_3 = (Keyword)cGroup.eContents().get(3); //// Special declarations to aid syntax coloring of a $ in a special place. ////DQT_DOLLAR : '$' ; //// Double quoted string with expression interpolation //// handles: //// - $ <non variable char or {> is a verbatim $ included in the string //// - $varname - evaluated and included in the string //// - ${ expression } - evaluated and included in the string //// //DoubleQuotedString returns pp::DoubleQuotedString hidden(): // "\"" {pp::DoubleQuotedString} stringPart+=TextExpression* "\""; public ParserRule getRule() { return rule; } //"\"" {pp::DoubleQuotedString} stringPart+=TextExpression* "\"" public Group getGroup() { return cGroup; } //"\"" public Keyword getQuotationMarkKeyword_0() { return cQuotationMarkKeyword_0; } //{pp::DoubleQuotedString} public Action getDoubleQuotedStringAction_1() { return cDoubleQuotedStringAction_1; } //stringPart+=TextExpression* public Assignment getStringPartAssignment_2() { return cStringPartAssignment_2; } //TextExpression public RuleCall getStringPartTextExpressionParserRuleCall_2_0() { return cStringPartTextExpressionParserRuleCall_2_0; } //"\"" public Keyword getQuotationMarkKeyword_3() { return cQuotationMarkKeyword_3; } } public class TextExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TextExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); private final Action cVerbatimTEAction_0_0 = (Action)cGroup_0.eContents().get(0); private final Assignment cTextAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); private final RuleCall cTextDoubleStringCharactersParserRuleCall_0_1_0 = (RuleCall)cTextAssignment_0_1.eContents().get(0); private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); private final Action cExpressionTEAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Keyword cDollarSignLeftCurlyBracketKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); private final Assignment cExpressionAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); private final RuleCall cExpressionExpressionWithHiddenParserRuleCall_1_2_0 = (RuleCall)cExpressionAssignment_1_2.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3); private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); private final Action cVariableTEAction_2_0 = (Action)cGroup_2.eContents().get(0); private final Assignment cVarNameAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); private final RuleCall cVarNameDollarVariableParserRuleCall_2_1_0 = (RuleCall)cVarNameAssignment_2_1.eContents().get(0); //TextExpression returns pp::TextExpression hidden(): // {pp::VerbatimTE} text=doubleStringCharacters | {pp::ExpressionTE} "${" expression=ExpressionWithHidden "}" | // {pp::VariableTE} varName=dollarVariable; public ParserRule getRule() { return rule; } //{pp::VerbatimTE} text=doubleStringCharacters | {pp::ExpressionTE} "${" expression=ExpressionWithHidden "}" | //{pp::VariableTE} varName=dollarVariable public Alternatives getAlternatives() { return cAlternatives; } //{pp::VerbatimTE} text=doubleStringCharacters public Group getGroup_0() { return cGroup_0; } //{pp::VerbatimTE} public Action getVerbatimTEAction_0_0() { return cVerbatimTEAction_0_0; } //text=doubleStringCharacters public Assignment getTextAssignment_0_1() { return cTextAssignment_0_1; } //doubleStringCharacters public RuleCall getTextDoubleStringCharactersParserRuleCall_0_1_0() { return cTextDoubleStringCharactersParserRuleCall_0_1_0; } //{pp::ExpressionTE} "${" expression=ExpressionWithHidden "}" public Group getGroup_1() { return cGroup_1; } //{pp::ExpressionTE} public Action getExpressionTEAction_1_0() { return cExpressionTEAction_1_0; } //"${" public Keyword getDollarSignLeftCurlyBracketKeyword_1_1() { return cDollarSignLeftCurlyBracketKeyword_1_1; } //expression=ExpressionWithHidden public Assignment getExpressionAssignment_1_2() { return cExpressionAssignment_1_2; } //ExpressionWithHidden public RuleCall getExpressionExpressionWithHiddenParserRuleCall_1_2_0() { return cExpressionExpressionWithHiddenParserRuleCall_1_2_0; } //"}" public Keyword getRightCurlyBracketKeyword_1_3() { return cRightCurlyBracketKeyword_1_3; } //{pp::VariableTE} varName=dollarVariable public Group getGroup_2() { return cGroup_2; } //{pp::VariableTE} public Action getVariableTEAction_2_0() { return cVariableTEAction_2_0; } //varName=dollarVariable public Assignment getVarNameAssignment_2_1() { return cVarNameAssignment_2_1; } //dollarVariable public RuleCall getVarNameDollarVariableParserRuleCall_2_1_0() { return cVarNameDollarVariableParserRuleCall_2_1_0; } } public class ExpressionWithHiddenElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ExpressionWithHidden"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cParenthesisedExpressionAction_0 = (Action)cGroup.eContents().get(0); private final Assignment cExprAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cExprAssignmentExpressionParserRuleCall_1_0 = (RuleCall)cExprAssignment_1.eContents().get(0); //// Consumation without creation is ok, if made optional where it is assigned, it is not possible to //// insert WS and comments into ExpressioNTextExpression. //ExpressionWithHidden returns pp::Expression hidden(WS, SL_COMMENT, ML_COMMENT): // {pp::ParenthesisedExpression} expr=AssignmentExpression?; public ParserRule getRule() { return rule; } //{pp::ParenthesisedExpression} expr=AssignmentExpression? public Group getGroup() { return cGroup; } //{pp::ParenthesisedExpression} public Action getParenthesisedExpressionAction_0() { return cParenthesisedExpressionAction_0; } //expr=AssignmentExpression? public Assignment getExprAssignment_1() { return cExprAssignment_1; } //AssignmentExpression public RuleCall getExprAssignmentExpressionParserRuleCall_1_0() { return cExprAssignmentExpressionParserRuleCall_1_0; } } public class StringPartElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StringPart"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cVerbatimTEAction_0 = (Action)cGroup.eContents().get(0); private final Assignment cTextAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cTextDoubleStringCharactersParserRuleCall_1_0 = (RuleCall)cTextAssignment_1.eContents().get(0); /// *hidden()* / StringPart returns pp::TextExpression: // {pp::VerbatimTE} text=doubleStringCharacters?; public ParserRule getRule() { return rule; } //{pp::VerbatimTE} text=doubleStringCharacters? public Group getGroup() { return cGroup; } //{pp::VerbatimTE} public Action getVerbatimTEAction_0() { return cVerbatimTEAction_0; } //text=doubleStringCharacters? public Assignment getTextAssignment_1() { return cTextAssignment_1; } //doubleStringCharacters public RuleCall getTextDoubleStringCharactersParserRuleCall_1_0() { return cTextDoubleStringCharactersParserRuleCall_1_0; } } public class UnquotedStringElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnquotedString"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cUnquotedStringAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cDollarSignLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Assignment cExpressionAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cExpressionAssignmentExpressionParserRuleCall_2_0 = (RuleCall)cExpressionAssignment_2.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); //UnquotedString returns pp::Expression: // allow comments between ${ and } //// validate that Expression is not empty == warning // {pp::UnquotedString} "${" expression=AssignmentExpression? "}"; public ParserRule getRule() { return rule; } //// allow comments between ${ and } //// validate that Expression is not empty == warning //{pp::UnquotedString} "${" expression=AssignmentExpression? "}" public Group getGroup() { return cGroup; } //// allow comments between ${ and } //// validate that Expression is not empty == warning //{pp::UnquotedString} public Action getUnquotedStringAction_0() { return cUnquotedStringAction_0; } //"${" public Keyword getDollarSignLeftCurlyBracketKeyword_1() { return cDollarSignLeftCurlyBracketKeyword_1; } //expression=AssignmentExpression? public Assignment getExpressionAssignment_2() { return cExpressionAssignment_2; } //AssignmentExpression public RuleCall getExpressionAssignmentExpressionParserRuleCall_2_0() { return cExpressionAssignmentExpressionParserRuleCall_2_0; } //"}" public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; } } public class SqTextElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "sqText"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cApostropheKeyword_0 = (Keyword)cGroup.eContents().get(0); private final RuleCall cSingleStringCharactersParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1); private final Keyword cApostropheKeyword_2 = (Keyword)cGroup.eContents().get(2); //// Has data conversion that strips leading/trailing single quotes //sqText returns ecore::EString hidden(): // "\'" singleStringCharacters? "\'"; public ParserRule getRule() { return rule; } //=> "\'" singleStringCharacters? "\'" public Group getGroup() { return cGroup; } //=> "\'" public Keyword getApostropheKeyword_0() { return cApostropheKeyword_0; } //singleStringCharacters? public RuleCall getSingleStringCharactersParserRuleCall_1() { return cSingleStringCharactersParserRuleCall_1; } //"\'" public Keyword getApostropheKeyword_2() { return cApostropheKeyword_2; } } public class LiteralRegexElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralRegex"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cValueREGULAR_EXPRESSIONTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); //// Has validation rule that checks regex validity //LiteralRegex returns pp::LiteralRegex: // value=REGULAR_EXPRESSION; public ParserRule getRule() { return rule; } //value=REGULAR_EXPRESSION public Assignment getValueAssignment() { return cValueAssignment; } //REGULAR_EXPRESSION public RuleCall getValueREGULAR_EXPRESSIONTerminalRuleCall_0() { return cValueREGULAR_EXPRESSIONTerminalRuleCall_0; } } public class LiteralNameElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LiteralName"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cValueNameParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); //// VALIDATION: checks that the name is a NAME (and not a reference). //LiteralName returns pp::LiteralName: // value=name; public ParserRule getRule() { return rule; } //value=name public Assignment getValueAssignment() { return cValueAssignment; } //name public RuleCall getValueNameParserRuleCall_0() { return cValueNameParserRuleCall_0; } } public class VariableExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "VariableExpression"); private final Assignment cVarNameAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cVarNameDollarVariableParserRuleCall_0 = (RuleCall)cVarNameAssignment.eContents().get(0); //VariableExpression returns pp::VariableExpression: // varName=dollarVariable; public ParserRule getRule() { return rule; } //varName=dollarVariable public Assignment getVarNameAssignment() { return cVarNameAssignment; } //dollarVariable public RuleCall getVarNameDollarVariableParserRuleCall_0() { return cVarNameDollarVariableParserRuleCall_0; } } public class DollarVariableElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "dollarVariable"); private final RuleCall cDOLLAR_VARTerminalRuleCall = (RuleCall)rule.eContents().get(1); //dollarVariable hidden(): // DOLLAR_VAR; public ParserRule getRule() { return rule; } //DOLLAR_VAR public RuleCall getDOLLAR_VARTerminalRuleCall() { return cDOLLAR_VARTerminalRuleCall; } } public class KeywordElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "keyword"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Keyword cAndKeyword_0 = (Keyword)cAlternatives.eContents().get(0); private final Keyword cCaseKeyword_1 = (Keyword)cAlternatives.eContents().get(1); private final Keyword cClassKeyword_2 = (Keyword)cAlternatives.eContents().get(2); private final Keyword cDefaultKeyword_3 = (Keyword)cAlternatives.eContents().get(3); private final Keyword cDefineKeyword_4 = (Keyword)cAlternatives.eContents().get(4); private final Keyword cElseKeyword_5 = (Keyword)cAlternatives.eContents().get(5); private final Keyword cElsifKeyword_6 = (Keyword)cAlternatives.eContents().get(6); private final Keyword cInKeyword_7 = (Keyword)cAlternatives.eContents().get(7); private final Keyword cInheritsKeyword_8 = (Keyword)cAlternatives.eContents().get(8); private final Keyword cImportKeyword_9 = (Keyword)cAlternatives.eContents().get(9); private final Keyword cNodeKeyword_10 = (Keyword)cAlternatives.eContents().get(10); private final Keyword cOrKeyword_11 = (Keyword)cAlternatives.eContents().get(11); private final Keyword cUndefKeyword_12 = (Keyword)cAlternatives.eContents().get(12); private final Keyword cTrueKeyword_13 = (Keyword)cAlternatives.eContents().get(13); private final Keyword cFalseKeyword_14 = (Keyword)cAlternatives.eContents().get(14); private final Keyword cIfKeyword_15 = (Keyword)cAlternatives.eContents().get(15); private final Keyword cUnlessKeyword_16 = (Keyword)cAlternatives.eContents().get(16); //keyword: // "and" | "case" | "class" | "default" | "define" | "else" | "elsif" | "in" | "inherits" | "import" | "node" | "or" | // "undef" | "true" | "false" | "if" | "unless"; public ParserRule getRule() { return rule; } //"and" | "case" | "class" | "default" | "define" | "else" | "elsif" | "in" | "inherits" | "import" | "node" | "or" | //"undef" | "true" | "false" | "if" | "unless" public Alternatives getAlternatives() { return cAlternatives; } //"and" public Keyword getAndKeyword_0() { return cAndKeyword_0; } //"case" public Keyword getCaseKeyword_1() { return cCaseKeyword_1; } //"class" public Keyword getClassKeyword_2() { return cClassKeyword_2; } //"default" public Keyword getDefaultKeyword_3() { return cDefaultKeyword_3; } //"define" public Keyword getDefineKeyword_4() { return cDefineKeyword_4; } //"else" public Keyword getElseKeyword_5() { return cElseKeyword_5; } //"elsif" public Keyword getElsifKeyword_6() { return cElsifKeyword_6; } //"in" public Keyword getInKeyword_7() { return cInKeyword_7; } //"inherits" public Keyword getInheritsKeyword_8() { return cInheritsKeyword_8; } //"import" public Keyword getImportKeyword_9() { return cImportKeyword_9; } //"node" public Keyword getNodeKeyword_10() { return cNodeKeyword_10; } //"or" public Keyword getOrKeyword_11() { return cOrKeyword_11; } //"undef" public Keyword getUndefKeyword_12() { return cUndefKeyword_12; } //"true" public Keyword getTrueKeyword_13() { return cTrueKeyword_13; } //"false" public Keyword getFalseKeyword_14() { return cFalseKeyword_14; } //"if" public Keyword getIfKeyword_15() { return cIfKeyword_15; } //"unless" public Keyword getUnlessKeyword_16() { return cUnlessKeyword_16; } } public class AttributeNameElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "attributeName"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cNameParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cKeywordParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); //attributeName: // name | keyword; public ParserRule getRule() { return rule; } //name | keyword public Alternatives getAlternatives() { return cAlternatives; } //name public RuleCall getNameParserRuleCall_0() { return cNameParserRuleCall_0; } //keyword public RuleCall getKeywordParserRuleCall_1() { return cKeywordParserRuleCall_1; } } public class NameElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "name"); private final RuleCall cWORD_CHARSTerminalRuleCall = (RuleCall)rule.eContents().get(1); //// a puppet grammar glitch allows '::' any number of times (\w*::)*\w+. Validation checks correctness. //name: // WORD_CHARS; public ParserRule getRule() { return rule; } //WORD_CHARS public RuleCall getWORD_CHARSTerminalRuleCall() { return cWORD_CHARSTerminalRuleCall; } } public class ClassnameElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "classname"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cNameParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final Keyword cClassKeyword_1 = (Keyword)cAlternatives.eContents().get(1); //classname: // name | "class"; public ParserRule getRule() { return rule; } //name | "class" public Alternatives getAlternatives() { return cAlternatives; } //name public RuleCall getNameParserRuleCall_0() { return cNameParserRuleCall_0; } //"class" public Keyword getClassKeyword_1() { return cClassKeyword_1; } } public class UnionNameOrReferenceElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "unionNameOrReference"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cWORD_CHARSTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final Keyword cClassKeyword_1 = (Keyword)cAlternatives.eContents().get(1); private final Keyword cDefaultKeyword_2 = (Keyword)cAlternatives.eContents().get(2); //// captures names and references, complicated by the fact that a keyword may be part of the name //// if the name contains '::' - for more info see the PPLexer //unionNameOrReference: // WORD_CHARS | "class" | "default"; public ParserRule getRule() { return rule; } //WORD_CHARS | "class" | "default" public Alternatives getAlternatives() { return cAlternatives; } //WORD_CHARS public RuleCall getWORD_CHARSTerminalRuleCall_0() { return cWORD_CHARSTerminalRuleCall_0; } //"class" public Keyword getClassKeyword_1() { return cClassKeyword_1; } //"default" public Keyword getDefaultKeyword_2() { return cDefaultKeyword_2; } } public class DoubleStringCharactersElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "doubleStringCharacters"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cWORD_CHARSTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cANY_OTHERTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cWSTerminalRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final Keyword cReverseSolidusQuotationMarkKeyword_3 = (Keyword)cAlternatives.eContents().get(3); private final Keyword cReverseSolidusApostropheKeyword_4 = (Keyword)cAlternatives.eContents().get(4); private final Keyword cReverseSolidusDollarSignKeyword_5 = (Keyword)cAlternatives.eContents().get(5); private final Keyword cReverseSolidusDollarSignLeftCurlyBracketKeyword_6 = (Keyword)cAlternatives.eContents().get(6); private final Keyword cReverseSolidusReverseSolidusKeyword_7 = (Keyword)cAlternatives.eContents().get(7); //// special rules in lexer will deliver everything as one of these when in a string //doubleStringCharacters hidden(): // (WORD_CHARS | ANY_OTHER | WS | "\\\"" | "\\\'" | "\\$" | "\\${" | "\\\\")+; public ParserRule getRule() { return rule; } //(WORD_CHARS | ANY_OTHER | WS | "\\\"" | "\\\'" | "\\$" | "\\${" | "\\\\")+ public Alternatives getAlternatives() { return cAlternatives; } //WORD_CHARS public RuleCall getWORD_CHARSTerminalRuleCall_0() { return cWORD_CHARSTerminalRuleCall_0; } //ANY_OTHER public RuleCall getANY_OTHERTerminalRuleCall_1() { return cANY_OTHERTerminalRuleCall_1; } //WS public RuleCall getWSTerminalRuleCall_2() { return cWSTerminalRuleCall_2; } //"\\\"" public Keyword getReverseSolidusQuotationMarkKeyword_3() { return cReverseSolidusQuotationMarkKeyword_3; } //"\\\'" public Keyword getReverseSolidusApostropheKeyword_4() { return cReverseSolidusApostropheKeyword_4; } //"\\$" public Keyword getReverseSolidusDollarSignKeyword_5() { return cReverseSolidusDollarSignKeyword_5; } //"\\${" public Keyword getReverseSolidusDollarSignLeftCurlyBracketKeyword_6() { return cReverseSolidusDollarSignLeftCurlyBracketKeyword_6; } //"\\\\" public Keyword getReverseSolidusReverseSolidusKeyword_7() { return cReverseSolidusReverseSolidusKeyword_7; } } public class SingleStringCharactersElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "singleStringCharacters"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cWORD_CHARSTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cANY_OTHERTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cWSTerminalRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cDOLLAR_VARTerminalRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); private final Keyword cDollarSignLeftCurlyBracketKeyword_4 = (Keyword)cAlternatives.eContents().get(4); private final Keyword cReverseSolidusQuotationMarkKeyword_5 = (Keyword)cAlternatives.eContents().get(5); private final Keyword cReverseSolidusApostropheKeyword_6 = (Keyword)cAlternatives.eContents().get(6); private final Keyword cReverseSolidusDollarSignKeyword_7 = (Keyword)cAlternatives.eContents().get(7); private final Keyword cReverseSolidusDollarSignLeftCurlyBracketKeyword_8 = (Keyword)cAlternatives.eContents().get(8); private final Keyword cReverseSolidusReverseSolidusKeyword_9 = (Keyword)cAlternatives.eContents().get(9); //// special rules in lexer will deliver everything as one of these when in a string //singleStringCharacters hidden(): // (WORD_CHARS // | '$' // terminates dq-, but not sq- string // | ANY_OTHER | WS | DOLLAR_VAR | // terminates dq-, but not sq- string // "${" | "\\\"" | "\\\'" | "\\$" | "\\${" | "\\\\")+; public ParserRule getRule() { return rule; } //(WORD_CHARS // | '$' // terminates dq-, but not sq- string //| ANY_OTHER | WS | DOLLAR_VAR | // terminates dq-, but not sq- string //"${" | "\\\"" | "\\\'" | "\\$" | "\\${" | "\\\\")+ public Alternatives getAlternatives() { return cAlternatives; } //WORD_CHARS public RuleCall getWORD_CHARSTerminalRuleCall_0() { return cWORD_CHARSTerminalRuleCall_0; } //ANY_OTHER public RuleCall getANY_OTHERTerminalRuleCall_1() { return cANY_OTHERTerminalRuleCall_1; } //WS public RuleCall getWSTerminalRuleCall_2() { return cWSTerminalRuleCall_2; } //DOLLAR_VAR public RuleCall getDOLLAR_VARTerminalRuleCall_3() { return cDOLLAR_VARTerminalRuleCall_3; } //// terminates dq-, but not sq- string //"${" public Keyword getDollarSignLeftCurlyBracketKeyword_4() { return cDollarSignLeftCurlyBracketKeyword_4; } //"\\\"" public Keyword getReverseSolidusQuotationMarkKeyword_5() { return cReverseSolidusQuotationMarkKeyword_5; } //"\\\'" public Keyword getReverseSolidusApostropheKeyword_6() { return cReverseSolidusApostropheKeyword_6; } //"\\$" public Keyword getReverseSolidusDollarSignKeyword_7() { return cReverseSolidusDollarSignKeyword_7; } //"\\${" public Keyword getReverseSolidusDollarSignLeftCurlyBracketKeyword_8() { return cReverseSolidusDollarSignLeftCurlyBracketKeyword_8; } //"\\\\" public Keyword getReverseSolidusReverseSolidusKeyword_9() { return cReverseSolidusReverseSolidusKeyword_9; } } private PuppetManifestElements pPuppetManifest; private ExpressionElements pExpression; private ExpressionListElements pExpressionList; private EdgeOperatorElements pEdgeOperator; private RelationshipExpressionElements pRelationshipExpression; private ResourceExpressionElements pResourceExpression; private ResourceBodyElements pResourceBody; private AttributeOperationElements pAttributeOperation; private AttributeOperationsElements pAttributeOperations; private AssignmentExpressionElements pAssignmentExpression; private AppendExpressionElements pAppendExpression; private OrExpressionElements pOrExpression; private AndExpressionElements pAndExpression; private RelationalOperatorElements pRelationalOperator; private RelationalExpressionElements pRelationalExpression; private EqualityOperatorElements pEqualityOperator; private EqualityExpressionElements pEqualityExpression; private ShiftOperatorElements pShiftOperator; private ShiftExpressionElements pShiftExpression; private AdditiveOperatorElements pAdditiveOperator; private AdditiveExpressionElements pAdditiveExpression; private MultiplicativeOperatorElements pMultiplicativeOperator; private MultiplicativeExpressionElements pMultiplicativeExpression; private MatchingOperatorElements pMatchingOperator; private MatchingExpressionElements pMatchingExpression; private InExpressionElements pInExpression; private UnaryOrHigherExpressionElements pUnaryOrHigherExpression; private UnaryMinusExpressionElements pUnaryMinusExpression; private NotExpressionElements pNotExpression; private CollectExpressionElements pCollectExpression; private CollectQueryElements pCollectQuery; private VirtualCollectQueryElements pVirtualCollectQuery; private ExportedCollectQueryElements pExportedCollectQuery; private SelectorExpressionElements pSelectorExpression; private SelectorEntryElements pSelectorEntry; private AtExpressionElements pAtExpression; private MethodCallElements pMethodCall; private LPARBooleanElements pLPARBoolean; private LambdaExpressionElements pLambdaExpression; private Java8LambdaElements pJava8Lambda; private RubyLambdaElements pRubyLambda; private LambdaParametersElements pLambdaParameters; private FunctionCallElements pFunctionCall; private PrimaryExpressionElements pPrimaryExpression; private NodeDefinitionElements pNodeDefinition; private HostReferenceElements pHostReference; private HostClassDefinitionElements pHostClassDefinition; private ParentNameElements pParentName; private DefinitionElements pDefinition; private DefinitionArgumentListElements pDefinitionArgumentList; private DefinitionArgumentElements pDefinitionArgument; private CaseExpressionElements pCaseExpression; private CaseElements pCase; private UnlessExpressionElements pUnlessExpression; private IfExpressionElements pIfExpression; private ElseExpressionElements pElseExpression; private ElseIfExpressionElements pElseIfExpression; private LiteralExpressionElements pLiteralExpression; private LiteralNameOrReferenceElements pLiteralNameOrReference; private UNION_VARIABLE_OR_NAMEElements pUNION_VARIABLE_OR_NAME; private ParenthisedExpressionElements pParenthisedExpression; private SeparatorExpressionElements pSeparatorExpression; private VirtualNameOrReferenceElements pVirtualNameOrReference; private ATBooleanElements pATBoolean; private ImportExpressionElements pImportExpression; private LiteralListElements pLiteralList; private LiteralHashElements pLiteralHash; private HashEntryElements pHashEntry; private LiteralNameOrStringElements pLiteralNameOrString; private BooleanValueElements pBooleanValue; private LiteralBooleanElements pLiteralBoolean; private LiteralDefaultElements pLiteralDefault; private LiteralUndefElements pLiteralUndef; private LiteralClassElements pLiteralClass; private StringExpressionElements pStringExpression; private QuotedStringElements pQuotedString; private SingleQuotedStringElements pSingleQuotedString; private DoubleQuotedStringElements pDoubleQuotedString; private TextExpressionElements pTextExpression; private ExpressionWithHiddenElements pExpressionWithHidden; private StringPartElements pStringPart; private UnquotedStringElements pUnquotedString; private SqTextElements pSqText; private LiteralRegexElements pLiteralRegex; private LiteralNameElements pLiteralName; private VariableExpressionElements pVariableExpression; private DollarVariableElements pDollarVariable; private KeywordElements pKeyword; private AttributeNameElements pAttributeName; private NameElements pName; private ClassnameElements pClassname; private UnionNameOrReferenceElements pUnionNameOrReference; private DoubleStringCharactersElements pDoubleStringCharacters; private SingleStringCharactersElements pSingleStringCharacters; private TerminalRule tML_COMMENT; private TerminalRule tSL_COMMENT; private TerminalRule tWS; private TerminalRule tDOLLAR_VAR; private TerminalRule tWORD_CHARS; private TerminalRule tNUMBER; private TerminalRule tLAMBDA; private TerminalRule tNUMERIC; private TerminalRule tREGULAR_EXPRESSION; private TerminalRule tRE_BODY; private TerminalRule tRE_FIRST_CHAR; private TerminalRule tRE_FOLLOW_CHAR; private TerminalRule tRE_BACKSLASH_SEQUENCE; private TerminalRule tRE_FLAGS; private TerminalRule tANY_OTHER; private final Grammar grammar; @Inject public PPGrammarAccess(GrammarProvider grammarProvider) { this.grammar = internalFindGrammar(grammarProvider); } protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { Grammar grammar = grammarProvider.getGrammar(this); while (grammar != null) { if ("org.cloudsmith.geppetto.pp.dsl.PP".equals(grammar.getName())) { return grammar; } List<Grammar> grammars = grammar.getUsedGrammars(); if (!grammars.isEmpty()) { grammar = grammars.iterator().next(); } else { return null; } } return grammar; } public Grammar getGrammar() { return grammar; } //PuppetManifest returns pp::PuppetManifest: // {pp::PuppetManifest} statements+=ExpressionList*; public PuppetManifestElements getPuppetManifestAccess() { return (pPuppetManifest != null) ? pPuppetManifest : (pPuppetManifest = new PuppetManifestElements()); } public ParserRule getPuppetManifestRule() { return getPuppetManifestAccess().getRule(); } //// -- EXPRESSION //// (Refers to the expression with the lowest precedence) //// Should be used by expressions that allow a single Expression //Expression returns pp::Expression: // RelationshipExpression; public ExpressionElements getExpressionAccess() { return (pExpression != null) ? pExpression : (pExpression = new ExpressionElements()); } public ParserRule getExpressionRule() { return getExpressionAccess().getRule(); } //// --EXPRESSION LIST //// Should be used by expressions that allow a sequence of expressions (as such //// a sequence can include non-parenthesized function calls (which are detected after //// parsing) //ExpressionList returns pp::Expression: // RelationshipExpression ({pp::ExprList.expressions+=current} "," expressions+=RelationshipExpression ("," // expressions+=RelationshipExpression)*)? | SeparatorExpression; public ExpressionListElements getExpressionListAccess() { return (pExpressionList != null) ? pExpressionList : (pExpressionList = new ExpressionListElements()); } public ParserRule getExpressionListRule() { return getExpressionListAccess().getRule(); } //// LOWEST PRECEDENCE //// left relationship //// left assignment //// left OR //// left AND //// left Relational: GREATEREQUAL GREATERTHAN LESSTHAN LESSEQUAL //// left Equality: NOTEQUAL ISEQUAL //// left Shift: LSHIFT RSHIFT //// left Additive: '-' PLUS //// left Multiplicative: TIMES DIV //// left Matching: IN MATCH NOMATCH //// nonassoc UMINUS //// right NOT //// 'primary' //// HIGHEST //// Relationship //// Note that RelationshipExpression has lowest precedence since it has an operator //// '<-' that otherwise clashes with LT UnaryMinus //// //// VALIDATION checks that left and right are one of: //// - ResourceExpression (but not a ResourceOverride, or virtual resource) //// - ResourceReference //// - CollectExpression //EdgeOperator: // "->" | "<-" | "~>" | "<~"; public EdgeOperatorElements getEdgeOperatorAccess() { return (pEdgeOperator != null) ? pEdgeOperator : (pEdgeOperator = new EdgeOperatorElements()); } public ParserRule getEdgeOperatorRule() { return getEdgeOperatorAccess().getRule(); } //RelationshipExpression returns pp::Expression: // ResourceExpression ({pp::RelationshipExpression.leftExpr=current} opName=EdgeOperator rightExpr=ResourceExpression)*; public RelationshipExpressionElements getRelationshipExpressionAccess() { return (pRelationshipExpression != null) ? pRelationshipExpression : (pRelationshipExpression = new RelationshipExpressionElements()); } public ParserRule getRelationshipExpressionRule() { return getRelationshipExpressionAccess().getRule(); } //// -- ResourceExpression //// handles: //// - resource definition 'name {' //// - defaults for resource definitions 'Name {' //// - resource overrides 'expr [exprlist] {' //// - virtual and exported resources @name {, and @@name { //// The parser makes no distinction between these and allows nested expresions compatible with all three //// VALIDATION checks: //// - if resourceClass != CLASS_REF, then ResourceBodies must have a name //// - if resourceClass == CLASS_REF or AtExpression, //// then only one ResourceBody is allowed, and ResourceBody can not have a name //// - if resourceExpr = AtExpression the ResourceBody's attribute list may contain additions, otherwise not //// //ResourceExpression returns pp::Expression: // AssignmentExpression ({pp::ResourceExpression.resourceExpr=current} "{" (resourceData+=ResourceBody (";" // resourceData+=ResourceBody)* ";"?)? "}")? | {pp::ResourceExpression} resourceExpr=LiteralClass "{" // (resourceData+=ResourceBody (";" resourceData+=ResourceBody)* ";"?)? "}"; public ResourceExpressionElements getResourceExpressionAccess() { return (pResourceExpression != null) ? pResourceExpression : (pResourceExpression = new ResourceExpressionElements()); } public ParserRule getResourceExpressionRule() { return getResourceExpressionAccess().getRule(); } //// Note: allows all AttributeOperation subtypes but this depends on the parent's type //// VALIDATION checks allowed types //ResourceBody returns pp::ResourceBody: // nameExpr=Expression ":" attributes=AttributeOperations? | attributes=AttributeOperations; public ResourceBodyElements getResourceBodyAccess() { return (pResourceBody != null) ? pResourceBody : (pResourceBody = new ResourceBodyElements()); } public ParserRule getResourceBodyRule() { return getResourceBodyAccess().getRule(); } //// VALIDATION: key is a NAME, op is supported and Expression is not null //// CONTENT ASSIST: must have op and value as optional, or state is nearly always wrong for CA. //AttributeOperation returns pp::AttributeOperation: // {pp::AttributeOperation} key=attributeName (op=("=>" | "+>") value=Expression)?; public AttributeOperationElements getAttributeOperationAccess() { return (pAttributeOperation != null) ? pAttributeOperation : (pAttributeOperation = new AttributeOperationElements()); } public ParserRule getAttributeOperationRule() { return getAttributeOperationAccess().getRule(); } //// VALIDATION: checks that there are ',' between operations //// NOTE: if ',' is mandatory in grammar, backtracking will think statement is a different (faulty) //// statement. //AttributeOperations returns pp::AttributeOperations: // attributes+=AttributeOperation ("," attributes+=AttributeOperation | attributes+=AttributeOperation)* ","?; public AttributeOperationsElements getAttributeOperationsAccess() { return (pAttributeOperations != null) ? pAttributeOperations : (pAttributeOperations = new AttributeOperationsElements()); } public ParserRule getAttributeOperationsRule() { return getAttributeOperationsAccess().getRule(); } /// * // NOTE: This construct is required due to an Xtext bug, it would be preferred to state (',' )? directly //// in rules using endComma as this makes formatting work ok. The construct below will hide the and //// formatting needs to be aware of the in an endComma. //endComma : ',' ; // * // * / // VALIDATION checks leftExpr must be '@' or Variable //AssignmentExpression returns pp::Expression: // AppendExpression ({pp::AssignmentExpression.leftExpr=current} "=" rightExpr=AppendExpression)?; public AssignmentExpressionElements getAssignmentExpressionAccess() { return (pAssignmentExpression != null) ? pAssignmentExpression : (pAssignmentExpression = new AssignmentExpressionElements()); } public ParserRule getAssignmentExpressionRule() { return getAssignmentExpressionAccess().getRule(); } //// VALIDATION checks leftExpr must be Variable (does not seem to allow append to at - e.g. a[1] +=) //AppendExpression returns pp::Expression: // OrExpression ({pp::AppendExpression.leftExpr=current} "+=" rightExpr=OrExpression)?; public AppendExpressionElements getAppendExpressionAccess() { return (pAppendExpression != null) ? pAppendExpression : (pAppendExpression = new AppendExpressionElements()); } public ParserRule getAppendExpressionRule() { return getAppendExpressionAccess().getRule(); } //OrExpression returns pp::Expression: // AndExpression ({pp::OrExpression.leftExpr=current} "or" rightExpr=AndExpression)*; public OrExpressionElements getOrExpressionAccess() { return (pOrExpression != null) ? pOrExpression : (pOrExpression = new OrExpressionElements()); } public ParserRule getOrExpressionRule() { return getOrExpressionAccess().getRule(); } //AndExpression returns pp::Expression: // RelationalExpression ({pp::AndExpression.leftExpr=current} "and" rightExpr=RelationalExpression)*; public AndExpressionElements getAndExpressionAccess() { return (pAndExpression != null) ? pAndExpression : (pAndExpression = new AndExpressionElements()); } public ParserRule getAndExpressionRule() { return getAndExpressionAccess().getRule(); } //RelationalOperator: // ">=" | "<=" | ">" | "<"; public RelationalOperatorElements getRelationalOperatorAccess() { return (pRelationalOperator != null) ? pRelationalOperator : (pRelationalOperator = new RelationalOperatorElements()); } public ParserRule getRelationalOperatorRule() { return getRelationalOperatorAccess().getRule(); } //RelationalExpression returns pp::Expression: // EqualityExpression ({pp::RelationalExpression.leftExpr=current} opName=RelationalOperator // rightExpr=EqualityExpression)*; public RelationalExpressionElements getRelationalExpressionAccess() { return (pRelationalExpression != null) ? pRelationalExpression : (pRelationalExpression = new RelationalExpressionElements()); } public ParserRule getRelationalExpressionRule() { return getRelationalExpressionAccess().getRule(); } //EqualityOperator: // "==" | "!="; public EqualityOperatorElements getEqualityOperatorAccess() { return (pEqualityOperator != null) ? pEqualityOperator : (pEqualityOperator = new EqualityOperatorElements()); } public ParserRule getEqualityOperatorRule() { return getEqualityOperatorAccess().getRule(); } //EqualityExpression returns pp::Expression: // ShiftExpression ({pp::EqualityExpression.leftExpr=current} opName=EqualityOperator rightExpr=ShiftExpression)*; public EqualityExpressionElements getEqualityExpressionAccess() { return (pEqualityExpression != null) ? pEqualityExpression : (pEqualityExpression = new EqualityExpressionElements()); } public ParserRule getEqualityExpressionRule() { return getEqualityExpressionAccess().getRule(); } //ShiftOperator: // "<<" | ">>"; public ShiftOperatorElements getShiftOperatorAccess() { return (pShiftOperator != null) ? pShiftOperator : (pShiftOperator = new ShiftOperatorElements()); } public ParserRule getShiftOperatorRule() { return getShiftOperatorAccess().getRule(); } //ShiftExpression returns pp::Expression: // AdditiveExpression ({pp::ShiftExpression.leftExpr=current} opName=ShiftOperator rightExpr=AdditiveExpression)*; public ShiftExpressionElements getShiftExpressionAccess() { return (pShiftExpression != null) ? pShiftExpression : (pShiftExpression = new ShiftExpressionElements()); } public ParserRule getShiftExpressionRule() { return getShiftExpressionAccess().getRule(); } //AdditiveOperator: // "+" | "-"; public AdditiveOperatorElements getAdditiveOperatorAccess() { return (pAdditiveOperator != null) ? pAdditiveOperator : (pAdditiveOperator = new AdditiveOperatorElements()); } public ParserRule getAdditiveOperatorRule() { return getAdditiveOperatorAccess().getRule(); } //AdditiveExpression returns pp::Expression: // MultiplicativeExpression ({pp::AdditiveExpression.leftExpr=current} opName=AdditiveOperator // rightExpr=MultiplicativeExpression)*; public AdditiveExpressionElements getAdditiveExpressionAccess() { return (pAdditiveExpression != null) ? pAdditiveExpression : (pAdditiveExpression = new AdditiveExpressionElements()); } public ParserRule getAdditiveExpressionRule() { return getAdditiveExpressionAccess().getRule(); } //// '%' added in Puppet 3.2. Validated in older versions //MultiplicativeOperator: // "*" | "/" | "%"; public MultiplicativeOperatorElements getMultiplicativeOperatorAccess() { return (pMultiplicativeOperator != null) ? pMultiplicativeOperator : (pMultiplicativeOperator = new MultiplicativeOperatorElements()); } public ParserRule getMultiplicativeOperatorRule() { return getMultiplicativeOperatorAccess().getRule(); } //MultiplicativeExpression returns pp::Expression: // MatchingExpression ({pp::MultiplicativeExpression.leftExpr=current} opName=MultiplicativeOperator // rightExpr=MatchingExpression)*; public MultiplicativeExpressionElements getMultiplicativeExpressionAccess() { return (pMultiplicativeExpression != null) ? pMultiplicativeExpression : (pMultiplicativeExpression = new MultiplicativeExpressionElements()); } public ParserRule getMultiplicativeExpressionRule() { return getMultiplicativeExpressionAccess().getRule(); } //// VALIDATION checks regex rhs //MatchingOperator: // "=~" | "!~"; public MatchingOperatorElements getMatchingOperatorAccess() { return (pMatchingOperator != null) ? pMatchingOperator : (pMatchingOperator = new MatchingOperatorElements()); } public ParserRule getMatchingOperatorRule() { return getMatchingOperatorAccess().getRule(); } //MatchingExpression returns pp::Expression: // InExpression ({pp::MatchingExpression.leftExpr=current} opName=MatchingOperator rightExpr=LiteralRegex)*; public MatchingExpressionElements getMatchingExpressionAccess() { return (pMatchingExpression != null) ? pMatchingExpression : (pMatchingExpression = new MatchingExpressionElements()); } public ParserRule getMatchingExpressionRule() { return getMatchingExpressionAccess().getRule(); } //InExpression returns pp::Expression: // UnaryOrHigherExpression ({pp::InExpression.leftExpr=current} opName="in" rightExpr=UnaryOrHigherExpression)*; public InExpressionElements getInExpressionAccess() { return (pInExpression != null) ? pInExpression : (pInExpression = new InExpressionElements()); } public ParserRule getInExpressionRule() { return getInExpressionAccess().getRule(); } //UnaryOrHigherExpression returns pp::Expression: // UnaryMinusExpression | NotExpression | CollectExpression; public UnaryOrHigherExpressionElements getUnaryOrHigherExpressionAccess() { return (pUnaryOrHigherExpression != null) ? pUnaryOrHigherExpression : (pUnaryOrHigherExpression = new UnaryOrHigherExpressionElements()); } public ParserRule getUnaryOrHigherExpressionRule() { return getUnaryOrHigherExpressionAccess().getRule(); } //UnaryMinusExpression returns pp::UnaryMinusExpression: // "-" expr=CollectExpression; public UnaryMinusExpressionElements getUnaryMinusExpressionAccess() { return (pUnaryMinusExpression != null) ? pUnaryMinusExpression : (pUnaryMinusExpression = new UnaryMinusExpressionElements()); } public ParserRule getUnaryMinusExpressionRule() { return getUnaryMinusExpressionAccess().getRule(); } //NotExpression returns pp::UnaryNotExpression: // "!" expr=CollectExpression; public NotExpressionElements getNotExpressionAccess() { return (pNotExpression != null) ? pNotExpression : (pNotExpression = new NotExpressionElements()); } public ParserRule getNotExpressionRule() { return getNotExpressionAccess().getRule(); } //// VALIDATION checks that CollectExpression classReference is a ClassReference, and that query expressions //// conform to a limit set of supported expressions. //CollectExpression returns pp::Expression: // SelectorExpression ({pp::CollectExpression.classReference=current} query=CollectQuery ("{" // attributes=AttributeOperations? "}")?)?; public CollectExpressionElements getCollectExpressionAccess() { return (pCollectExpression != null) ? pCollectExpression : (pCollectExpression = new CollectExpressionElements()); } public ParserRule getCollectExpressionRule() { return getCollectExpressionAccess().getRule(); } //// VALIDATION ensures that query only contains: //// - ('and' | 'or' | VariableExpression | LiteralName | '==' | '!=' | ParentesisesExpression ) //CollectQuery returns pp::ICollectQuery: // VirtualCollectQuery | ExportedCollectQuery; public CollectQueryElements getCollectQueryAccess() { return (pCollectQuery != null) ? pCollectQuery : (pCollectQuery = new CollectQueryElements()); } public ParserRule getCollectQueryRule() { return getCollectQueryAccess().getRule(); } //VirtualCollectQuery returns pp::ICollectQuery: // {pp::VirtualCollectQuery} "<|" expr=Expression? "|>"; public VirtualCollectQueryElements getVirtualCollectQueryAccess() { return (pVirtualCollectQuery != null) ? pVirtualCollectQuery : (pVirtualCollectQuery = new VirtualCollectQueryElements()); } public ParserRule getVirtualCollectQueryRule() { return getVirtualCollectQueryAccess().getRule(); } //ExportedCollectQuery returns pp::ICollectQuery: // {pp::ExportedCollectQuery} "<<|" expr=Expression? "|>>"; public ExportedCollectQueryElements getExportedCollectQueryAccess() { return (pExportedCollectQuery != null) ? pExportedCollectQuery : (pExportedCollectQuery = new ExportedCollectQueryElements()); } public ParserRule getExportedCollectQueryRule() { return getExportedCollectQueryAccess().getRule(); } //SelectorExpression returns pp::Expression: // AtExpression ({pp::SelectorExpression.leftExpr=current} "?" ("{" parameters+=SelectorEntry ("," // parameters+=SelectorEntry | parameters+=SelectorEntry)* ","? / * endcomma? * / "}" | parameters+=SelectorEntry))?; public SelectorExpressionElements getSelectorExpressionAccess() { return (pSelectorExpression != null) ? pSelectorExpression : (pSelectorExpression = new SelectorExpressionElements()); } public ParserRule getSelectorExpressionRule() { return getSelectorExpressionAccess().getRule(); } //// VALIDATION checks lhs is a valid selector left value //SelectorEntry returns pp::Expression: // Expression ({pp::SelectorEntry.leftExpr=current} "=>" rightExpr=Expression)?; public SelectorEntryElements getSelectorEntryAccess() { return (pSelectorEntry != null) ? pSelectorEntry : (pSelectorEntry = new SelectorEntryElements()); } public ParserRule getSelectorEntryRule() { return getSelectorEntryAccess().getRule(); } //// Note: AtExpression serves dual purpose: ResourceReference and '#' access //// VALIDATION: checks 2 level nesting constraint on At a[x][y] is ok but not a[x][y][z] if bug compatible mode //// VALIDATION: checks At dual roles and validates accordingly (only single parameter for normal At) etc. //AtExpression returns pp::Expression: // MethodCall ({pp::AtExpression.leftExpr=current} "[" (parameters+=Expression ("," parameters+=Expression)*)? "]")*; public AtExpressionElements getAtExpressionAccess() { return (pAtExpression != null) ? pAtExpression : (pAtExpression = new AtExpressionElements()); } public ParserRule getAtExpressionRule() { return getAtExpressionAccess().getRule(); } //MethodCall returns pp::Expression: // FunctionCall ({pp::MethodCall.leftExpr=current} "." (methodExpr=LiteralName (parenthesized= // remember if an empty list had parentheses or not // LPARBoolean (parameters+=Expression ("," parameters+=Expression)* ","?)? / *endComma? * / ")")?)? // lambda=LambdaExpression?)*; public MethodCallElements getMethodCallAccess() { return (pMethodCall != null) ? pMethodCall : (pMethodCall = new MethodCallElements()); } public ParserRule getMethodCallRule() { return getMethodCallAccess().getRule(); } //LPARBoolean returns ecore::EBoolean: // "("; public LPARBooleanElements getLPARBooleanAccess() { return (pLPARBoolean != null) ? pLPARBoolean : (pLPARBoolean = new LPARBooleanElements()); } public ParserRule getLPARBooleanRule() { return getLPARBooleanAccess().getRule(); } //LambdaExpression returns pp::Lambda: // Java8Lambda | RubyLambda; public LambdaExpressionElements getLambdaExpressionAccess() { return (pLambdaExpression != null) ? pLambdaExpression : (pLambdaExpression = new LambdaExpressionElements()); } public ParserRule getLambdaExpressionRule() { return getLambdaExpressionAccess().getRule(); } //Java8Lambda returns pp::Lambda: // "|" {pp::JavaLambda} arguments=LambdaParameters? "|" farrow?="=>"? "{" statements+=ExpressionList* "}"; public Java8LambdaElements getJava8LambdaAccess() { return (pJava8Lambda != null) ? pJava8Lambda : (pJava8Lambda = new Java8LambdaElements()); } public ParserRule getJava8LambdaRule() { return getJava8LambdaAccess().getRule(); } //RubyLambda returns pp::Lambda: // LAMBDA "|" {pp::RubyLambda} arguments=LambdaParameters? "|" statements+=ExpressionList* "}"; public RubyLambdaElements getRubyLambdaAccess() { return (pRubyLambda != null) ? pRubyLambda : (pRubyLambda = new RubyLambdaElements()); } public ParserRule getRubyLambdaRule() { return getRubyLambdaAccess().getRule(); } //LambdaParameters returns pp::DefinitionArgumentList: // (arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*) ","? / * endComma? * /; public LambdaParametersElements getLambdaParametersAccess() { return (pLambdaParameters != null) ? pLambdaParameters : (pLambdaParameters = new LambdaParametersElements()); } public ParserRule getLambdaParametersRule() { return getLambdaParametersAccess().getRule(); } //// FunctionCall has different syntax restrictions depending on context //// - when used where only one expression can occur, parentheses are required around the arguments //// To solve this, the parser does NOT recognize func x as a function call, this is instead treated as //// a sequence of two expressions, a later step will need to determine if 'func' is a function, if so, how //// many arguments it is supposed to take, and then validate if the input is correct. //// //// VALIDATION : functionExpr is a valid function name //FunctionCall returns pp::Expression: // PrimaryExpression (=> ({pp::FunctionCall.leftExpr=current} "(") (parameters+=Expression ("," parameters+=Expression)* // ","?)? / *endComma? * / ")" => (lambda=LambdaExpression?))*; public FunctionCallElements getFunctionCallAccess() { return (pFunctionCall != null) ? pFunctionCall : (pFunctionCall = new FunctionCallElements()); } public ParserRule getFunctionCallRule() { return getFunctionCallAccess().getRule(); } //PrimaryExpression returns pp::Expression: // IfExpression | UnlessExpression | CaseExpression | ImportExpression | Definition | HostClassDefinition | // NodeDefinition | VirtualNameOrReference | LiteralExpression | VariableExpression | ParenthisedExpression; public PrimaryExpressionElements getPrimaryExpressionAccess() { return (pPrimaryExpression != null) ? pPrimaryExpression : (pPrimaryExpression = new PrimaryExpressionElements()); } public ParserRule getPrimaryExpressionRule() { return getPrimaryExpressionAccess().getRule(); } //NodeDefinition returns pp::NodeDefinition: // "node" hostNames+=HostReference ("," hostNames+=HostReference)* ("inherits" parentName=HostReference)? "{" // statements+=ExpressionList* "}"; public NodeDefinitionElements getNodeDefinitionAccess() { return (pNodeDefinition != null) ? pNodeDefinition : (pNodeDefinition = new NodeDefinitionElements()); } public ParserRule getNodeDefinitionRule() { return getNodeDefinitionAccess().getRule(); } //HostReference returns pp::Expression: // StringExpression | LiteralRegex | LiteralDefault | LiteralNameOrReference; public HostReferenceElements getHostReferenceAccess() { return (pHostReference != null) ? pHostReference : (pHostReference = new HostReferenceElements()); } public ParserRule getHostReferenceRule() { return getHostReferenceAccess().getRule(); } //HostClassDefinition returns pp::HostClassDefinition: // "class" className=classname arguments=DefinitionArgumentList? ("inherits" parent=ParentName)? "{" // statements+=ExpressionList* "}"; public HostClassDefinitionElements getHostClassDefinitionAccess() { return (pHostClassDefinition != null) ? pHostClassDefinition : (pHostClassDefinition = new HostClassDefinitionElements()); } public ParserRule getHostClassDefinitionRule() { return getHostClassDefinitionAccess().getRule(); } //ParentName returns pp::LiteralExpression: // LiteralDefault | LiteralClass | LiteralNameOrReference; public ParentNameElements getParentNameAccess() { return (pParentName != null) ? pParentName : (pParentName = new ParentNameElements()); } public ParserRule getParentNameRule() { return getParentNameAccess().getRule(); } //Definition returns pp::Definition: // "define" className=classname arguments=DefinitionArgumentList? "{" statements+=ExpressionList* "}"; public DefinitionElements getDefinitionAccess() { return (pDefinition != null) ? pDefinition : (pDefinition = new DefinitionElements()); } public ParserRule getDefinitionRule() { return getDefinitionAccess().getRule(); } //DefinitionArgumentList returns pp::DefinitionArgumentList: // {pp::DefinitionArgumentList} "(" (arguments+=DefinitionArgument ("," arguments+=DefinitionArgument)*)? ","? // / * endComma? * / ")"; public DefinitionArgumentListElements getDefinitionArgumentListAccess() { return (pDefinitionArgumentList != null) ? pDefinitionArgumentList : (pDefinitionArgumentList = new DefinitionArgumentListElements()); } public ParserRule getDefinitionArgumentListRule() { return getDefinitionArgumentListAccess().getRule(); } //// VALIDATION: Deprecated warning if name does not start with $ //// VALIDATION: Not all variations of SimplefiedVariableOrName are valid (with NS) //// VALIDATION: value expr is RVALUE //// //DefinitionArgument returns pp::DefinitionArgument: // argName=UNION_VARIABLE_OR_NAME ((op="=" | op="=>") value=AssignmentExpression)?; public DefinitionArgumentElements getDefinitionArgumentAccess() { return (pDefinitionArgument != null) ? pDefinitionArgument : (pDefinitionArgument = new DefinitionArgumentElements()); } public ParserRule getDefinitionArgumentRule() { return getDefinitionArgumentAccess().getRule(); } ////-- CASE //// //CaseExpression returns pp::CaseExpression: // "case" switchExpr=AssignmentExpression "{" cases+=Case* "}"; public CaseExpressionElements getCaseExpressionAccess() { return (pCaseExpression != null) ? pCaseExpression : (pCaseExpression = new CaseExpressionElements()); } public ParserRule getCaseExpressionRule() { return getCaseExpressionAccess().getRule(); } //Case returns pp::Case: // values+=AssignmentExpression ("," values+=AssignmentExpression)* ":" "{" statements+=ExpressionList* "}"; public CaseElements getCaseAccess() { return (pCase != null) ? pCase : (pCase = new CaseElements()); } public ParserRule getCaseRule() { return getCaseAccess().getRule(); } ////-- UNLESS (is the same as if !(e) {}, but without support for "else" //UnlessExpression returns pp::UnlessExpression: // "unless" condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("else" elseStatement=ElseExpression)?; public UnlessExpressionElements getUnlessExpressionAccess() { return (pUnlessExpression != null) ? pUnlessExpression : (pUnlessExpression = new UnlessExpressionElements()); } public ParserRule getUnlessExpressionRule() { return getUnlessExpressionAccess().getRule(); } ////-- IF //// //// VALIDATION: checks that the elseStatement is an Else of Elsif, and validate that Else or Elsif //// only appears as parented by If, Else or Elseif //IfExpression returns pp::IfExpression: // "if" condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("elsif" elseStatement=ElseIfExpression | // "else" elseStatement=ElseExpression)?; public IfExpressionElements getIfExpressionAccess() { return (pIfExpression != null) ? pIfExpression : (pIfExpression = new IfExpressionElements()); } public ParserRule getIfExpressionRule() { return getIfExpressionAccess().getRule(); } //ElseExpression returns pp::Expression: // {pp::ElseExpression} "{" statements+=ExpressionList* "}"; public ElseExpressionElements getElseExpressionAccess() { return (pElseExpression != null) ? pElseExpression : (pElseExpression = new ElseExpressionElements()); } public ParserRule getElseExpressionRule() { return getElseExpressionAccess().getRule(); } //ElseIfExpression returns pp::Expression: // {pp::ElseIfExpression} condExpr=AssignmentExpression "{" thenStatements+=ExpressionList* "}" ("elsif" // elseStatement=ElseIfExpression | "else" elseStatement=ElseExpression)?; public ElseIfExpressionElements getElseIfExpressionAccess() { return (pElseIfExpression != null) ? pElseIfExpression : (pElseIfExpression = new ElseIfExpressionElements()); } public ParserRule getElseIfExpressionRule() { return getElseIfExpressionAccess().getRule(); } //LiteralExpression returns pp::Expression: // LiteralBoolean | LiteralUndef | LiteralDefault | LiteralList | LiteralHash | LiteralRegex | StringExpression | // LiteralNameOrReference; public LiteralExpressionElements getLiteralExpressionAccess() { return (pLiteralExpression != null) ? pLiteralExpression : (pLiteralExpression = new LiteralExpressionElements()); } public ParserRule getLiteralExpressionRule() { return getLiteralExpressionAccess().getRule(); } //LiteralNameOrReference returns pp::LiteralNameOrReference: // value=name; public LiteralNameOrReferenceElements getLiteralNameOrReferenceAccess() { return (pLiteralNameOrReference != null) ? pLiteralNameOrReference : (pLiteralNameOrReference = new LiteralNameOrReferenceElements()); } public ParserRule getLiteralNameOrReferenceRule() { return getLiteralNameOrReferenceAccess().getRule(); } //UNION_VARIABLE_OR_NAME: // dollarVariable | name; public UNION_VARIABLE_OR_NAMEElements getUNION_VARIABLE_OR_NAMEAccess() { return (pUNION_VARIABLE_OR_NAME != null) ? pUNION_VARIABLE_OR_NAME : (pUNION_VARIABLE_OR_NAME = new UNION_VARIABLE_OR_NAMEElements()); } public ParserRule getUNION_VARIABLE_OR_NAMERule() { return getUNION_VARIABLE_OR_NAMEAccess().getRule(); } //// validate that expr is not empty //ParenthisedExpression returns pp::ParenthesisedExpression: // "(" {pp::ParenthesisedExpression} expr=AssignmentExpression? ")"; public ParenthisedExpressionElements getParenthisedExpressionAccess() { return (pParenthisedExpression != null) ? pParenthisedExpression : (pParenthisedExpression = new ParenthisedExpressionElements()); } public ParserRule getParenthisedExpressionRule() { return getParenthisedExpressionAccess().getRule(); } //SeparatorExpression returns pp::SeparatorExpression: // {pp::SeparatorExpression} ";"; public SeparatorExpressionElements getSeparatorExpressionAccess() { return (pSeparatorExpression != null) ? pSeparatorExpression : (pSeparatorExpression = new SeparatorExpressionElements()); } public ParserRule getSeparatorExpressionRule() { return getSeparatorExpressionAccess().getRule(); } //VirtualNameOrReference returns pp::VirtualNameOrReference: // "@" exported=ATBoolean? value=unionNameOrReference; public VirtualNameOrReferenceElements getVirtualNameOrReferenceAccess() { return (pVirtualNameOrReference != null) ? pVirtualNameOrReference : (pVirtualNameOrReference = new VirtualNameOrReferenceElements()); } public ParserRule getVirtualNameOrReferenceRule() { return getVirtualNameOrReferenceAccess().getRule(); } //// Kludge for a serialization issue using exported = '@'? //// Note: has value converter //ATBoolean returns ecore::EBoolean: // "@"; public ATBooleanElements getATBooleanAccess() { return (pATBoolean != null) ? pATBoolean : (pATBoolean = new ATBooleanElements()); } public ParserRule getATBooleanRule() { return getATBooleanAccess().getRule(); } //// VALIDATION: No interpolation takes place in DoubleQuotedStrings, a warning will be issued. //// VALIDATION: Checks that import has at least one thing to import //ImportExpression returns pp::ImportExpression: // {pp::ImportExpression} "import" (values+=QuotedString ("," values+=QuotedString)*)?; public ImportExpressionElements getImportExpressionAccess() { return (pImportExpression != null) ? pImportExpression : (pImportExpression = new ImportExpressionElements()); } public ParserRule getImportExpressionRule() { return getImportExpressionAccess().getRule(); } //LiteralList returns pp::LiteralList: // {pp::LiteralList} "[" (elements+=AssignmentExpression ("," elements+=AssignmentExpression)* ","?)? "]"; public LiteralListElements getLiteralListAccess() { return (pLiteralList != null) ? pLiteralList : (pLiteralList = new LiteralListElements()); } public ParserRule getLiteralListRule() { return getLiteralListAccess().getRule(); } //LiteralHash returns pp::LiteralHash: // {pp::LiteralHash} "{" (elements+=HashEntry ("," elements+=HashEntry)*)? ","? / * endComma? * / "}"; public LiteralHashElements getLiteralHashAccess() { return (pLiteralHash != null) ? pLiteralHash : (pLiteralHash = new LiteralHashElements()); } public ParserRule getLiteralHashRule() { return getLiteralHashAccess().getRule(); } //// Use LiteralNameOrString to get different literals (to preserve quotes) as opposed to just the token value. //// TODO: Check constraints on LiteralNameOrString is ${name::name} allowed ? //HashEntry returns pp::HashEntry: // key=LiteralNameOrString "=>" value=AssignmentExpression; public HashEntryElements getHashEntryAccess() { return (pHashEntry != null) ? pHashEntry : (pHashEntry = new HashEntryElements()); } public ParserRule getHashEntryRule() { return getHashEntryAccess().getRule(); } //// TODO: Check constraints on LiteralNameOrString is ${name::name} allowed ? //LiteralNameOrString returns pp::Expression: // StringExpression | LiteralName; public LiteralNameOrStringElements getLiteralNameOrStringAccess() { return (pLiteralNameOrString != null) ? pLiteralNameOrString : (pLiteralNameOrString = new LiteralNameOrStringElements()); } public ParserRule getLiteralNameOrStringRule() { return getLiteralNameOrStringAccess().getRule(); } //// has converter //BooleanValue returns ecore::EBoolean: // "true" | "false"; public BooleanValueElements getBooleanValueAccess() { return (pBooleanValue != null) ? pBooleanValue : (pBooleanValue = new BooleanValueElements()); } public ParserRule getBooleanValueRule() { return getBooleanValueAccess().getRule(); } //LiteralBoolean returns pp::LiteralBoolean: // value=BooleanValue; public LiteralBooleanElements getLiteralBooleanAccess() { return (pLiteralBoolean != null) ? pLiteralBoolean : (pLiteralBoolean = new LiteralBooleanElements()); } public ParserRule getLiteralBooleanRule() { return getLiteralBooleanAccess().getRule(); } //LiteralDefault returns pp::LiteralDefault: // {pp::LiteralDefault} "default"; public LiteralDefaultElements getLiteralDefaultAccess() { return (pLiteralDefault != null) ? pLiteralDefault : (pLiteralDefault = new LiteralDefaultElements()); } public ParserRule getLiteralDefaultRule() { return getLiteralDefaultAccess().getRule(); } //LiteralUndef returns pp::LiteralUndef: // {pp::LiteralUndef} "undef"; public LiteralUndefElements getLiteralUndefAccess() { return (pLiteralUndef != null) ? pLiteralUndef : (pLiteralUndef = new LiteralUndefElements()); } public ParserRule getLiteralUndefRule() { return getLiteralUndefAccess().getRule(); } //LiteralClass returns pp::LiteralClass: // {pp::LiteralClass} "class"; public LiteralClassElements getLiteralClassAccess() { return (pLiteralClass != null) ? pLiteralClass : (pLiteralClass = new LiteralClassElements()); } public ParserRule getLiteralClassRule() { return getLiteralClassAccess().getRule(); } //StringExpression returns pp::Expression hidden(WS, SL_COMMENT, ML_COMMENT): // SingleQuotedString | UnquotedString | DoubleQuotedString; public StringExpressionElements getStringExpressionAccess() { return (pStringExpression != null) ? pStringExpression : (pStringExpression = new StringExpressionElements()); } public ParserRule getStringExpressionRule() { return getStringExpressionAccess().getRule(); } //QuotedString returns pp::IQuotedString hidden(WS, SL_COMMENT, ML_COMMENT): // DoubleQuotedString | SingleQuotedString; public QuotedStringElements getQuotedStringAccess() { return (pQuotedString != null) ? pQuotedString : (pQuotedString = new QuotedStringElements()); } public ParserRule getQuotedStringRule() { return getQuotedStringAccess().getRule(); } //SingleQuotedString returns pp::SingleQuotedString: // {pp::SingleQuotedString} text=sqText; public SingleQuotedStringElements getSingleQuotedStringAccess() { return (pSingleQuotedString != null) ? pSingleQuotedString : (pSingleQuotedString = new SingleQuotedStringElements()); } public ParserRule getSingleQuotedStringRule() { return getSingleQuotedStringAccess().getRule(); } //// Special declarations to aid syntax coloring of a $ in a special place. ////DQT_DOLLAR : '$' ; //// Double quoted string with expression interpolation //// handles: //// - $ <non variable char or {> is a verbatim $ included in the string //// - $varname - evaluated and included in the string //// - ${ expression } - evaluated and included in the string //// //DoubleQuotedString returns pp::DoubleQuotedString hidden(): // "\"" {pp::DoubleQuotedString} stringPart+=TextExpression* "\""; public DoubleQuotedStringElements getDoubleQuotedStringAccess() { return (pDoubleQuotedString != null) ? pDoubleQuotedString : (pDoubleQuotedString = new DoubleQuotedStringElements()); } public ParserRule getDoubleQuotedStringRule() { return getDoubleQuotedStringAccess().getRule(); } //TextExpression returns pp::TextExpression hidden(): // {pp::VerbatimTE} text=doubleStringCharacters | {pp::ExpressionTE} "${" expression=ExpressionWithHidden "}" | // {pp::VariableTE} varName=dollarVariable; public TextExpressionElements getTextExpressionAccess() { return (pTextExpression != null) ? pTextExpression : (pTextExpression = new TextExpressionElements()); } public ParserRule getTextExpressionRule() { return getTextExpressionAccess().getRule(); } //// Consumation without creation is ok, if made optional where it is assigned, it is not possible to //// insert WS and comments into ExpressioNTextExpression. //ExpressionWithHidden returns pp::Expression hidden(WS, SL_COMMENT, ML_COMMENT): // {pp::ParenthesisedExpression} expr=AssignmentExpression?; public ExpressionWithHiddenElements getExpressionWithHiddenAccess() { return (pExpressionWithHidden != null) ? pExpressionWithHidden : (pExpressionWithHidden = new ExpressionWithHiddenElements()); } public ParserRule getExpressionWithHiddenRule() { return getExpressionWithHiddenAccess().getRule(); } /// *hidden()* / StringPart returns pp::TextExpression: // {pp::VerbatimTE} text=doubleStringCharacters?; public StringPartElements getStringPartAccess() { return (pStringPart != null) ? pStringPart : (pStringPart = new StringPartElements()); } public ParserRule getStringPartRule() { return getStringPartAccess().getRule(); } //UnquotedString returns pp::Expression: // allow comments between ${ and } //// validate that Expression is not empty == warning // {pp::UnquotedString} "${" expression=AssignmentExpression? "}"; public UnquotedStringElements getUnquotedStringAccess() { return (pUnquotedString != null) ? pUnquotedString : (pUnquotedString = new UnquotedStringElements()); } public ParserRule getUnquotedStringRule() { return getUnquotedStringAccess().getRule(); } //// Has data conversion that strips leading/trailing single quotes //sqText returns ecore::EString hidden(): // "\'" singleStringCharacters? "\'"; public SqTextElements getSqTextAccess() { return (pSqText != null) ? pSqText : (pSqText = new SqTextElements()); } public ParserRule getSqTextRule() { return getSqTextAccess().getRule(); } //// Has validation rule that checks regex validity //LiteralRegex returns pp::LiteralRegex: // value=REGULAR_EXPRESSION; public LiteralRegexElements getLiteralRegexAccess() { return (pLiteralRegex != null) ? pLiteralRegex : (pLiteralRegex = new LiteralRegexElements()); } public ParserRule getLiteralRegexRule() { return getLiteralRegexAccess().getRule(); } //// VALIDATION: checks that the name is a NAME (and not a reference). //LiteralName returns pp::LiteralName: // value=name; public LiteralNameElements getLiteralNameAccess() { return (pLiteralName != null) ? pLiteralName : (pLiteralName = new LiteralNameElements()); } public ParserRule getLiteralNameRule() { return getLiteralNameAccess().getRule(); } //VariableExpression returns pp::VariableExpression: // varName=dollarVariable; public VariableExpressionElements getVariableExpressionAccess() { return (pVariableExpression != null) ? pVariableExpression : (pVariableExpression = new VariableExpressionElements()); } public ParserRule getVariableExpressionRule() { return getVariableExpressionAccess().getRule(); } //dollarVariable hidden(): // DOLLAR_VAR; public DollarVariableElements getDollarVariableAccess() { return (pDollarVariable != null) ? pDollarVariable : (pDollarVariable = new DollarVariableElements()); } public ParserRule getDollarVariableRule() { return getDollarVariableAccess().getRule(); } //keyword: // "and" | "case" | "class" | "default" | "define" | "else" | "elsif" | "in" | "inherits" | "import" | "node" | "or" | // "undef" | "true" | "false" | "if" | "unless"; public KeywordElements getKeywordAccess() { return (pKeyword != null) ? pKeyword : (pKeyword = new KeywordElements()); } public ParserRule getKeywordRule() { return getKeywordAccess().getRule(); } //attributeName: // name | keyword; public AttributeNameElements getAttributeNameAccess() { return (pAttributeName != null) ? pAttributeName : (pAttributeName = new AttributeNameElements()); } public ParserRule getAttributeNameRule() { return getAttributeNameAccess().getRule(); } //// a puppet grammar glitch allows '::' any number of times (\w*::)*\w+. Validation checks correctness. //name: // WORD_CHARS; public NameElements getNameAccess() { return (pName != null) ? pName : (pName = new NameElements()); } public ParserRule getNameRule() { return getNameAccess().getRule(); } //classname: // name | "class"; public ClassnameElements getClassnameAccess() { return (pClassname != null) ? pClassname : (pClassname = new ClassnameElements()); } public ParserRule getClassnameRule() { return getClassnameAccess().getRule(); } //// captures names and references, complicated by the fact that a keyword may be part of the name //// if the name contains '::' - for more info see the PPLexer //unionNameOrReference: // WORD_CHARS | "class" | "default"; public UnionNameOrReferenceElements getUnionNameOrReferenceAccess() { return (pUnionNameOrReference != null) ? pUnionNameOrReference : (pUnionNameOrReference = new UnionNameOrReferenceElements()); } public ParserRule getUnionNameOrReferenceRule() { return getUnionNameOrReferenceAccess().getRule(); } //// special rules in lexer will deliver everything as one of these when in a string //doubleStringCharacters hidden(): // (WORD_CHARS | ANY_OTHER | WS | "\\\"" | "\\\'" | "\\$" | "\\${" | "\\\\")+; public DoubleStringCharactersElements getDoubleStringCharactersAccess() { return (pDoubleStringCharacters != null) ? pDoubleStringCharacters : (pDoubleStringCharacters = new DoubleStringCharactersElements()); } public ParserRule getDoubleStringCharactersRule() { return getDoubleStringCharactersAccess().getRule(); } //// special rules in lexer will deliver everything as one of these when in a string //singleStringCharacters hidden(): // (WORD_CHARS // | '$' // terminates dq-, but not sq- string // | ANY_OTHER | WS | DOLLAR_VAR | // terminates dq-, but not sq- string // "${" | "\\\"" | "\\\'" | "\\$" | "\\${" | "\\\\")+; public SingleStringCharactersElements getSingleStringCharactersAccess() { return (pSingleStringCharacters != null) ? pSingleStringCharacters : (pSingleStringCharacters = new SingleStringCharactersElements()); } public ParserRule getSingleStringCharactersRule() { return getSingleStringCharactersAccess().getRule(); } /// ************************************************************ // * TERMINALS // * (Please no terminals above, and no rules below...) // * IMPORTANT: An external lexer are used - the rules below are an aproximation. The names and // * number of terminals may not be changed without also updating the lexer. // * / terminal ML_COMMENT: // "/ *"->"* /" (" " | " " | "\t")* ("\r"? "\n")?; public TerminalRule getML_COMMENTRule() { return (tML_COMMENT != null) ? tML_COMMENT : (tML_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ML_COMMENT")); } //// accumulate all SL comments into one token //terminal SL_COMMENT: // "#" !("\r" | "\n")* ("\r"? "\n")?; public TerminalRule getSL_COMMENTRule() { return (tSL_COMMENT != null) ? tSL_COMMENT : (tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "SL_COMMENT")); } //// Note that second space is a UNICODE NBSP //terminal WS: // (" " | " " | "\t" | "\r" | "\n")+; public TerminalRule getWSRule() { return (tWS != null) ? tWS : (tWS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "WS")); } //terminal DOLLAR_VAR: // "$" "::"? ("0".."9" | "a".."z" | "A".."Z" | "_")+ ("::" ("0".."9" | "a".."z" | "A".."Z" | "_")+)*; public TerminalRule getDOLLAR_VARRule() { return (tDOLLAR_VAR != null) ? tDOLLAR_VAR : (tDOLLAR_VAR = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "DOLLAR_VAR")); } //terminal WORD_CHARS: // "::"? ("0".."9" | "a".."z" | "A".."Z" | "_" | "-")+ ("::" ("0".."9" | "a".."z" | "A".."Z" | "_" | "-")+)*; public TerminalRule getWORD_CHARSRule() { return (tWORD_CHARS != null) ? tWORD_CHARS : (tWORD_CHARS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "WORD_CHARS")); } //terminal NUMBER: // NUMERIC; public TerminalRule getNUMBERRule() { return (tNUMBER != null) ? tNUMBER : (tNUMBER = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "NUMBER")); } //// Pseudo rule //terminal LAMBDA: // "{" WS "|"; public TerminalRule getLAMBDARule() { return (tLAMBDA != null) ? tLAMBDA : (tLAMBDA = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "LAMBDA")); } //terminal fragment NUMERIC: // "0" ("x" | "X") ("0".."9" | "a".."f" | "A".."F")+ | "0".."9"+ ("." "0".."9"+)? (("e" | "E") "-"? "0".."9"+)?; public TerminalRule getNUMERICRule() { return (tNUMERIC != null) ? tNUMERIC : (tNUMERIC = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "NUMERIC")); } //// Special rules in the lexer must prevent the RE from being recognized //// except after ',' 'node', '{','}, '=~', '!~' //terminal REGULAR_EXPRESSION: // "/" RE_BODY "/" RE_FLAGS?; public TerminalRule getREGULAR_EXPRESSIONRule() { return (tREGULAR_EXPRESSION != null) ? tREGULAR_EXPRESSION : (tREGULAR_EXPRESSION = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "REGULAR_EXPRESSION")); } //terminal fragment RE_BODY: // RE_FIRST_CHAR RE_FOLLOW_CHAR*; public TerminalRule getRE_BODYRule() { return (tRE_BODY != null) ? tRE_BODY : (tRE_BODY = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RE_BODY")); } //// regexp can not start with: //// - a '*' (illegal regexp, and makes it look like a MLCOMMENT start //// - a '/' since that makes it empty (which is an invalid regexp) //// - a NL since all of the regexp must be on one line //terminal fragment RE_FIRST_CHAR: // !("\n" | "*" | "/" | "\\") | RE_BACKSLASH_SEQUENCE; public TerminalRule getRE_FIRST_CHARRule() { return (tRE_FIRST_CHAR != null) ? tRE_FIRST_CHAR : (tRE_FIRST_CHAR = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RE_FIRST_CHAR")); } //// subsequent regexp chars include '*' //terminal fragment RE_FOLLOW_CHAR: // RE_FIRST_CHAR | "*"; public TerminalRule getRE_FOLLOW_CHARRule() { return (tRE_FOLLOW_CHAR != null) ? tRE_FOLLOW_CHAR : (tRE_FOLLOW_CHAR = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RE_FOLLOW_CHAR")); } //// Any character can be escaped except NL since all of the regexp must be on one line. //terminal fragment RE_BACKSLASH_SEQUENCE: // "\\" !"\n"; public TerminalRule getRE_BACKSLASH_SEQUENCERule() { return (tRE_BACKSLASH_SEQUENCE != null) ? tRE_BACKSLASH_SEQUENCE : (tRE_BACKSLASH_SEQUENCE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RE_BACKSLASH_SEQUENCE")); } //// RUBY REGEX flags: i o x m u e s n (optional, or in any order, but only use each once //// Puppet does not support these (currently), they are recognized to enable warning that //// they are not supported (no other meaning can be applied to letter appearing after //// the end '/' in a regexp. Check for supported flags can be done in validation if they //// become available. //terminal fragment RE_FLAGS: // "a".."z"+; public TerminalRule getRE_FLAGSRule() { return (tRE_FLAGS != null) ? tRE_FLAGS : (tRE_FLAGS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RE_FLAGS")); } //terminal ANY_OTHER: // .; public TerminalRule getANY_OTHERRule() { return (tANY_OTHER != null) ? tANY_OTHER : (tANY_OTHER = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ANY_OTHER")); } }