Skip to content

Instantly share code, notes, and snippets.

@kaby76
Created August 26, 2021 11:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kaby76/9b57c46e68851f39f20b091d15980a87 to your computer and use it in GitHub Desktop.
Save kaby76/9b57c46e68851f39f20b091d15980a87 to your computer and use it in GitHub Desktop.
grammar InternalAlf ;
entryRuleUnit : ruleUnit EOF ;
ruleUnit : ( ruleAnonymousPackage | rulePackageUnit | ruleClassifierUnitDefinition | ruleClassUnit | ruleDataTypeUnit | ruleAssociationUnit | ruleInteractionUnit | ruleBehaviorUnit | ruleFunctionUnit | ruleFeatureUnit ) ;
entryRuleAnonymousPackage : ruleAnonymousPackage EOF ;
ruleAnonymousPackage : rulePackageBody ;
entryRulePackageUnit : rulePackageUnit EOF ;
rulePackageUnit : ( ruleUnitPrefix rulePackageDefinition ) ;
entryRuleClassifierUnitDefinition : ruleClassifierUnitDefinition EOF ;
ruleClassifierUnitDefinition : ( ruleUnitPrefix ruleClassifierDeclaration ruleTypeBody ) ;
entryRuleClassUnit : ruleClassUnit EOF ;
ruleClassUnit : ( ruleUnitPrefix ruleClassDeclaration ruleTypeBody ) ;
entryRuleDataTypeUnit : ruleDataTypeUnit EOF ;
ruleDataTypeUnit : ( ruleUnitPrefix ruleDataTypeDeclaration ruleTypeBody ) ;
entryRuleAssociationUnit : ruleAssociationUnit EOF ;
ruleAssociationUnit : ( ruleUnitPrefix ruleAssociationDeclaration ruleTypeBody ) ;
entryRuleInteractionUnit : ruleInteractionUnit EOF ;
ruleInteractionUnit : ( ruleUnitPrefix ruleInteractionDeclaration ruleTypeBody ) ;
entryRuleBehaviorUnit : ruleBehaviorUnit EOF ;
ruleBehaviorUnit : ( ruleUnitPrefix ruleBehaviorDeclaration ruleBehaviorBody ) ;
entryRuleFunctionUnit : ruleFunctionUnit EOF ;
ruleFunctionUnit : ( ruleUnitPrefix ruleFunctionDeclaration ruleFunctionBody ) ;
entryRuleFeatureUnit : ruleFeatureUnit EOF ;
ruleFeatureUnit : ( ruleUnitPrefix ruleFeatureDefinition ) ;
ruleUnitPrefix : ( ( ( ( rulePackageImport ) ) | ( ( ruleElementImport ) ) ) * ( ( ruleUnitAnnotation ) ) * ) ;
entryRuleComment : ruleComment EOF ;
ruleComment : ( ( ( 'comment' ( ( ruleName ) ) ? ( ( ruleAnnotation ) ) ) | ( ( ruleEmptyAnnotation ) ) ) ( ( RULE_ML_COMMENT ) ) ) ;
entryRuleAnnotation : ruleAnnotation EOF ;
ruleAnnotation : ( ( ) ( 'on' ( ( ruleQualifiedName ) ) ) ? ) ;
entryRuleEmptyAnnotation : ruleEmptyAnnotation EOF ;
ruleEmptyAnnotation : ( ) ;
entryRulePrefixAnnotation : rulePrefixAnnotation EOF ;
rulePrefixAnnotation : ( ( ruleDocumentation ) ) ;
entryRuleDocumentation : ruleDocumentation EOF ;
ruleDocumentation : ( ( 'comment' ( ( ruleName ) ) ? ) ? ( ( RULE_DOCUMENTATION_COMMENT ) ) ) ;
entryRuleUnitAnnotation : ruleUnitAnnotation EOF ;
ruleUnitAnnotation : ( ( ruleUnitDocumentation ) ) ;
entryRuleUnitDocumentation : ruleUnitDocumentation EOF ;
ruleUnitDocumentation : ( ( 'comment' ( ( ruleName ) ) ? ) ? ( ( ( RULE_ML_COMMENT | RULE_DOCUMENTATION_COMMENT ) ) ) ) ;
entryRulePackageImport : rulePackageImport EOF ;
rulePackageImport : ( ( ( rulePrefixAnnotation ) ) * ( ( rulePackageElementVisibilityIndicator ) ) ? 'import' ( ( ( ( ruleName ) ) ( '::' | '.' ) '*' ) | ( ( ( ruleColonQualifiedName ) ) '::' '*' ) | ( ( ( ruleDotQualifiedName ) ) '.' '*' ) ) ';' ) ;
entryRuleElementImport : ruleElementImport EOF ;
ruleElementImport : ( rulePackageMemberPrefix 'import' ( ( ruleQualifiedName ) ) ( 'as' ( ( ruleName ) ) ) ? ';' ) ;
entryRulePackage : rulePackage EOF ;
rulePackage : rulePackageDefinition ;
rulePackageDefinition : ( 'package' ( ( ruleName ) ) rulePackageBody ) ;
rulePackageBody : ( '{' ( ( ( rulePackageMember ) ) | ( ( rulePackageImport ) ) ) * '}' ) ;
entryRuleNonFeature : ruleNonFeature EOF ;
ruleNonFeature : ( rulePackage | ruleClassifier | ruleClass | ruleDataType | ruleAssociation | ruleInteraction | ruleBehavior | ruleFunction | ruleComment ) ;
entryRulePackageMember : rulePackageMember EOF ;
rulePackageMember : ( rulePackageMemberPrefix ( ruleNonFeatureMemberElement | rulePackageFeatureMemberElement ) ) ;
rulePackageMemberPrefix : ( ( ( rulePrefixAnnotation ) ) * ( ( rulePackageElementVisibilityIndicator ) ) ? ) ;
ruleNonFeatureMemberElement : ( ( ( ruleNonFeature ) ) | ( 'import' ( ( ruleQualifiedName ) ) ( 'as' ( ( ruleName ) ) ) ? ';' ) | ( 'package' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'classifier' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'class' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'datatype' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'assoc' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'behavior' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'function' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'comment' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ;
rulePackageFeatureMemberElement : ( ( ( 'feature' ) ? ( ( ruleFeature ) ) ) | ( ( ( 'feature' ( ( ruleName ) ) ? ) | ( ( ruleName ) ) ) 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'abstract' ( 'feature' ) ? ( ( ruleAbstractFeature ) ) ) | ( 'step' ( ( ruleStep ) ) ) | ( 'step' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) | ( 'abstract' 'step' ( ( ruleAbstractStep ) ) ) | ( 'expr' ( ( ruleBlockExpression ) ) ) | ( 'abstract' 'expr' ( ( ruleAbstractBlockExpression ) ) ) | ( 'expr' ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ;
ruleTypeBody : ( ';' | ( '{' ( ( ( ruleNonFeatureTypeMember ) ) | ( ( ruleFeatureTypeMember ) ) | ( ( rulePackageImport ) ) ) * '}' ) ) ;
ruleAbstractTypeBody : ( ( ( ';' ) ) | ( ( ( '{' ) ) ( ( ( ruleNonFeatureTypeMember ) ) | ( ( ruleFeatureTypeMember ) ) | ( ( rulePackageImport ) ) ) * '}' ) ) ;
entryRuleNonFeatureTypeMember : ruleNonFeatureTypeMember EOF ;
ruleNonFeatureTypeMember : ( ruleTypeMemberPrefix ruleNonFeatureMemberElement ) ;
entryRuleFeatureTypeMember : ruleFeatureTypeMember EOF ;
ruleFeatureTypeMember : ( ruleFeatureMember | ruleEndFeatureMember ) ;
entryRuleFeatureMember : ruleFeatureMember EOF ;
ruleFeatureMember : ( ruleTypeMemberPrefix ( ( ruleFeatureMemberFlags ruleFeatureMemberElement ) | ( 'abstract' ruleFeatureMemberFlags ruleAbstractFeatureMemberElement ) ) ) ;
entryRuleEndFeatureMember : ruleEndFeatureMember EOF ;
ruleEndFeatureMember : ( ruleTypeMemberPrefix ( ( 'end' ruleFeatureMemberFlags ruleFeatureMemberElement ) | ( 'abstract' 'end' ruleFeatureMemberFlags ruleAbstractFeatureMemberElement ) ) ) ;
ruleFeatureMemberElement : ( ( ( 'feature' ) ? ( ( ruleFeatureDirection ) ) ? ( ( ( ruleFeature ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'connector' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleConnector ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'binding' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleBindingConnector ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'step' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleStep ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'expr' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleBlockExpression ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'succession' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleSuccession ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'stream' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleItemFlow ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) | ( 'flow' ( ( ruleFeatureDirection ) ) ? ( ( ( ruleSuccessionItemFlow ) ) | ( ( ( ruleName ) ) ? 'is' ( ( ruleQualifiedName ) ) ';' ) ) ) ) ;
ruleAbstractFeatureMemberElement : ( ( 'feature' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractFeature ) ) ) | ( 'connector' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractConnector ) ) ) | ( 'binding' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractBindingConnector ) ) ) | ( 'step' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractStep ) ) ) | ( 'expr' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractBlockExpression ) ) ) | ( 'succession' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractSuccession ) ) ) | ( 'stream' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractItemFlow ) ) ) | ( 'flow' ( ( ruleFeatureDirection ) ) ? ( ( ruleAbstractSuccessionItemFlow ) ) ) ) ;
ruleFeatureMemberFlags : ( ( ( ( 'composite' ) ) | ( ( 'portion' ) ) ) ? ( ( 'port' ) ) ? ) ;
ruleTypeMemberPrefix : ( ( ( rulePrefixAnnotation ) ) * ( ( ruleVisibilityIndicator ) ) ? ) ;
entryRuleClassifier : ruleClassifier EOF ;
ruleClassifier : ( ruleClassifierDeclaration ruleTypeBody ) ;
ruleClassifierDeclaration : ( ( ( 'abstract' ) ) ? 'classifier' ruleClassifierDeclarationCompletion ) ;
ruleClassifierDeclarationCompletion : ( ( ( ruleName ) ) ( ruleSpecializationList ) ? ) ;
ruleSpecializationList : ( ( ':>' | 'specializes' ) ( ( ruleSuperclassing ) ) ( ',' ( ( ruleSuperclassing ) ) ) * ) ;
entryRuleSuperclassing : ruleSuperclassing EOF ;
ruleSuperclassing : ( ( ruleQualifiedName ) ) ;
entryRuleClass : ruleClass EOF ;
ruleClass : ( ruleClassDeclaration ruleTypeBody ) ;
ruleClassDeclaration : ( ( ( 'abstract' ) ) ? 'class' ruleClassifierDeclarationCompletion ) ;
entryRuleDataType : ruleDataType EOF ;
ruleDataType : ( ruleDataTypeDeclaration ruleTypeBody ) ;
ruleDataTypeDeclaration : ( ( ( 'abstract' ) ) ? 'datatype' ruleClassifierDeclarationCompletion ) ;
entryRuleAssociation : ruleAssociation EOF ;
ruleAssociation : ( ruleAssociationDeclaration ruleTypeBody ) ;
ruleAssociationDeclaration : ( ( ( 'abstract' ) ) ? 'assoc' ruleClassifierDeclarationCompletion ) ;
entryRuleInteraction : ruleInteraction EOF ;
ruleInteraction : ( ruleInteractionDeclaration ruleTypeBody ) ;
ruleInteractionDeclaration : ( ( ( 'abstract' ) ) ? 'interaction' ( ( ruleName ) ) ( ruleParameterList ) ? ( ruleSpecializationList ) ? ) ;
entryRuleBehavior : ruleBehavior EOF ;
ruleBehavior : ( ruleBehaviorDeclaration ruleBehaviorBody ) ;
ruleBehaviorDeclaration : ( ( ( 'abstract' ) ) ? 'behavior' ( ( ruleName ) ) ( ruleParameterList ) ? ( ruleSpecializationList ) ? ) ;
ruleParameterList : ( '(' ( ( ( ruleParameterMember ) ) ( ',' ( ( ruleParameterMember ) ) ) * ) ? ')' ) ;
ruleBehaviorBody : ( ';' | ( '{' ( ( ( ruleNonFeatureBehaviorMember ) ) | ( ( ruleFeatureBehaviorMember ) ) | ( ( rulePackageImport ) ) ) * '}' ) ) ;
ruleAbstractBehaviorBody : ( ( ( ';' ) ) | ( ( ( '{' ) ) ( ( ( ruleNonFeatureBehaviorMember ) ) | ( ( ruleFeatureBehaviorMember ) ) | ( ( rulePackageImport ) ) ) * '}' ) ) ;
entryRuleParameterMember : ruleParameterMember EOF ;
ruleParameterMember : ( ( ( ruleFeatureDirection ) ) ? ( ( ruleName ) ) ( ( ruleParameter ) ) ) ;
entryRuleNonFeatureBehaviorMember : ruleNonFeatureBehaviorMember EOF ;
ruleNonFeatureBehaviorMember : ruleNonFeatureTypeMember ;
entryRuleFeatureBehaviorMember : ruleFeatureBehaviorMember EOF ;
ruleFeatureBehaviorMember : ruleFeatureTypeMember ;
entryRuleFunction : ruleFunction EOF ;
ruleFunction : ( ruleFunctionDeclaration ruleFunctionBody ) ;
ruleFunctionDeclaration : ( ( ( 'abstract' ) ) ? 'function' ( ( ruleName ) ) ( ruleParameterList ) ? ruleReturnParameterPart ( ruleSpecializationList ) ? ) ;
ruleReturnParameterPart : ( ( ruleReturnParameterMember ) ) ;
ruleFunctionBody : ( ';' | ( '{' ( ( ( ruleNonFeatureBehaviorMember ) ) | ( ( ruleFeatureBehaviorMember ) ) | ( ( rulePackageImport ) ) ) * ( ( ruleExpressionMember ) ) ? '}' ) ) ;
ruleAbstractFunctionBody : ( ( ( ';' ) ) | ( ( ( '{' ) ) ( ( ( ruleNonFeatureBehaviorMember ) ) | ( ( ruleFeatureBehaviorMember ) ) | ( ( rulePackageImport ) ) ) * ( ( ruleExpressionMember ) ) ? '}' ) ) ;
entryRuleReturnParameterMember : ruleReturnParameterMember EOF ;
ruleReturnParameterMember : ( ( ( ruleName ) ) ? ( ( ruleParameter ) ) ) ;
entryRuleExpressionMember : ruleExpressionMember EOF ;
ruleExpressionMember : ( ( ruleExpression ) ) ;
entryRuleFeature : ruleFeature EOF ;
ruleFeature : ( ruleFeatureDeclaration ruleFeatureCompletion ) ;
entryRuleAbstractFeature : ruleAbstractFeature EOF ;
ruleAbstractFeature : ( ruleFeatureDeclaration ruleAbstractFeatureCompletion ) ;
ruleFeatureDefinition : ( ( ( 'abstract' ) ) ? 'feature' ruleFeatureDeclaration ruleFeatureCompletion ) ;
ruleFeatureDeclaration : ( ( ( ( ruleName ) ) ( ruleTypePart ) ? ruleSubsettingPart ) | ( ruleTypePart ruleSubsettingPart ) | ( ( ':>>' | 'redefines' ) ( ( ruleRedefinition ) ) ( ruleTypePart ) ? ruleSubsettingPart ) ) ;
ruleFeatureCompletion : ( ( ruleValuePart ) ? ruleTypeBody ) ;
ruleAbstractFeatureCompletion : ( ( ruleValuePart ) ? ruleAbstractTypeBody ) ;
ruleValuePart : ( '=' ( ( ruleFeatureValue ) ) ) ;
entryRuleFeatureValue : ruleFeatureValue EOF ;
ruleFeatureValue : ( ( ruleExpression ) ) ;
ruleTypePart : ( ( ':' ( ( 'all' ) ) ? ( ( ( ruleFeatureTyping ) ) | 'any' ) ( ruleMultiplicityPart ) ? ) | ruleMultiplicityPart ) ;
entryRuleFeatureTyping : ruleFeatureTyping EOF ;
ruleFeatureTyping : ( ( ruleQualifiedName ) ) ;
ruleMultiplicityPart : ( ( ( ruleMultiplicityMember ) ) ( ( ( ( ( ( ( ( ( 'ordered' ) ) ) ) ) | ( ( ( ( ( 'nonunique' ) ) ) ) ) ) * ) ) ) ) ;
entryRuleMultiplicity : ruleMultiplicity EOF ;
ruleMultiplicity : ( '[' ( ( ( ruleNaturalLiteralMember ) ) '..' ) ? ( ( ruleUnlimitedNaturalLiteralMember ) ) ']' ) ;
ruleSubsettingPart : ( ( ruleSubsets ( ',' ( ( ruleSubset ) ) ) * ) | ( ruleRedefines ( ',' ( ( ruleRedefinition ) ) ) * ) ) * ;
ruleSubsets : ( ( ':>' | 'subsets' ) ( ( ruleSubset ) ) ) ;
entryRuleSubset : ruleSubset EOF ;
ruleSubset : ( ( ruleQualifiedName ) ) ;
ruleRedefines : ( ( ':>>' | 'redefines' ) ( ( ruleRedefinition ) ) ) ;
entryRuleRedefinition : ruleRedefinition EOF ;
ruleRedefinition : ( ( ruleQualifiedName ) ) ;
entryRuleMultiplicityMember : ruleMultiplicityMember EOF ;
ruleMultiplicityMember : ( ( ruleMultiplicity ) ) ;
entryRuleNaturalLiteralMember : ruleNaturalLiteralMember EOF ;
ruleNaturalLiteralMember : ( ( ruleNaturalLiteralExpression ) ) ;
entryRuleUnlimitedNaturalLiteralMember : ruleUnlimitedNaturalLiteralMember EOF ;
ruleUnlimitedNaturalLiteralMember : ( ( ruleUnlimitedNaturalLiteralExpression ) ) ;
entryRuleConnector : ruleConnector EOF ;
ruleConnector : ( ruleConnectorDeclaration ruleTypeBody ) ;
entryRuleAbstractConnector : ruleAbstractConnector EOF ;
ruleAbstractConnector : ( ruleConnectorDeclaration ruleAbstractTypeBody ) ;
ruleConnectorDeclaration : ( ( ( ruleFeatureDeclaration 'from' ) ? ( ( ruleConnectorEndMember ) ) 'to' ( ( ruleConnectorEndMember ) ) ) | ( ruleFeatureDeclaration '(' ( ( ruleConnectorEndMember ) ) ',' ( ( ruleConnectorEndMember ) ) ( ',' ( ( ruleConnectorEndMember ) ) ) * ')' ) ) ;
entryRuleConnectorEnd : ruleConnectorEnd EOF ;
ruleConnectorEnd : ( ( ( ruleSubset ) ) ( ( ruleMultiplicityMember ) ) ? ) ;
entryRuleConnectorEndMember : ruleConnectorEndMember EOF ;
ruleConnectorEndMember : ( ( ( ( ruleName ) ) '=>' ) ? ( ( ruleConnectorEnd ) ) ) ;
entryRuleBindingConnector : ruleBindingConnector EOF ;
ruleBindingConnector : ( ruleBindingConnectorDeclaration ruleTypeBody ) ;
entryRuleAbstractBindingConnector : ruleAbstractBindingConnector EOF ;
ruleAbstractBindingConnector : ( ruleBindingConnectorDeclaration ruleAbstractTypeBody ) ;
ruleBindingConnectorDeclaration : ( ( ruleFeatureDeclaration 'of' ) ? ( ( ruleConnectorEndMember ) ) '=' ( ( ruleConnectorEndMember ) ) ) ;
entryRuleSuccession : ruleSuccession EOF ;
ruleSuccession : ( ruleSuccessionDeclaration ruleTypeBody ) ;
entryRuleAbstractSuccession : ruleAbstractSuccession EOF ;
ruleAbstractSuccession : ( ruleSuccessionDeclaration ruleAbstractTypeBody ) ;
ruleSuccessionDeclaration : ( ( ruleFeatureDeclaration 'first' ) ? ( ( ruleConnectorEndMember ) ) 'then' ( ( ruleConnectorEndMember ) ) ) ;
entryRuleItemFlow : ruleItemFlow EOF ;
ruleItemFlow : ( ruleItemFlowDeclaration ruleTypeBody ) ;
entryRuleAbstractItemFlow : ruleAbstractItemFlow EOF ;
ruleAbstractItemFlow : ( ruleItemFlowDeclaration ruleAbstractTypeBody ) ;
entryRuleSuccessionItemFlow : ruleSuccessionItemFlow EOF ;
ruleSuccessionItemFlow : ( ruleItemFlowDeclaration ruleTypeBody ) ;
entryRuleAbstractSuccessionItemFlow : ruleAbstractSuccessionItemFlow EOF ;
ruleAbstractSuccessionItemFlow : ( ruleItemFlowDeclaration ruleAbstractTypeBody ) ;
ruleItemFlowDeclaration : ( ( ( ruleFeatureDeclaration ( ( 'of' ( ( ruleItemFeatureMember ) ) ) | ( ( ruleEmptyItemFeatureMember ) ) ) 'from' ) | ( ( ruleEmptyItemFeatureMember ) ) ) ( ( ruleItemFlowEndMember ) ) 'to' ( ( ruleItemFlowEndMember ) ) ) ;
entryRuleItemFeatureTyping : ruleItemFeatureTyping EOF ;
ruleItemFeatureTyping : ( ( ( ruleFeatureTyping ) ) ( ( ruleMultiplicityMember ) ) ? ) ;
entryRuleEmptyItemFeature : ruleEmptyItemFeature EOF ;
ruleEmptyItemFeature : ( ) ;
entryRuleItemFlowEnd : ruleItemFlowEnd EOF ;
ruleItemFlowEnd : ( ( ruleItemFlowFeatureMember ) ) ;
entryRuleItemFlowFeature : ruleItemFlowFeature EOF ;
ruleItemFlowFeature : ( ( ruleRedefinition ) ) ;
entryRuleItemFeatureMember : ruleItemFeatureMember EOF ;
ruleItemFeatureMember : ( ( ( ( ruleName ) ) ':' ) ? ( ( ruleItemFeatureTyping ) ) ) ;
entryRuleItemFlowEndMember : ruleItemFlowEndMember EOF ;
ruleItemFlowEndMember : ( ( ruleItemFlowEnd ) ) ;
entryRuleItemFlowFeatureMember : ruleItemFlowFeatureMember EOF ;
ruleItemFlowFeatureMember : ( ( ruleItemFlowFeature ) ) ;
entryRuleEmptyItemFeatureMember : ruleEmptyItemFeatureMember EOF ;
ruleEmptyItemFeatureMember : ( ( ruleEmptyItemFeature ) ) ;
entryRuleParameter : ruleParameter EOF ;
ruleParameter : ( ( ) ( ruleTypePart ) ? ) ;
entryRuleStep : ruleStep EOF ;
ruleStep : ( ruleStepDeclaration ruleBehaviorBody ) ;
entryRuleAbstractStep : ruleAbstractStep EOF ;
ruleAbstractStep : ( ruleStepDeclaration ruleAbstractBehaviorBody ) ;
ruleStepDeclaration : ( ( ( ( ruleName ) ) ( ruleTypePart ) ? ( ruleParameterList ) ? ruleSubsettingPart ( ruleValuePart ) ? ) | ( ( ruleTypePart ) ? ( ruleParameterList ) ? ( ruleValuePart ) ? ) | ( ( ':>>' | 'redefines' ) ( ( ruleRedefinition ) ) ( ruleTypePart ) ? ( ruleParameterList ) ? ( ruleValuePart ) ? ) ) ;
entryRuleBlockExpression : ruleBlockExpression EOF ;
ruleBlockExpression : ( ruleExpressionDeclaration ruleFunctionBody ) ;
entryRuleAbstractBlockExpression : ruleAbstractBlockExpression EOF ;
ruleAbstractBlockExpression : ( ruleExpressionDeclaration ruleAbstractFunctionBody ) ;
ruleExpressionDeclaration : ( ( ( ( ruleName ) ) ( ruleTypePart ) ? ( ruleParameterList ruleReturnParameterPart ) ? ruleSubsettingPart ( ruleValuePart ) ? ) | ( ( ruleTypePart ) ? ( ruleParameterList ruleReturnParameterPart ) ? ( ruleValuePart ) ? ) | ( ( ':>>' | 'redefines' ) ( ( ruleRedefinition ) ) ( ruleTypePart ) ? ( ruleParameterList ruleReturnParameterPart ) ? ( ruleValuePart ) ? ) ) ;
entryRuleExpression : ruleExpression EOF ;
ruleExpression : ( ruleConditionalExpression | ruleQueryPathExpression ) ;
entryRuleConditionalExpression : ruleConditionalExpression EOF ;
ruleConditionalExpression : ( ruleNullCoalescingExpression ( ( ) ( ( ruleConditionalTestOperator ) ) ( ( ruleExpression ) ) ':' ( ( ruleConditionalExpression ) ) ) ? ) ;
entryRuleConditionalTestOperator : ruleConditionalTestOperator EOF ;
ruleConditionalTestOperator : '?' ;
entryRuleNullCoalescingExpression : ruleNullCoalescingExpression EOF ;
ruleNullCoalescingExpression : ( ruleConditionalOrExpression ( ( ) ( ( ruleNullCoalescingOperator ) ) ( ( ruleConditionalOrExpression ) ) ) * ) ;
entryRuleNullCoalescingOperator : ruleNullCoalescingOperator EOF ;
ruleNullCoalescingOperator : '??' ;
entryRuleConditionalOrExpression : ruleConditionalOrExpression EOF ;
ruleConditionalOrExpression : ( ruleConditionalAndExpression ( ( ) ( ( ruleConditionalOrOperator ) ) ( ( ruleConditionalAndExpression ) ) ) * ) ;
entryRuleConditionalOrOperator : ruleConditionalOrOperator EOF ;
ruleConditionalOrOperator : '||' ;
entryRuleConditionalAndExpression : ruleConditionalAndExpression EOF ;
ruleConditionalAndExpression : ( ruleOrExpression ( ( ) ( ( ruleConditionalAndOperator ) ) ( ( ruleOrExpression ) ) ) * ) ;
entryRuleConditionalAndOperator : ruleConditionalAndOperator EOF ;
ruleConditionalAndOperator : '&&' ;
entryRuleOrExpression : ruleOrExpression EOF ;
ruleOrExpression : ( ruleXorExpression ( ( ) ( ( ruleOrOperator ) ) ( ( ruleXorExpression ) ) ) * ) ;
entryRuleOrOperator : ruleOrOperator EOF ;
ruleOrOperator : '|' ;
entryRuleXorExpression : ruleXorExpression EOF ;
ruleXorExpression : ( ruleAndExpression ( ( ) ( ( ruleXorOperator ) ) ( ( ruleAndExpression ) ) ) * ) ;
entryRuleXorOperator : ruleXorOperator EOF ;
ruleXorOperator : '^' ;
entryRuleAndExpression : ruleAndExpression EOF ;
ruleAndExpression : ( ruleEqualityExpression ( ( ) ( ( ruleAndOperator ) ) ( ( ruleEqualityExpression ) ) ) * ) ;
entryRuleAndOperator : ruleAndOperator EOF ;
ruleAndOperator : '&' ;
entryRuleEqualityExpression : ruleEqualityExpression EOF ;
ruleEqualityExpression : ( ruleClassificationExpression ( ( ) ( ( ruleEqualityOperator ) ) ( ( ruleClassificationExpression ) ) ) * ) ;
entryRuleEqualityOperator : ruleEqualityOperator EOF ;
ruleEqualityOperator : ( '==' | '!=' ) ;
entryRuleClassificationExpression : ruleClassificationExpression EOF ;
ruleClassificationExpression : ( ruleRelationalExpression ( ( ) ( ( ruleClassificationOperator ) ) ( ( ruleTypeReferenceMember ) ) ) ? ) ;
entryRuleClassificationOperator : ruleClassificationOperator EOF ;
ruleClassificationOperator : ( 'instanceof' | 'hastype' ) ;
entryRuleRelationalExpression : ruleRelationalExpression EOF ;
ruleRelationalExpression : ( ruleAdditiveExpression ( ( ) ( ( ruleRelationalOperator ) ) ( ( ruleAdditiveExpression ) ) ) * ) ;
entryRuleRelationalOperator : ruleRelationalOperator EOF ;
ruleRelationalOperator : ( '<' | '>' | '<=' | '>=' ) ;
entryRuleAdditiveExpression : ruleAdditiveExpression EOF ;
ruleAdditiveExpression : ( ruleMultiplicativeExpression ( ( ) ( ( ruleAdditiveOperator ) ) ( ( ruleMultiplicativeExpression ) ) ) * ) ;
entryRuleAdditiveOperator : ruleAdditiveOperator EOF ;
ruleAdditiveOperator : ( '+' | '-' ) ;
entryRuleMultiplicativeExpression : ruleMultiplicativeExpression EOF ;
ruleMultiplicativeExpression : ( ruleUnitsExpression ( ( ) ( ( ruleMultiplicativeOperator ) ) ( ( ruleUnitsExpression ) ) ) * ) ;
entryRuleMultiplicativeOperator : ruleMultiplicativeOperator EOF ;
ruleMultiplicativeOperator : ( '*' | '/' | '**' ) ;
entryRuleUnitsExpression : ruleUnitsExpression EOF ;
ruleUnitsExpression : ( ruleUnaryExpression ( ( ) ( ( '@' ) ) '[' ( ( ruleExpression ) ) ']' ) ? ) ;
entryRuleUnaryExpression : ruleUnaryExpression EOF ;
ruleUnaryExpression : ( ruleSequenceAccessExpression | ( ( ) ( ( ruleUnaryOperator ) ) ( ( ruleSequenceAccessExpression ) ) ) ) ;
entryRuleUnaryOperator : ruleUnaryOperator EOF ;
ruleUnaryOperator : ( '+' | '-' | '!' | '~' ) ;
entryRuleSequenceAccessExpression : ruleSequenceAccessExpression EOF ;
ruleSequenceAccessExpression : ( rulePrimaryExpression ( ( ) ( ( '[' ) ) ( ( ruleExpression ) ) ']' ) ? ) ;
entryRulePrimaryExpression : rulePrimaryExpression EOF ;
rulePrimaryExpression : ( ruleBaseExpression ( ( ) '->' ( ( ruleName ) ) ( ( ruleBodyMember ) ) + ) * ) ;
entryRuleBodyExpression : ruleBodyExpression EOF ;
ruleBodyExpression : ( ( ( ( ( ruleBodyParameterMember ) ) ( ( ruleBodyParameterMember ) ) * '(' ( ( ruleExpressionMember ) ) ')' ) ) | ( ( ruleExpressionTyping ) ) ) ;
entryRuleExpressionTyping : ruleExpressionTyping EOF ;
ruleExpressionTyping : ( ( ruleQualifiedName ) ) ;
entryRuleBaseExpression : ruleBaseExpression EOF ;
ruleBaseExpression : ( ruleNullExpression | ruleLiteralExpression | ruleFeatureReferenceExpression | ruleInvocationExpression | ruleClassExtentExpression | ruleSequenceConstructionExpression | ( '(' ruleExpression ')' ) ) ;
entryRuleFeatureReferenceExpression : ruleFeatureReferenceExpression EOF ;
ruleFeatureReferenceExpression : ( ( ruleFeatureReference ) ) ;
entryRuleInvocationExpression : ruleInvocationExpression EOF ;
ruleInvocationExpression : ( ( ( ruleFeatureTyping ) ) '(' ( ruleTuple ) ? ')' ) ;
ruleTuple : ( rulePositionalTuple | ruleNamedTuple ) ;
rulePositionalTuple : ( ( ( ruleExpressionMember ) ) ( ',' ( ( ruleExpressionMember ) ) ) * ) ;
ruleNamedTuple : ( ( ( ruleNamedExpressionMember ) ) ( ',' ( ( ruleNamedExpressionMember ) ) ) * ) ;
entryRuleClassExtentExpression : ruleClassExtentExpression EOF ;
ruleClassExtentExpression : ( ( ( ruleTypeReferenceMember ) ) '.' ( ( 'allInstances' ) ) '(' ')' ) ;
entryRuleTypeReference : ruleTypeReference EOF ;
ruleTypeReference : ( ( ruleFeatureTyping ) ) ;
entryRuleSequenceConstructionExpression : ruleSequenceConstructionExpression EOF ;
ruleSequenceConstructionExpression : ( ( ) '{' ( ( ( ruleExpression ) ) ( ',' ( ( ruleExpression ) ) ) * ) ? '}' ) ;
entryRuleNullExpression : ruleNullExpression EOF ;
ruleNullExpression : ( ( ) 'null' ) ;
entryRuleLiteralExpression : ruleLiteralExpression EOF ;
ruleLiteralExpression : ( ruleBooleanLiteralExpression | ruleStringLiteralExpression | ruleRealLiteralExpression | ruleUnlimitedNaturalLiteralExpression ) ;
entryRuleBooleanLiteralExpression : ruleBooleanLiteralExpression EOF ;
ruleBooleanLiteralExpression : ( ( RULE_BOOLEAN_VALUE ) ) ;
entryRuleStringLiteralExpression : ruleStringLiteralExpression EOF ;
ruleStringLiteralExpression : ( ( RULE_STRING_VALUE ) ) ;
entryRuleRealLiteralExpression : ruleRealLiteralExpression EOF ;
ruleRealLiteralExpression : ( ( ruleRealValue ) ) ;
entryRuleRealValue : ruleRealValue EOF ;
ruleRealValue : ( ( ( RULE_NATURAL_VALUE ) ? '.' ( RULE_NATURAL_VALUE | RULE_EXP_VALUE ) ) | RULE_EXP_VALUE ) ;
entryRuleNaturalLiteralExpression : ruleNaturalLiteralExpression EOF ;
ruleNaturalLiteralExpression : ( ( RULE_NATURAL_VALUE ) ) ;
entryRuleUnlimitedNaturalLiteralExpression : ruleUnlimitedNaturalLiteralExpression EOF ;
ruleUnlimitedNaturalLiteralExpression : ( ruleNaturalLiteralExpression | ( ( ) '*' ) ) ;
entryRuleFeatureReference : ruleFeatureReference EOF ;
ruleFeatureReference : ( ( ruleQualifiedName ) ) ;
entryRuleTypeReferenceMember : ruleTypeReferenceMember EOF ;
ruleTypeReferenceMember : ( ( ruleTypeReference ) ) ;
entryRuleNamedExpressionMember : ruleNamedExpressionMember EOF ;
ruleNamedExpressionMember : ( ( ( ruleName ) ) '=>' ( ( ruleExpression ) ) ) ;
entryRuleBodyMember : ruleBodyMember EOF ;
ruleBodyMember : ( ( ruleBodyExpression ) ) ;
entryRuleBodyParameterMember : ruleBodyParameterMember EOF ;
ruleBodyParameterMember : ( ( ( ruleName ) ) ( ( ruleParameter ) ) ) ;
entryRuleQueryPathExpression : ruleQueryPathExpression EOF ;
ruleQueryPathExpression : ( '%q(' ruleQueryHeadExpression ( '[' ( ) ( ( ruleBodyMember ) ) ']' ) ? ( '/' ( ) ( ( ruleQueryNameExpression ) ) ( '[' ( ) ( ( ruleBodyMember ) ) ']' ) ? ) * ')' ) ;
entryRuleQueryNameExpression : ruleQueryNameExpression EOF ;
ruleQueryNameExpression : ( ( ruleFeatureReference ) ) ;
entryRuleQueryHeadExpression : ruleQueryHeadExpression EOF ;
ruleQueryHeadExpression : ( './' ( ( ruleFeatureReference ) ) ) ;
entryRuleName : ruleName EOF ;
ruleName : ( RULE_ID | RULE_UNRESTRICTED_NAME ) ;
entryRuleQualifiedName : ruleQualifiedName EOF ;
ruleQualifiedName : ( ruleName | ruleColonQualifiedName | ruleDotQualifiedName ) ;
entryRuleColonQualifiedName : ruleColonQualifiedName EOF ;
ruleColonQualifiedName : ( ruleName ( '::' ruleName ) + ) ;
entryRuleDotQualifiedName : ruleDotQualifiedName EOF ;
ruleDotQualifiedName : ( ruleName ( '.' ruleName ) + ) ;
rulePackageElementVisibilityIndicator : ( ( 'public' ) | ( 'private' ) ) ;
ruleVisibilityIndicator : ( ( 'public' ) | ( 'private' ) | ( 'protected' ) | ( 'packaged' ) ) ;
ruleFeatureDirection : ( ( 'in' ) | ( 'out' ) | ( 'inout' ) ) ;
RULE_BOOLEAN_VALUE : ( 'true' | 'false' ) ;
RULE_NATURAL_VALUE : ( ( '0' | '1' .. '9' ( '_' ? '0' .. '9' ) * ) | ( '0b' | '0B' ) '0' .. '1' ( '_' ? '0' .. '1' ) * | ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ( '_' ? ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ) * | '0' '_' ? '0' .. '7' ( '_' ? '0' .. '7' ) * ) ;
RULE_EXP_VALUE : RULE_NATURAL_VALUE ( 'e' | 'E' ) ( '+' | '-' ) ? RULE_NATURAL_VALUE ;
RULE_ID : ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' ) * ;
RULE_UNRESTRICTED_NAME : '\'' ( '\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' ) | ~ ( '\\' | '\'' ) ) * '\'' ;
RULE_STRING_VALUE : '"' ( '\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '"' | '\'' | '\\' ) | ~ ( '\\' | '"' ) ) * '"' ;
RULE_ML_COMMENT : '/*' ~ ( '*' ) ( . ) * ? '*/' -> skip;
RULE_DOCUMENTATION_COMMENT : '/**' ( . ) * ? '*/' -> skip;
RULE_ML_NOTE : '//*' ( . ) * ? '*/' -> skip ;
RULE_SL_NOTE : '//' ( ~ ( '\n' | '\r' ) ~ ( '\n' | '\r' ) * ) ? ( '\r' ? '\n' ) ? -> skip;
RULE_WS : ( ' ' | '\t' | '\r' | '\n' ) + -> skip ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment