| <html> |
| |
| <head> |
| <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> |
| <meta name=Generator content="Microsoft Word 10 (filtered)"> |
| <title>language Emfatic;</title> |
| |
| <style> |
| <!-- |
| /* Style Definitions */ |
| p.MsoNormal, li.MsoNormal, div.MsoNormal |
| {margin:0cm; |
| margin-bottom:.0001pt; |
| font-size:12.0pt; |
| font-family:"Times New Roman";} |
| @page Section1 |
| {size:612.0pt 792.0pt; |
| margin:70.85pt 70.85pt 2.0cm 70.85pt;} |
| div.Section1 |
| {page:Section1;} |
| --> |
| </style> |
| |
| </head> |
| |
| <body lang=DE> |
| |
| <div class=Section1> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:blue'>language</span><span style='font-size: |
| 8.0pt;font-family:"Courier New";color:black'> Emfatic;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:blue'>options</span><span style='font-size: |
| 8.0pt;font-family:"Courier New";color:black'> { k=3; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> parserPackageName=</span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"org.eclipse.emf.emfatic.core.lang.gen.parser"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'>; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> astPackageName=</span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"org.eclipse.emf.emfatic.core.lang.gen.ast"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'>; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> astBaseClassName=</span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"EmfaticASTNode"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'>;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> }</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> compUnit [entry] |
| : packageDecl importStmts topLevelDecls ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> packageDecl : annotations |
| </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"package"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> name=qualifiedID |
| SEMI ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> qualifiedID : |
| id1=ID (qidSeparator idn=ID)* ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> qidSeparator : |
| DOT | DOLLAR ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>abstract</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> stringLiteralOrQualifiedID |
| : stringLiteralContainer | qualifiedIDContainer ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> stringLiteralContainer |
| : STRING_LITERAL ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> qualifiedIDContainer |
| : qualifiedID ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> annotations : annotation* |
| ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> annotation : AT source=stringLiteralOrQualifiedID |
| LPAREN keyEqualsValueList RPAREN ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> keyEqualsValueList |
| : kv1=keyEqualsValue (COMMA kvn=keyEqualsValue)* ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> keyEqualsValue : |
| key=stringLiteralOrQualifiedID EQUALS value=stringLiteralOrQualifiedID ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> importStmts : importStmt* |
| ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> importStmt : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"import"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> (alias=ID |
| EQUALS)? uri=stringLiteralOrQualifiedID SEMI ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> topLevelDecls : topLevelDecl* |
| ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>abstract</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> topLevelDecl : (annotations) |
| </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> subPackageDecl | classDecl | dataTypeDecl |
| | enumDecl | mapEntryDecl ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> subPackageDecl : |
| </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"package"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> name=ID LCURLY topLevelDecls |
| RCURLY ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> classDecl : (abstractModifier)? |
| </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> classKind name=ID </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> (typeParamsInfo=typeParamsInfo)?</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> (</span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"extends"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> superTypes=commaListBoundExceptWild)? |
| </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> (COLON instClassName=boundExceptWildcard)? |
| </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> LCURLY classMemberDecls |
| RCURLY ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> commaListBoundExceptWild |
| : tb1=boundExceptWildcard (COMMA tbn=boundExceptWildcard)*;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> abstractModifier |
| : </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"abstract"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> classKind : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"class"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> | </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"interface"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> typeParamsInfo : |
| LT oneOrMoreTypeParams GT ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> oneOrMoreTypeParams |
| : tp1=typeParam (COMMA tpn=typeParam)* ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> typeParam : typeVarName=ID |
| (typeBoundsInfo=typeBoundsInfo)? ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> typeBoundsInfo : |
| </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"extends"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> oneOrMoreTypeParamBounds |
| ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> oneOrMoreTypeParamBounds |
| : tb1=boundExceptWildcard (AMP tbn=boundExceptWildcard)*; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> boundExceptWildcard |
| : rawTNameOrTVarOrParamzedTName=qualifiedID (LT oneOrMoreTypeArgs GT)? ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> oneOrMoreTypeArgs |
| : ta1=typeArg (COMMA tan=typeArg)*;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>abstract</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> typeArg : boundExceptWildcard |
| | wildcard ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> wildcard : QMARK |
| ( extendsOrSuper boundExceptWildcard )? ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> extendsOrSuper : |
| </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"extends"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> | </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"super"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy;background:gray'>// there are no array types |
| in EMF</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy;background:gray'>/* dot means package nesting, |
| there are no inner classes in EMF */</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> classMemberDecls |
| : classMemberDecl* ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>abstract</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> classMemberDecl |
| : (annotations modifiers) attribute | reference | operation ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> attribute : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"attr"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> typeWithMulti name=ID |
| (EQUALS defaultValueExpr)? SEMI ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> typeWithMulti : name=boundExceptWildcard |
| (multiplicity)? ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> multiplicity : |
| LSQUARE (multiplicityExpr)? RSQUARE ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> multiplicityExpr |
| : lowerBound=simpleMultiplicityExpr (DOT_DOT upperBound=simpleMultiplicityExpr)? |
| ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> simpleMultiplicityExpr |
| : STAR | PLUS | QMARK | INT_LITERAL ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> reference : referenceKind |
| typeWithMulti (HASH oppositeName=ID)? name=ID SEMI ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> referenceKind : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"ref"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> | </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"val"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> modifiers : optNegatedModifier* |
| ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> optNegatedModifier |
| : (BANG)? modifier ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> modifier</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy;background:gray'>// keyword EMF meaning</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>: </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"readonly"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| EStructuralFeature.changeable = false</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"volatile"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| EStructuralFeature.volatile = true</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"transient"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| EStructuralFeature.transient = true</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"unsettable"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| EStructuralFeature.unsettable = true</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"derived"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| EStructuralFeature.derived = true</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"unique"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| *ETypedElement.unique = true -- bag?</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"ordered"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| *ETypedElement.ordered = true -- random?</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"resolve"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| *EReference.resolveProxies = true -- local?</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>| </span><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy'>"id"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy;background:gray'>// |
| EAttribute.id = true</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'>;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>abstract</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> defaultValueExpr |
| : boolExpr | intExpr | stringExpr | charExpr ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> boolExpr : trueOrFalse |
| ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>token</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> trueOrFalse : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"true"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> | </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"false"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> intExpr : |
| (MINUS)? INT_LITERAL ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> stringExpr : |
| STRING_LITERAL ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> charExpr : |
| CHAR_LITERAL ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> operation : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"op"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> (typeParamsInfo=typeParamsInfo)? |
| </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> resType=resultType name=ID LPAREN (params)? |
| RPAREN </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New";color:black'> (</span><b><span style='font-size: |
| 8.0pt;font-family:"Courier New";color:navy'>"throws"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> exceptions=commaListBoundExceptWild)? |
| SEMI ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>abstract</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> resultType : typeWithMulti |
| | voidContainer ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> voidContainer : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"void"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> params : |
| p1=param (COMMA pn=param)*; </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> param : leadingAnnotations=annotations |
| modifiers typeWithMulti name=ID trailingAnnotations=annotations ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy;background:gray'>// "transient" means |
| !serializable</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> dataTypeDecl : (transientModifier)? |
| </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"datatype"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> name=ID COLON instClassName=stringLiteralOrQualifiedID |
| SEMI ; </span><b><span style='font-size:8.0pt;font-family:"Courier New"; |
| color:navy;background:gray'>// TODO datatypes should accept type parameters</span></b></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> transientModifier |
| : </span><b><span style='font-size:8.0pt;font-family:"Courier New";color:navy'>"transient"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> enumDecl : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"enum"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> name=ID LCURLY enumLiterals |
| RCURLY ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>list</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> enumLiterals : enumLiteral* |
| ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> enumLiteral : leadingAnnotations=annotations |
| name=ID (EQUALS val=INT_LITERAL)? trailingAnnotations=annotations SEMI ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:red;background:yellow'>sequence</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> mapEntryDecl : </span><b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:navy'>"mapentry"</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New";color:black'> name=ID COLON key=typeWithMulti |
| MINUS_GT value=typeWithMulti SEMI ;</span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><span style='font-size:8.0pt; |
| font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal style='text-autospace:none'><b><span style='font-size:8.0pt; |
| font-family:"Courier New";color:navy;background:gray'>// the following tokens were |
| added to cater for generics syntax : AMP, LT, GT</span></b><span |
| style='font-size:8.0pt;font-family:"Courier New"'> </span></p> |
| |
| <p class=MsoNormal><span lang=EN-US> </span></p> |
| |
| </div> |
| |
| </body> |
| |
| </html> |