Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: api/api2mol/concrete/extracted
Source used for this grammar: Javier Canovas, Frédéric Jouault, Jordi Cabot, Jesus Garcia Molina, api2mol.g
, 2011-04-08 [api2mol.g]
mainRule
, contextSection
, defaultMetaclassSection
, mapping
, metaclassName
, instanceName
, section
, newSection
, multipleSection
, propertySection
, valueSection
, statement
, constructorCall
, methodCall
, variable
, param
), 0 root (—), 1 top (mainRule
), 15 bottom (COLON
3, LPAREN
4, RCURLY
, ID
12, RPAREN
4, COMMA
4, DEFAULT_METACLASS
, AT
4, MULTIPLE
, CONTEXT
, SEMI
5, LCURLY
, ENUM
, NEW
, DOT
).mainRule ::= contextSectiondefaultMetaclassSection mapping
contextSection ::= AT CONTEXT instanceNameCOMMA instanceName SEMI
defaultMetaclassSection ::= AT DEFAULT_METACLASS ID LPAREN ID RPAREN SEMI
mapping ::= ENUMmetaclassName COLON instanceName LCURLY section RCURLY
metaclassName ::= ID
instanceName ::= IDDOT ID
section ::= newSection multipleSection propertySection valueSection
newSection ::=
AT NEW constructorCall
multipleSection ::=
AT MULTIPLE statement
propertySection ::=
ID COLON statement
valueSection ::= ID COLON instanceName SEMI
statement ::= IDLPAREN variable COMMA variable RPAREN methodCall SEMI
constructorCall ::= ID LPARENparam COMMA param RPAREN SEMI
methodCall ::= IDLPAREN param COMMA param RPAREN
variable ::= ID
param ::= ID