Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext')
-rw-r--r--extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext640
1 files changed, 0 insertions, 640 deletions
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext b/extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext
deleted file mode 100644
index 614ce459b29..00000000000
--- a/extraplugins/alf09/src/org/eclipse/papyrus/alf/Alf.xtext
+++ /dev/null
@@ -1,640 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
- *
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * CEA LIST - Initial API and implementation
- *
- *****************************************************************************/
-
-grammar org.eclipse.papyrus.alf.Alf with org.eclipse.xtext.common.Terminals
-
-generate alf "http://www.eclipse.org/papyrus/alf/Alf"
-
-/*
- Test rule
-*/
-Test :
- ('testExpression' expression += Expression)*
- ('testAssignmentExpression' assignExpression += AssignmentCompletion)*
- ('testStatement' statements += Statement)*
- ('testBlock' block = Block);
- //('testStatementSequence' statement += StatementSequence)* ;
-
-/*********************************
-* PrimitiveLiterals
-**********************************/
-
-LITERAL:
- BOOLEAN_LITERAL |
- NUMBER_LITERAL |
- STRING_LITERAL
-;
-
-BOOLEAN_LITERAL :
- value = BooleanValue ; // (suffix = SuffixExpression) ? ;
-
-enum BooleanValue :
- TRUE = 'true' |
- FALSE = 'false' ;
-
-NUMBER_LITERAL :
- INTEGER_LITERAL | UNLIMITED_LITERAL ;
-
-INTEGER_LITERAL :
- value = IntegerValue ; // (suffix = SuffixExpression) ? ;
-
-UNLIMITED_LITERAL :
- value = '*' ; // (suffix = SuffixExpression) ? ;
-
-terminal IntegerValue :
- ('0' | '1'..'9' (('_')? '0'..'9')*) | //DECIMAL
- (('0b' | '0B') '0'..'1' (('_')? '0'..'1')*) | // BINARY
- (('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F') (('_')? ('0'..'9'|'a'..'f'|'A'..'F'))*) | // HEX
- ('0' ('_')? '0'..'7' (('_')? '0'..'7')*) // OCT
-;
-
-STRING_LITERAL :
- value = STRING ; // (suffix = SuffixExpression) ?;
-
-NameExpression :
- (((prefixOp = ('++'|'--') (path=QualifiedNamePath)? id = ID))
- |
- ((path=QualifiedNamePath)? id = ID
- (invocationCompletion = Tuple
- | sequenceConstructionCompletion = SequenceConstructionOrAccessCompletion
- | postfixOp = ('++'|'--'))?)) (suffix = SuffixExpression) ?
- ;
-
-QualifiedNamePath :
- (namespace+=UnqualifiedName'::')+
-;
-
-UnqualifiedName :
- name = ID (templateBinding = TemplateBinding)?
-;
-
-TemplateBinding :
- '<'bindings+=NamedTemplateBinding (',' bindings +=NamedTemplateBinding)*'>'
-;
-
-NamedTemplateBinding :
- formal = ID '=>' actual = QualifiedNameWithBinding
-;
-
-QualifiedNameWithBinding :
- id = ID (binding=TemplateBinding)? ('::' remaining=QualifiedNameWithBinding)?;
-
-Tuple :
- {Tuple}'('(tupleElements += TupleElement (',' tupleElements+=TupleElement)*)?')'
-;
-
-TupleElement :
- argument = Expression
-;
-
-/**************
- * Expressions
- **************/
-
-Expression :
- ConditionalTestExpression
-;
-
-ConditionalTestExpression :
- exp=ConditionalOrExpression ('?' whenTrue=ConditionalTestExpression ':' whenFalse=ConditionalTestExpression)?
-;
-
-ConditionalOrExpression :
- exp+=ConditionalAndExpression ('||' exp+=ConditionalAndExpression)*
-;
-
-ConditionalAndExpression :
- exp+=InclusiveOrExpression ('&&' exp+=InclusiveOrExpression)*
-;
-
-InclusiveOrExpression :
- exp+=ExclusiveOrExpression ('|' exp+=ExclusiveOrExpression)*
-;
-
-ExclusiveOrExpression :
- exp+=AndExpression ('^' exp+=AndExpression)*
-;
-
-AndExpression :
- exp+=EqualityExpression ('&' exp+=EqualityExpression)*
-;
-
-EqualityExpression :
- exp+=ClassificationExpression (op+=('==' | '!=') exp+=ClassificationExpression)*
-;
-
-//enum EqualityOperator :
-// EQUALS = '==' |
-// NOT_EQUALS = '!='
-//;
-
-ClassificationExpression :
- exp=RelationalExpression (op=('instanceof' | 'hastype') typeName=NameExpression)?
-;
-
-//enum ClassificationOperator :
-// INSTANCEOF = 'instanceof' |
-// HASTYPE = 'hastype'
-//;
-
-RelationalExpression :
- left=ShiftExpression (op=('<' | '>' | '<=' | '>=') right=ShiftExpression)?
-;
-
-//RelationalOperator :
-// LOWER = '<' |
-// UPPER = '>' |
-// LOWER_EQUALS = '<=' |
-// UPPER_EQUALS = '>='
-//;
-
-ShiftExpression :
- exp+=AdditiveExpression (op=('<<' | '>>' | '>>>') exp+=AdditiveExpression)?
-;
-
-//enum ShiftOperator :
-// LSHIFT = '<<' |
-// RSHIFT = '>>' |
-// URSHIFT = '>>>'
-//;
-
-AdditiveExpression :
- exp+=MultiplicativeExpression (op+=('+' | '-') exp+=MultiplicativeExpression)*
-;
-
-//enum AdditiveOp :
-// PLUS = '+' |
-// MINUS = '-'
-//;
-
-MultiplicativeExpression :
- exp+=UnaryExpression (op+=('*' | '/' | '%') exp+=UnaryExpression)*
-;
-
-//enum MultiplicativeOp :
-// MULT = '*' |
-// DIV = '/' |
-// MOD = '%'
-//;
-
-UnaryExpression:
- (op=('!'|'-'|'+'|'$'|'~'))?
- exp=PrimaryExpression ;
-
-//PrimaryExpression :
-// prefix = ValueSpecification (suffix = SuffixExpression)?
-//;
-
-PrimaryExpression :
- prefix = ValueSpecification
-;
-
-SuffixExpression :
- OperationCallExpression |
- PropertyCallExpression |
- LinkOperationExpression |
- SequenceOperationExpression |
- SequenceReductionExpression |
- SequenceExpansionExpression |
- ClassExtentExpression
-;
-
-OperationCallExpression :
- '.' operationName = ID tuple = Tuple (suffix = SuffixExpression)?
-;
-
-// OperationCallExpressionWithoutDot :
-// operationName = ID tuple = Tuple (suffix = SuffixExpression)?
-// ;
-
-PropertyCallExpression :
- '.' propertyName = ID ('[' index=Expression ']')? (suffix = SuffixExpression)?
-;
-
-LinkOperationExpression :
- '.' kind = LinkOperationKind tuple = LinkOperationTuple
-;
-
-LinkOperationTuple :
- '('linkOperationTupleElement += LinkOperationTupleElement (',' linkOperationTupleElement += LinkOperationTupleElement)*')'
-;
-
-//LinkOperationTupleElement :
-// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
-//;
-
-LinkOperationTupleElement :
- role = ID ('['roleIndex = Expression ']')? '=>' object = Expression
-;
-
-enum LinkOperationKind :
- CREATE = 'createLink' |
- DESTROY = 'destroyLink' |
- CLEAR = 'clearAssoc'
-;
-
-SequenceOperationExpression :
- //'->' operationName = ID tuple = Tuple (suffix = SuffixExpression) ?
- '->' operationName = QualifiedNameWithBinding tuple = Tuple (suffix = SuffixExpression) ?
-;
-
-SequenceReductionExpression :
- '->' 'reduce' (isOrdered ?= 'ordered')? behavior = QualifiedNameWithBinding (suffix = SuffixExpression) ?
-;
-
-SequenceExpansionExpression :
- SelectOrRejectOperation |
- CollectOrIterateOperation |
- ForAllOrExistsOrOneOperation |
- IsUniqueOperation
-;
-
-SelectOrRejectOperation :
- '->' op = SelectOrRejectOperator name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
-;
-
-enum SelectOrRejectOperator :
- SELECT = 'select' |
- REJECT = 'reject'
-;
-
-CollectOrIterateOperation :
- '->' op = CollectOrIterateOperator name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
-;
-
-enum CollectOrIterateOperator :
- COLLECT = 'collect' |
- ITERATE = 'iterate'
-;
-
-ForAllOrExistsOrOneOperation :
- '->' op = ForAllOrExistsOrOneOperator name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
-;
-
-enum ForAllOrExistsOrOneOperator :
- FORALL = 'forAll' |
- EXISTS = 'exists' |
- ONE = 'one'
-;
-
-IsUniqueOperation :
- '->' 'isUnique' name = ID '('expr=Expression')' (suffix = SuffixExpression) ?
-;
-
-ValueSpecification :
- NameExpression |
- LITERAL |
- ThisExpression |
- SuperInvocationExpression |
- InstanceCreationExpression |
- ParenthesizedExpression |
- NullExpression
- ;
-
-NonLiteralValueSpecification :
- NameExpression |
- ParenthesizedExpression |
- InstanceCreationExpression |
- ThisExpression |
- SuperInvocationExpression
-;
-
-ParenthesizedExpression :
- '('expOrTypeCast = Expression')' ((casted = NonLiteralValueSpecification) | (suffix = SuffixExpression))?
-;
-
-NullExpression :
- {NullExpression} 'null'
-;
-
-ThisExpression :
- {ThisExpression}'this' (suffix = SuffixExpression)?
-;
-
-// SuperInvocationExpression :
-// //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
-// 'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
-//;
-
-SuperInvocationExpression :
- //{SuperInvocationExpression} 'super' ('.' qualifiedNameRoot = ID '::' qualifiedNameRemaining = NameExpression)? //(suffix = SuffixExpression) ?
- //'super' ('.' className = ID '::' operationCallWithoutDot = OperationCallExpressionWithoutDot | operationCall = OperationCallExpression)
- //'super' ((tuple = Tuple) |
- // ('.' (path = QualifiedNamePath) operation = ID tuple = Tuple))
- 'super' ((tuple = Tuple) |
- ('.' operationName = QualifiedNameWithBinding tuple = Tuple))
-;
-
-//InstanceCreationExpression :
- //'new' constructor=QualifiedNameWithBinding
- // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
- //'new' constructor=QualifiedNameWithBinding
- // tuple = Tuple (suffix = SuffixExpression) ?
-//;
-
-InstanceCreationExpression :
- //'new' constructor=QualifiedNameWithBinding
- // (tuple = Tuple | sequenceConstuctionCompletion = SequenceConstructionCompletion) (suffix = SuffixExpression) ?
- 'new' constructor=QualifiedNameWithBinding
- tuple = InstanceCreationTuple (suffix = SuffixExpression) ?
-;
-
-InstanceCreationTuple :
- {InstanceCreationTuple}'('(instanceCreationTupleElement += InstanceCreationTupleElement (',' instanceCreationTupleElement += InstanceCreationTupleElement)*)?')'
-;
-
-//LinkOperationTupleElement :
-// objectOrRole = ID (('['roleIndex = Expression ']')? '=>' object = ID)?
-//;
-
-InstanceCreationTupleElement :
- role = ID '=>' object = Expression
-;
-
-SequenceConstructionOrAccessCompletion :
- (multiplicityIndicator ?= '[' ((accessCompletion = AccessCompletion) | sequenceCompletion = PartialSequenceConstructionCompletion)) |
- (expression = SequenceConstructionExpression)
-;
-
-AccessCompletion :
- accessIndex = Expression ']'
-;
-
-PartialSequenceConstructionCompletion :
- ']' expression = SequenceConstructionExpression
-;
-
-//SequenceConstructionCompletion :
-// (multiplicityIndicator ?= '['']')? expression = SequenceConstructionExpression
-//;
-
-SequenceConstructionExpression :
- '{'sequenceElement+=SequenceElement
- ((',' sequenceElement+=SequenceElement)* | ('..' rangeUpper=Expression))
- '}'
-;
-
-SequenceElement :
- Expression | SequenceConstructionExpression
-;
-
-ClassExtentExpression :
- {ClassExtentExpression} '.' 'allInstances' '(' ')'
-;
-
-/*****************
- * Statements
- ****************/
-
-Block :
- '{' {Block}(sequence = StatementSequence)? '}'
-;
-
-StatementSequence :
- (statements += DocumentedStatement)+
-;
-
-DocumentedStatement :
- (comment = (ML_COMMENT | SL_COMMENT))? statement = Statement
-;
-
-InlineStatement :
- '/*@' 'inline' '('langageName = ID')' body = STRING '*/'
-;
-
-AnnotatedStatement :
- '//@' annotation = Annotation //block = Block
- statement = Statement
-;
-
-Statement :
- (AnnotatedStatement |
- InlineStatement |
- BlockStatement |
- EmptyStatement |
- LocalNameDeclarationStatement |
- IfStatement |
- SwitchStatement |
- WhileStatement |
- DoStatement |
- ForStatement |
- BreakStatement |
- ReturnStatement |
- AcceptStatement |
- ClassifyStatement |
- InvocationOrAssignementOrDeclarationStatement |
- SuperInvocationStatement |
- ThisInvocationStatement |
- InstanceCreationInvocationStatement)
-;
-
-Annotation :
- kind = AnnotationKind ('('args += ID (',' args += ID)* ')')?
-;
-
-enum AnnotationKind :
- ISOLATED = 'isolated' |
- DETERMINED = 'determined' |
- ASSURED = 'assured' |
- PARALLEL = 'parallel'
-;
-
-
-
-BlockStatement :
- block = Block
-;
-
-EmptyStatement :
- {EmptyStatement} ';'
-;
-
-LocalNameDeclarationStatement :
- 'let' varName = ID ':'
- type = QualifiedNameWithBinding
- (multiplicityIndicator?='[' ']')?
- //'=' init = Expression ';'
- '=' init = SequenceElement ';'
-;
-
-IfStatement :
- 'if' sequentialClausses = SequentialClauses ( finalClause = FinalClause )? ;
-
-SequentialClauses :
- conccurentClauses += ConcurrentClauses
- ( 'else' 'if' conccurentClauses += ConcurrentClauses )* ;
-
-ConcurrentClauses :
- nonFinalClause += NonFinalClause
- ( 'or' 'if' nonFinalClause += NonFinalClause )* ;
-
-NonFinalClause :
- '(' condition = Expression ')' block = Block ;
-
-FinalClause :
- 'else' block = Block ;
-
-
-SwitchStatement :
- 'switch' '(' expression = Expression ')' '{'
- ( switchClause += SwitchClause )*
- ( defaultClause = SwitchDefaultClause )?
- '}' ;
-
-SwitchClause :
- switchCase += SwitchCase ( switchCase += SwitchCase )* statementSequence = NonEmptyStatementSequence ;
-
-SwitchCase :
- 'case' expression = Expression ':' ;
-
-SwitchDefaultClause :
- 'default' ':' statementSequence = NonEmptyStatementSequence ;
-
-NonEmptyStatementSequence :
- ( statement += DocumentedStatement )+ ;
-
-/* WHILE STATEMENTS */
-WhileStatement :
- 'while' '(' condition = Expression ')' block = Block ;
-
-/* DO STATEMENTS */
-DoStatement :
- 'do' block = Block 'while' '(' condition = Expression ')' ';' ;
-
-/* FOR STATEMENTS */
-ForStatement :
- 'for' '(' control = ForControl ')' block = Block ;
-
-ForControl :
- loopVariableDefinition += LoopVariableDefinition( ',' loopVariableDefinition += LoopVariableDefinition )* ;
-
-LoopVariableDefinition :
- (name = ID 'in' expression1 = Expression ( '..' expression2 = Expression )?)
- | (type = QualifiedNameWithBinding name = ID ':' expression = Expression) ;
-
-/* BREAK STATEMENTS */
-BreakStatement :
- {BreakStatement}'break' ';' ;
-
-/* RETURN STATEMENTS */
-ReturnStatement :
- 'return' expression = Expression ';' ;
-
-/* ACCEPT STATEMENTS */
-AcceptStatement :
- clause = AcceptClause
- ( simpleAccept = SimpleAcceptStatementCompletion
- | compoundAccept = CompoundAcceptStatementCompletion ) ;
-
-SimpleAcceptStatementCompletion :
- {SimpleAcceptStatementCompletion}';' ;
-
-CompoundAcceptStatementCompletion :
- block = Block ( 'or' acceptBlock += AcceptBlock )* ;
-
-AcceptBlock :
- clause = AcceptClause block = Block ;
-
-AcceptClause :
- 'accept' '(' ( name = ID ':' )? qualifiedNameList = QualifiedNameList ')' ;
-
-/* CLASSIFY STATEMENTS */
-ClassifyStatement :
- 'classify' expression = Expression clause = ClassificationClause ';' ;
-
-ClassificationClause :
- classifyFromClause = ClassificationFromClause ( classifyToClause = ClassificationToClause )?
- | ( reclassyAllClause = ReclassifyAllClause )? classifyToClause = ClassificationToClause ;
-
-ClassificationFromClause :
- 'from' qualifiedNameList = QualifiedNameList ;
-
-ClassificationToClause :
- 'to' qualifiedNameList = QualifiedNameList ;
-
-ReclassifyAllClause :
- {ReclassifyAllClause}'from' '*' ;
-
-QualifiedNameList :
- qualifiedName += QualifiedNameWithBinding ( ',' qualifiedName += QualifiedNameWithBinding )* ;
-
-InvocationOrAssignementOrDeclarationStatement :
- typePart_OR_assignedPart_OR_invocationPart = NameExpression
- //(suffixCompletion = SuffixCompletion)?
- ((variableDeclarationCompletion = VariableDeclarationCompletion) |
- (assignmentCompletion = AssignmentCompletion))? ';'
-;
-
-SuperInvocationStatement :
- _super = SuperInvocationExpression ';'//(suffix = SuffixCompletion)? ';'
-;
-
-ThisInvocationStatement :
- //_this = ThisExpression suffix = SuffixCompletion (assignmentCompletion = AssignmentCompletion)? ';'
- _this = ThisExpression (assignmentCompletion = AssignmentCompletion)? ';'
-;
-
-InstanceCreationInvocationStatement :
- _new = InstanceCreationExpression ';' //(suffix = SuffixCompletion)? ';'
-;
-
-//SuffixCompletion :
-// suffix = SuffixExpression
-//;
-
-VariableDeclarationCompletion :
- (multiplicityIndicator ?= '[' ']')? variableName = ID initValue = AssignmentCompletion
-;
-
-AssignmentCompletion :
- op=AssignmentOperator rightHandSide = SequenceElement
- //op=('=' | '+=' | '-=' | '*=' | '%=' | '/=' | '&=' |
- // '|=' | '^=' | '<<=' | '>>=' | '>>>=') rightHandSide = Expression
-;
-
-enum AssignmentOperator :
- ASSIGN = '=' |
- PLUSASSIGN = '+=' |
- MINUSASSIGN = '-=' |
- MULTASSIGN = '*=' |
- MODASSIGN = '%=' |
- DIVASSIGN = '/=' |
- ANDASSIGN = '&=' |
- ORASSIGN = '|=' |
- XORASSIGN = '^=' |
- LSHIFTASSIGN = '<<=' |
- RSHIFTASSIGN = '>>=' |
- URSHIFTASSIGN = '>>>='
-;
-
-/****************
-* Terminals
-*****************/
-
-//terminal DOUBLE_COLON : '::' ;
-
-terminal ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
-terminal STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'"'|"'"|'\\') | !('\\'|'"') )* '"' ;
-terminal ML_COMMENT : '/*' !('@') -> '*/';
-terminal SL_COMMENT : '//' !('\n'|'\r'|'@')* ('\r'? '\n')?;
-
-//terminal IDENTIFIER : ID ;
-//terminal IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* | ('\'' -> '\'') ;
-
-//terminal DOCUMENTATION_COMMENT : '/*' -> '*/' ;
-
-//terminal ML_COMMENT : '/°' -> '°/';
-//terminal SL_COMMENT : '°°' !('\n'|'\r')* ('\r'? '\n')?;
-
-//terminal WS : (' '|'\t'|'\r'|'\n')+; \ No newline at end of file

Back to the top