Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: automata/petri/pnml/standard/highlevel/place-transition/extracted
Source used for this grammar: Lom Hillah, RELAX NG implementation of P/T nets defined as a restricted form of High-Level Petri Net Graphs, pt-hlpng.pntd
, July 2008 [Download]
nettype.uri
, Operator
, BuiltInSort
, BuiltInOperator
, BuiltInConstant
, Bool
, BooleanOperator.content
, BooleanOperator
, And
, Or
, Not
, Imply
, Equality
, Inequality
, BooleanConstant
, Dot
, DotConstant
, MultisetOperator
, Add
, Subtract
, All
, Empty
, ScalarProduct
, NumberOf
, Cardinality
, CardinalityOf
, Contains
, Declarations
, Declaration.content
, Declaration
, VariableDeclaration
, SortDeclaration.content
, SortDeclaration
, OperatorDeclaration.content
, OperatorDeclaration
, Variable
, NamedSort
, NamedOperator
, Term.content
, Term
, Sort.content
, Sort
, MultisetSort
, ProductSort
, UserSort
, Operator.content
, BuiltInOperator.content
, BuiltInConstant.content
, MultisetOperator.content
, Tuple
, UserOperator
, pnml.element
, pnml.content
, net.element
, identifier.content
, net.labels
, basicobject.content
, page.content
, netobject.content
, page.labels
, place.content
, place.labels
, transition.content
, transition.labels
, node.content
, reference
, refplace.content
, reftrans.content
, refnode.content
, arc.content
, arc.labels
, pagegraphics.content
, nodegraphics.content
, edgegraphics.content
, simpletext.content
, annotationstandard.content
, simpletextlabel.content
, Name
, annotationgraphics.content
, position.element
, offset.element
, coordinate.attributes
, dimension.element
, positiveDecimal.content
, fill.element
, line.element
, color.type
, font.element
, toolspecific.element
, anyElement
, HLDeclaration
, Type
, HLMarking
, Condition
, HLAnnotation
), 1 root (pnml.element
), 2 top (Term.content
, Sort.content
), 0 bottom (—).[type]
3, [bool]
, [and]
, [or]
, [not]
, [imply]
, [equality]
, [inequality]
, [value]
, [booleanconstant]
, [dot]
, [dotconstant]
, [add]
, [subtract]
, [all]
, [empty]
, [scalarproduct]
, [numberof]
, [cardinality]
, [cardinalityof]
, [contains]
, [declarations]
, [id]
2, [name]
2, [variabledecl]
, [refvariable]
, [variable]
, [namedsort]
, [parameter]
, [def]
, [namedoperator]
, [multisetsort]
, [productsort]
, [declaration]
3, [usersort]
, [subterm]
, [tuple]
, [useroperator]
, [pnml]
, [net]
, [graphics]
4, [page]
, [place]
, [transition]
, [ref]
, [referencePlace]
, [referenceTransition]
, [source]
, [target]
, [arc]
, [text]
, [position]
, [offset]
, [x]
2, [y]
2, [dimension]
, [color]
2, [gradient-color]
, [gradient-rotation]
, [image]
, [fill]
, [shape]
, [width]
, [style]
2, [line]
, [family]
, [weight]
, [size]
, [decoration]
, [align]
, [rotation]
, [font]
, [tool]
, [version]
, [toolspecific]
, [structure]
5, [hlinitialMarking]
, [condition]
, [hlinscription]
.nettype.uri ::=
[type]::"http://www.pnml.org/version-2009/grammar/pt-hlpng"
Operator ::= Equality Inequality
BuiltInSort ::= Bool
BuiltInOperator ::= BooleanOperator
BuiltInConstant ::= BooleanConstant
Bool ::= [bool]::ε
BooleanOperator.content ::= BuiltInOperator.content
BooleanOperator ::= And Or Imply Not
And ::= [and]::BooleanOperator.content
Or ::= [or]::BooleanOperator.content
Not ::= [not]::BooleanOperator.content
Imply ::= [imply]::BooleanOperator.content
Equality ::= [equality]::Operator.content
Inequality ::= [inequality]::Operator.content
BooleanConstant ::= [booleanconstant]::"true""false" BuiltInConstant.content[value]::
BuiltInSort ::= Dot
BuiltInConstant ::= DotConstant
Dot ::= [dot]::ε
DotConstant ::= [dotconstant]::ε
BuiltInOperator ::= Cardinality CardinalityOf Contains
MultisetOperator ::= Add All NumberOf Subtract ScalarProduct Empty
Add ::= [add]::MultisetOperator.content
Subtract ::= [subtract]::MultisetOperator.content
All ::= [all]::MultisetOperator.content Sort
Empty ::= [empty]::MultisetOperator.content Sort
ScalarProduct ::= [scalarproduct]::MultisetOperator.content
NumberOf ::= [numberof]::MultisetOperator.content
Cardinality ::= [cardinality]::BuiltInOperator.content
CardinalityOf ::= [cardinalityof]::BuiltInOperator.content
Contains ::= [contains]::BuiltInOperator.content
Declarations ::=
[declarations]::Declaration
Declaration.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]::Sort
UserSort ::= [usersort]::[declaration]::string
Operator.content ::=
[subterm]::Term
Operator ::= 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
pnml.element ::=
[pnml]::pnml.content
pnml.content ::= net.element
net.element ::= [net]::identifier.content nettype.uri Name net.labels page.content toolspecific.element
identifier.content ::= [id]::string
nettype.uri ::=
[type]::"http://www.pnml.org/version-2009/grammar/pnmlcoremodel"
net.labels ::= ε
basicobject.content ::= Nametoolspecific.element
page.content ::= [page]::identifier.content basicobject.content page.labels netobject.content [graphics]::pagegraphics.content
netobject.content ::= page.content place.content transition.content refplace.content reftrans.content arc.content
page.labels ::= ε
place.content ::= [place]::identifier.content basicobject.content place.labels node.content
place.labels ::= ε
transition.content ::= [transition]::identifier.content basicobject.content transition.labels node.content
transition.labels ::= ε
node.content ::=
[graphics]::nodegraphics.content
reference ::= [ref]::string
refplace.content ::= [referencePlace]::refnode.content
reftrans.content ::= [referenceTransition]::refnode.content
refnode.content ::= identifier.content reference basicobject.content node.content
arc.content ::= [arc]::identifier.content [source]::string [target]::string Name arc.labels [graphics]::edgegraphics.content toolspecific.element
arc.labels ::= ε
pagegraphics.content ::= nodegraphics.content
nodegraphics.content ::= position.element dimension.elementfill.element line.element
edgegraphics.content ::= position.elementline.element
simpletext.content ::=
[text]::string
annotationstandard.content ::= [graphics]::annotationgraphics.contenttoolspecific.element
simpletextlabel.content ::= simpletext.content annotationstandard.content
Name ::= [name]::simpletextlabel.content
annotationgraphics.content ::= offset.elementfill.element line.element font.element
position.element ::= [position]::coordinate.attributes
offset.element ::= [offset]::coordinate.attributes
coordinate.attributes ::= [x]::integer [y]::integer
dimension.element ::= [dimension]::[x]::positiveDecimal.content [y]::positiveDecimal.content
positiveDecimal.content ::= integer
fill.element ::= [fill]::"vertical""horizontal""diagonal" [image]::string[color]::color.type [gradient-color]::color.type [gradient-rotation]::
line.element ::= [line]::"line""curve" [color]::color.type [width]::positiveDecimal.content [style]::"solid""dash""dot"[shape]::
color.type ::= string
font.element ::= [font]::"underline""overline""line-through" [align]::"left""center""right" [rotation]::integer[family]::string [style]::string [weight]::string [size]::string [decoration]::
toolspecific.element ::= [toolspecific]::[tool]::string [version]::string anyElement
anyElement ::=α string anyElement
net.labels ::=
HLDeclaration
page.labels ::=
HLDeclaration
place.labels ::= TypeHLMarking
transition.labels ::=
Condition
arc.labels ::=
HLAnnotation
HLDeclaration ::= [declaration]::simpletextlabel.content [structure]::Declarations
Type ::= [type]::simpletextlabel.content [structure]::Sort
HLMarking ::= [hlinitialMarking]::simpletextlabel.content [structure]::Term
Condition ::= [condition]::simpletextlabel.content [structure]::Term
HLAnnotation ::= [hlinscription]::simpletextlabel.content [structure]::Term