Created
August 26, 2021 11:07
-
-
Save kaby76/9b57c46e68851f39f20b091d15980a87 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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