language Emfatic;

options { k=3; 
          parserPackageName="org.eclipse.emf.emfatic.core.lang.gen.parser"; 
          astPackageName="org.eclipse.emf.emfatic.core.lang.gen.ast"; 
          astBaseClassName="EmfaticASTNode";
        }


sequence compUnit [entry] : packageDecl importStmts topLevelDecls  ;

sequence packageDecl : annotations "package" name=qualifiedID SEMI ;

list qualifiedID : id1=ID (qidSeparator idn=ID)* ;
token qidSeparator : DOT | DOLLAR ;

abstract stringLiteralOrQualifiedID : stringLiteralContainer | qualifiedIDContainer ;
sequence stringLiteralContainer : STRING_LITERAL ;
sequence qualifiedIDContainer : qualifiedID ;

list annotations : annotation* ;
sequence annotation : AT source=stringLiteralOrQualifiedID LPAREN keyEqualsValueList RPAREN ;
list keyEqualsValueList : kv1=keyEqualsValue (COMMA kvn=keyEqualsValue)* ;
sequence keyEqualsValue : key=stringLiteralOrQualifiedID EQUALS value=stringLiteralOrQualifiedID ;

list importStmts : importStmt* ; 

sequence importStmt : "import" (alias=ID EQUALS)? uri=stringLiteralOrQualifiedID SEMI ;

list topLevelDecls : topLevelDecl* ;

abstract topLevelDecl : (annotations) 
  subPackageDecl | classDecl | dataTypeDecl | enumDecl | mapEntryDecl ;

sequence subPackageDecl : "package" name=ID LCURLY topLevelDecls RCURLY ;

sequence classDecl : (abstractModifier)? 
                     classKind name=ID 
                     (typeParamsInfo=typeParamsInfo)?
                     ("extends" superTypes=commaListBoundExceptWild)? 
                     (COLON instClassName=boundExceptWildcard)? 
                     LCURLY classMemberDecls RCURLY ;
list commaListBoundExceptWild : tb1=boundExceptWildcard (COMMA tbn=boundExceptWildcard)*;

sequence abstractModifier : "abstract" ;
token classKind : "class" | "interface" ;

sequence typeParamsInfo : LT oneOrMoreTypeParams GT ; 
list oneOrMoreTypeParams : tp1=typeParam (COMMA tpn=typeParam)* ;
sequence typeParam : typeVarName=ID (typeBoundsInfo=typeBoundsInfo)? ; 
sequence typeBoundsInfo : "extends" oneOrMoreTypeParamBounds ; 
list oneOrMoreTypeParamBounds : tb1=boundExceptWildcard (AMP tbn=boundExceptWildcard)*; 
sequence boundExceptWildcard : rawTNameOrTVarOrParamzedTName=qualifiedID (LT oneOrMoreTypeArgs GT)? ; 
list oneOrMoreTypeArgs : ta1=typeArg (COMMA tan=typeArg)*;
abstract typeArg : boundExceptWildcard | wildcard  ;
sequence wildcard : QMARK ( extendsOrSuper boundExceptWildcard )? ; 
token extendsOrSuper : "extends" | "super" ; 

// there are no array types in EMF
/* dot means package nesting, there are no inner classes in EMF */


list classMemberDecls : classMemberDecl* ;
abstract classMemberDecl : (annotations modifiers) attribute | reference | operation ;

sequence attribute : "attr" typeWithMulti name=ID (EQUALS defaultValueExpr)? SEMI ; 

sequence typeWithMulti : name=boundExceptWildcard (multiplicity)? ;

sequence multiplicity : LSQUARE (multiplicityExpr)? RSQUARE ;
sequence multiplicityExpr : lowerBound=simpleMultiplicityExpr (DOT_DOT upperBound=simpleMultiplicityExpr)? ;
token simpleMultiplicityExpr : STAR | PLUS | QMARK | INT_LITERAL ;

sequence reference : referenceKind typeWithMulti (HASH oppositeName=ID)? name=ID SEMI ;
token referenceKind : "ref" | "val" ;

list modifiers : optNegatedModifier* ;
sequence optNegatedModifier : (BANG)? modifier ;
token modifier
// keyword        EMF meaning
: "readonly"   // EStructuralFeature.changeable = false
| "volatile"   // EStructuralFeature.volatile   = true
| "transient"  // EStructuralFeature.transient  = true
| "unsettable" // EStructuralFeature.unsettable = true
| "derived"    // EStructuralFeature.derived    = true
| "unique"     // *ETypedElement.unique         = true  -- bag?
| "ordered"    // *ETypedElement.ordered        = true  -- random?
| "resolve"    // *EReference.resolveProxies    = true  -- local?
| "id"         // EAttribute.id                 = true
;

abstract defaultValueExpr : boolExpr | intExpr | stringExpr | charExpr ;
sequence boolExpr : trueOrFalse ;
token trueOrFalse : "true" | "false" ;
sequence intExpr : (MINUS)? INT_LITERAL ;
sequence stringExpr : STRING_LITERAL ;
sequence charExpr : CHAR_LITERAL ;

sequence operation : "op" (typeParamsInfo=typeParamsInfo)? 
   resType=resultType name=ID LPAREN (params)? RPAREN 
   ("throws" exceptions=commaListBoundExceptWild)? SEMI ;

abstract resultType : typeWithMulti | voidContainer ; 
sequence voidContainer : "void" ; 

list params : p1=param (COMMA pn=param)*; 
sequence param : leadingAnnotations=annotations modifiers typeWithMulti name=ID trailingAnnotations=annotations ;

// "transient" means !serializable
sequence dataTypeDecl : (transientModifier)? "datatype" name=ID COLON instClassName=stringLiteralOrQualifiedID SEMI ; // TODO datatypes should accept type parameters
sequence transientModifier : "transient" ;

sequence enumDecl : "enum" name=ID LCURLY enumLiterals RCURLY ;
list enumLiterals : enumLiteral* ;
sequence enumLiteral : leadingAnnotations=annotations name=ID (EQUALS val=INT_LITERAL)? trailingAnnotations=annotations SEMI ;

sequence mapEntryDecl : "mapentry" name=ID COLON key=typeWithMulti MINUS_GT value=typeWithMulti SEMI ;

// the following tokens were added to cater for generics syntax : AMP, LT, GT 
