
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: automata/petri/pnml/standard/terms/extracted
Source used for this grammar: Lom Hillah, RELAX NG implementation of High-level Petri Nets Terms grammar, terms.rng, July 2008 [Download]
Declarations, Declaration.content, Declaration, VariableDeclaration, SortDeclaration.content, SortDeclaration, OperatorDeclaration.content, OperatorDeclaration, Variable, NamedSort, NamedOperator, Term.content, Term, Sort.content, Sort, BuiltInSort, MultisetSort, ProductSort, UserSort, Operator.content, Operator, BuiltInOperator.content, BuiltInOperator, BuiltInConstant.content, BuiltInConstant, MultisetOperator.content, MultisetOperator, Tuple, UserOperator), 0 root (—), 6 top (Declarations, Term.content, Sort.content, BuiltInOperator.content, BuiltInConstant.content, MultisetOperator.content), 0 bottom (—).[declarations], [id], [name], [variabledecl], [refvariable], [variable], [namedsort], [parameter], [def], [namedoperator], [multisetsort], [productsort], [declaration] 2, [usersort], [subterm], [tuple], [useroperator].Declarations ::=
[declarations]::DeclarationDeclaration.content ::= [id]::string [name]::string
Declaration ::= SortDeclaration VariableDeclaration OperatorDeclaration
VariableDeclaration ::= [variabledecl]::Declaration.content Sort
SortDeclaration.content ::= Declaration.content
SortDeclaration ::= NamedSort
OperatorDeclaration.content ::= Declaration.content
OperatorDeclaration ::= NamedOperator
Variable ::= [variable]::[refvariable]::string
NamedSort ::= [namedsort]::SortDeclaration.content Sort
NamedOperator ::= [namedoperator]::OperatorDeclaration.content [parameter]::VariableDeclaration [def]::Term
Term.content ::= ε
Term ::= Variable Operator
Sort.content ::= ε
Sort ::= BuiltInSort MultisetSort ProductSort UserSort
BuiltInSort ::= ε
MultisetSort ::= [multisetsort]::Sort
ProductSort ::=
[productsort]::SortUserSort ::= [usersort]::[declaration]::string
Operator.content ::=
[subterm]::TermOperator ::= BuiltInOperator BuiltInConstant MultisetOperator Tuple UserOperator
BuiltInOperator.content ::= Operator.content
BuiltInOperator ::= ε
BuiltInConstant.content ::= Operator.content
BuiltInConstant ::= ε
MultisetOperator.content ::= Operator.content
MultisetOperator ::= ε
Tuple ::= [tuple]::Operator.content
UserOperator ::= [useroperator]::[declaration]::string Operator.content