#Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp # using base file:///devel/WWW/2000/10/swap/grammar/ # Notation3 generation by # notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp # Base was: file:///devel/WWW/2000/10/swap/grammar/ @prefix : . @prefix bnf: . @prefix h: . @prefix log: . @forSome <#_g0>, <#_g1>, <#_g2>, <#_g3> . "!" h:reference """"!"""" . "(" h:reference """"("""" . ")" h:reference """")"""" . "," h:reference """","""" . "." h:reference """"."""" . ";" h:reference """";"""" . "=" h:reference """"="""" . "@a" h:reference """"@a"""" . "@base" h:reference """"@base"""" . "@forSome" h:reference """"@forSome"""" . "@has" h:reference """"@has"""" . "@keywords" h:reference """"@keywords"""" . "@prefix" h:reference """"@prefix"""" . "[" h:reference """"["""" . "]" h:reference """"]"""" . "^" h:reference """"^"""" . () a h:Sequence, h:SequenceTail; h:seqlabel "void" . ( "!" :pathtail ) a h:SequenceTail; h:seqlabel """"!" pathtail""" . ( "!" :verb :pathtail ) a h:Sequence, h:SequenceTail; h:seqlabel """"!" verb pathtail""" . ( "(" :itemlist ")" ) a h:Sequence, h:SequenceTail . ( "(" :objectlist ")" ) a h:Sequence, h:SequenceTail; h:seqlabel """"(" objectlist ")"""" . ( ")" ) a h:SequenceTail; h:seqlabel """")"""" . ( "," :barename <#_g3> ) a h:Sequence, h:SequenceTail; h:seqlabel """"," barename barename_csl""" . ( "," :object :objecttail ) a h:Sequence, h:SequenceTail; h:seqlabel """"," object objecttail""" . ( "," :symbol <#_g2> ) a h:Sequence, h:SequenceTail; h:seqlabel """"," symbol symbol_csl""" . ( "." :statementlist ) a h:Sequence, h:SequenceTail; h:seqlabel """"." statementlist""" . ( "." :statements_optional ) a h:SequenceTail; h:seqlabel """"." statements_optional""" . ( "." ) a h:Sequence, h:SequenceTail; h:seqlabel """"."""" . ( "0" 0 ) log:outputString """ BNF

BNF

Productions are in normal type, linked to their definitions.
Regular expressions are in italics
Literal characters in quoted in bold
void means an empty production.

""" . ( ";" :propertylist ) a h:Sequence, h:SequenceTail; h:seqlabel """";" propertylist""" . ( "=" ) a h:Sequence, h:SequenceTail; h:seqlabel """"="""" . ( "@a" ) a h:Sequence, h:SequenceTail; h:seqlabel """"@a"""" . ( "@base" :explicituri "." ) a h:Sequence, h:SequenceTail; h:seqlabel """"@base" explicituri "."""" . ( "@forSome" <#_g2> ) a h:Sequence, h:SequenceTail; h:seqlabel """"@forSome" symbol_csl""" . ( "@has" :prop ) a h:Sequence, h:SequenceTail; h:seqlabel """"@has" prop""" . ( "@keywords" <#_g3> ) a h:Sequence, h:SequenceTail; h:seqlabel """"@keywords" barename_csl""" . ( "@prefix" :qname :explicituri "." ) a h:Sequence, h:SequenceTail; h:seqlabel """"@prefix" qname explicituri "."""" . ( "[" :propertylist "]" ) a h:Sequence, h:SequenceTail; h:seqlabel """"[" propertylist "]"""" . ( "]" ) a h:SequenceTail; h:seqlabel """"]"""" . ( "^" :verb :pathtail ) a h:Sequence, h:SequenceTail; h:seqlabel """"^" verb pathtail""" . ( "alphanumeric" 0 ) log:outputString """
alphanumeric
""" . ( "alphanumeric" 6 ) log:outputString """

[a-zA-Z][a-zA-Z0-9_]*

""" . ( "alphanumeric" 9 ) log:outputString "\t
\n" . ( "barename" 0 ) log:outputString """
barename
""" . ( "barename" 6 ) log:outputString """

[a-zA-Z_][a-zA-Z0-9_]*

""" . ( "barename" 9 ) log:outputString "\t
\n" . ( "barename_csl" 0 ) log:outputString """
barename_csl
""" . ( "barename_csl" 5 ) log:outputString """

"," barename barename_csl

""", """

"."

""" . ( "barename_csl" 9 ) log:outputString "\t
\n" . ( "declaration" 0 ) log:outputString """
declaration
""" . ( "declaration" 5 ) log:outputString """

"@base" explicituri "."

""", """

"@keywords" barename_csl

""", """

"@prefix" qname explicituri "."

""" . ( "declaration" 9 ) log:outputString "\t
\n" . ( "declaration_s" 0 ) log:outputString """
declaration_s
""" . ( "declaration_s" 5 ) log:outputString """

declaration declaration_s

""", """

void

""" . ( "declaration_s" 9 ) log:outputString "\t
\n" . ( "existential" 0 ) log:outputString """
existential
""" . ( "existential" 5 ) log:outputString """

"@forSome" symbol_csl

""" . ( "existential" 9 ) log:outputString "\t
\n" . ( "existential_s" 0 ) log:outputString """
existential_s
""" . ( "existential_s" 5 ) log:outputString """

existential existential_s

""", """

void

""" . ( "existential_s" 9 ) log:outputString "\t
\n" . ( "explicituri" 0 ) log:outputString """
explicituri
""" . ( "explicituri" 6 ) log:outputString """

<[^>].*>

""" . ( "explicituri" 9 ) log:outputString "\t
\n" . ( "langcode" 0 ) log:outputString """
langcode
""" . ( "langcode" 6 ) log:outputString """

[a-zA-Z0-9]+(-[a-zA-Z0-9]+)?

""" . ( "langcode" 9 ) log:outputString "\t
\n" . ( "n3-rdfDocument" 0 ) log:outputString """
n3-rdfDocument
""" . ( "n3-rdfDocument" 5 ) log:outputString """

declaration_s existential_s statements_optional EOF

""" . ( "n3-rdfDocument" 9 ) log:outputString "\t
\n" . ( "node_object" 0 ) log:outputString """
node_object
""" . ( "node_object" 5 ) log:outputString """

numericliteral

""", """

string

""", """

symbol

""", """

"[" propertylist "]"

""" . ( "node_object" 9 ) log:outputString "\t
\n" . ( "node_subject" 0 ) log:outputString """
node_subject
""" . ( "node_subject" 5 ) log:outputString """

symbol

""", """

"(" objectlist ")"

""", """

"[" propertylist "]"

""" . ( "node_subject" 9 ) log:outputString "\t
\n" . ( "numericliteral" 0 ) log:outputString """
numericliteral
""" . ( "numericliteral" 6 ) log:outputString """

[-+]?[0-9]+(\\.[0-9]+)?(e[-+]?[0-9]+)?

""" . ( "numericliteral" 9 ) log:outputString "\t
\n" . ( "object" 0 ) log:outputString """
object
""" . ( "object" 5 ) log:outputString """

node_object pathtail

""" . ( "object" 9 ) log:outputString "\t
\n" . ( "objectlist" 0 ) log:outputString """
objectlist
""" . ( "objectlist" 5 ) log:outputString """

object objectlist

""", """

void

""" . ( "objectlist" 9 ) log:outputString "\t
\n" . ( "objecttail" 0 ) log:outputString """
objecttail
""" . ( "objecttail" 5 ) log:outputString """

"," object objecttail

""", """

void

""" . ( "objecttail" 9 ) log:outputString "\t
\n" . ( "pathtail" 0 ) log:outputString """
pathtail
""" . ( "pathtail" 5 ) log:outputString """

"!" verb pathtail

""", """

"^" verb pathtail

""", """

void

""" . ( "pathtail" 9 ) log:outputString "\t
\n" . ( "prop" 0 ) log:outputString """
prop
""" . ( "prop" 9 ) log:outputString "\t
\n" . ( "propertylist" 0 ) log:outputString """
propertylist
""" . ( "propertylist" 5 ) log:outputString """

verb object objecttail propertylisttail

""", """

void

""" . ( "propertylist" 9 ) log:outputString "\t
\n" . ( "propertylisttail" 0 ) log:outputString """
propertylisttail
""" . ( "propertylisttail" 5 ) log:outputString """

";" propertylist

""", """

void

""" . ( "propertylisttail" 9 ) log:outputString "\t
\n" . ( "qname" 0 ) log:outputString """
qname
""" . ( "qname" 6 ) log:outputString """

(([a-zA-Z_][a-zA-Z0-9_]*)?:)?([a-zA-Z_][a-zA-Z0-9_]*)?

""" . ( "qname" 9 ) log:outputString "\t
\n" . ( "statement" 0 ) log:outputString """
statement
""" . ( "statement" 5 ) log:outputString """

subject propertylist

""" . ( "statement" 9 ) log:outputString "\t
\n" . ( "statementlist" 0 ) log:outputString """
statementlist
""" . ( "statementlist" 5 ) log:outputString """

statement statementtail

""", """

void

""" . ( "statementlist" 9 ) log:outputString "\t
\n" . ( "statements_optional" 0 ) log:outputString """
statements_optional
""" . ( "statements_optional" 5 ) log:outputString """

statement "." statements_optional

""", """

void

""" . ( "statements_optional" 9 ) log:outputString "\t
\n" . ( "statementtail" 0 ) log:outputString """
statementtail
""" . ( "statementtail" 5 ) log:outputString """

"." statementlist

""", """

void

""" . ( "statementtail" 9 ) log:outputString "\t
\n" . ( "string" 0 ) log:outputString """
string
""" . ( "string" 6 ) log:outputString """

(\"""[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*\""")|("[^"\\\\]*(?:\\\\.[^"\\\\]*)*")

""" . ( "string" 9 ) log:outputString "\t
\n" . ( "subject" 0 ) log:outputString """
subject
""" . ( "subject" 5 ) log:outputString """

node_subject "!" pathtail

""", """

numericliteral "^" verb pathtail

""", """

string "^" verb pathtail

""" . ( "subject" 9 ) log:outputString "\t
\n" . ( "symbol" 0 ) log:outputString """
symbol
""" . ( "symbol" 5 ) log:outputString """

explicituri

""", """

qname

""" . ( "symbol" 9 ) log:outputString "\t
\n" . ( "symbol_csl" 0 ) log:outputString """
symbol_csl
""" . ( "symbol_csl" 5 ) log:outputString """

"," symbol symbol_csl

""", """

"."

""" . ( "symbol_csl" 9 ) log:outputString "\t
\n" . ( "verb" 0 ) log:outputString """
verb
""" . ( "verb" 5 ) log:outputString """

prop

""", """

"="

""", """

"@a"

""", """

"@has" prop

""" . ( "verb" 9 ) log:outputString "\t
\n" . ( "~~" 9 ) log:outputString "\n
\n\n" . ( bnf:eof ) a h:SequenceTail; h:seqlabel "EOF" . ( :barename <#_g3> ) a h:SequenceTail; h:seqlabel "barename barename_csl" . ( :declaration <#_g0> ) a h:Sequence, h:SequenceTail; h:seqlabel "declaration declaration_s" . ( :existential <#_g1> ) a h:Sequence, h:SequenceTail; h:seqlabel "existential existential_s" . ( :explicituri "." ) a h:SequenceTail; h:seqlabel """explicituri "."""" . ( :explicituri ) a h:Sequence, h:SequenceTail; h:seqlabel "explicituri" . ( :itemlist ")" ) a h:SequenceTail . ( :node ) a h:Sequence, h:SequenceTail . ( :node_object :pathtail ) a h:Sequence, h:SequenceTail; h:seqlabel "node_object pathtail" . ( :node_subject "!" :pathtail ) a h:Sequence, h:SequenceTail; h:seqlabel """node_subject "!" pathtail""" . ( :numericliteral "^" :verb :pathtail ) a h:Sequence, h:SequenceTail; h:seqlabel """numericliteral "^" verb pathtail""" . ( :numericliteral ) a h:Sequence, h:SequenceTail; h:seqlabel "numericliteral" . ( :object :objectlist ) a h:Sequence, h:SequenceTail; h:seqlabel "object objectlist" . ( :object :objecttail :propertylisttail ) a h:SequenceTail; h:seqlabel "object objecttail propertylisttail" . ( :object :objecttail ) a h:SequenceTail; h:seqlabel "object objecttail" . ( :objectlist ")" ) a h:SequenceTail; h:seqlabel """objectlist ")"""" . ( :objectlist ) a h:SequenceTail; h:seqlabel "objectlist" . ( :objecttail :propertylisttail ) a h:SequenceTail; h:seqlabel "objecttail propertylisttail" . ( :objecttail ) a h:SequenceTail; h:seqlabel "objecttail" . ( :pathtail ) a h:SequenceTail; h:seqlabel "pathtail" . ( :prop ) a h:Sequence, h:SequenceTail; h:seqlabel "prop" . ( :propertylist "]" ) a h:SequenceTail; h:seqlabel """propertylist "]"""" . ( :propertylist ) a h:SequenceTail; h:seqlabel "propertylist" . ( :propertylisttail ) a h:SequenceTail; h:seqlabel "propertylisttail" . ( :qname :explicituri "." ) a h:SequenceTail; h:seqlabel """qname explicituri "."""" . ( :qname ) a h:Sequence, h:SequenceTail; h:seqlabel "qname" . ( :statement "." :statements_optional ) a h:Sequence, h:SequenceTail; h:seqlabel """statement "." statements_optional""" . ( :statement :statementtail ) a h:Sequence, h:SequenceTail; h:seqlabel "statement statementtail" . ( :statementlist ) a h:SequenceTail; h:seqlabel "statementlist" . ( :statements_optional bnf:eof ) a h:SequenceTail; h:seqlabel "statements_optional EOF" . ( :statements_optional ) a h:SequenceTail; h:seqlabel "statements_optional" . ( :statementtail ) a h:SequenceTail; h:seqlabel "statementtail" . ( :string "^" :verb :pathtail ) a h:Sequence, h:SequenceTail; h:seqlabel """string "^" verb pathtail""" . ( :string ) a h:Sequence, h:SequenceTail; h:seqlabel "string" . ( :subject :propertylist ) a h:Sequence, h:SequenceTail; h:seqlabel "subject propertylist" . ( :symbol <#_g2> ) a h:SequenceTail; h:seqlabel "symbol symbol_csl" . ( :symbol ) a h:Sequence, h:SequenceTail; h:seqlabel "symbol" . ( :verb :object :objecttail :propertylisttail ) a h:Sequence, h:SequenceTail; h:seqlabel "verb object objecttail propertylisttail" . ( :verb :pathtail ) a h:SequenceTail; h:seqlabel "verb pathtail" . ( <#_g0> <#_g1> :statements_optional bnf:eof ) a h:Sequence, h:SequenceTail; h:seqlabel "declaration_s existential_s statements_optional EOF" . ( <#_g0> ) a h:SequenceTail; h:seqlabel "declaration_s" . ( <#_g1> :statements_optional bnf:eof ) a h:SequenceTail; h:seqlabel "existential_s statements_optional EOF" . ( <#_g1> ) a h:SequenceTail; h:seqlabel "existential_s" . ( <#_g2> ) a h:SequenceTail; h:seqlabel "symbol_csl" . ( <#_g3> ) a h:SequenceTail; h:seqlabel "barename_csl" . bnf:syntaxFor [ bnf:internetMediaType ] . bnf:eof h:reference "EOF" . :alphanumeric a h:Production; bnf:canStartWith "a"; bnf:label "alphanumeric"; bnf:matches "[a-zA-Z][a-zA-Z0-9_]*"; h:reference "alphanumeric" . :barename a h:Production; bnf:canStartWith "_", "a"; bnf:label "barename"; bnf:matches "[a-zA-Z_][a-zA-Z0-9_]*"; h:reference "barename" . :declaration a h:Production; bnf:canBeSequence ( "@base" :explicituri "." ), ( "@keywords" <#_g3> ), ( "@prefix" :qname :explicituri "." ); bnf:label "declaration"; bnf:mustBeOneSequence ( ( "@base" :explicituri "." ) ( "@prefix" :qname :explicituri "." ) ( "@keywords" <#_g3> ) ); h:optionTail (), ( ( "@base" :explicituri "." ) ( "@prefix" :qname :explicituri "." ) ( "@keywords" <#_g3> ) ), ( ( "@keywords" <#_g3> ) ), ( ( "@prefix" :qname :explicituri "." ) ( "@keywords" <#_g3> ) ); h:reference "declaration" . :e a h:Sequence, h:SequenceTail . :existential a h:Production; bnf:canBeSequence ( "@forSome" <#_g2> ); bnf:label "existential"; bnf:mustBeOneSequence ( ( "@forSome" <#_g2> ) ); h:optionTail (), ( ( "@forSome" <#_g2> ) ); h:reference "existential" . :explicituri a h:Production; bnf:canStartWith "<"; bnf:label "explicituri"; bnf:matches "<[^>].*>"; h:reference "explicituri" . :langcode a h:Production; bnf:canStartWith "a"; bnf:label "langcode"; bnf:matches "[a-zA-Z0-9]+(-[a-zA-Z0-9]+)?"; h:reference "langcode" . :n3-rdfDocument a h:Production; bnf:canBeSequence ( <#_g0> <#_g1> :statements_optional bnf:eof ); bnf:label "n3-rdfDocument"; bnf:mustBeOneSequence ( ( <#_g0> <#_g1> :statements_optional bnf:eof ) ); h:optionTail (), ( ( <#_g0> <#_g1> :statements_optional bnf:eof ) ); h:reference "n3-rdfDocument" . :node_object a h:Production; bnf:canBeSequence ( "(" :itemlist ")" ), ( "[" :propertylist "]" ), ( :numericliteral ), ( :string ), ( :symbol ); bnf:label "node_object"; bnf:mustBeOneSequence ( ( :symbol ) ( :numericliteral ) ( :string ) ( "[" :propertylist "]" ) ( "(" :itemlist ")" ) ); h:optionTail (), ( ( "(" :itemlist ")" ) ), ( ( "[" :propertylist "]" ) ( "(" :itemlist ")" ) ), ( ( :numericliteral ) ( :string ) ( "[" :propertylist "]" ) ( "(" :itemlist ")" ) ), ( ( :string ) ( "[" :propertylist "]" ) ( "(" :itemlist ")" ) ), ( ( :symbol ) ( :numericliteral ) ( :string ) ( "[" :propertylist "]" ) ( "(" :itemlist ")" ) ); h:reference "node_object" . :node_subject a h:Production; bnf:canBeSequence ( "(" :objectlist ")" ), ( "[" :propertylist "]" ), ( :symbol ); bnf:label "node_subject"; bnf:mustBeOneSequence ( ( :symbol ) ( "[" :propertylist "]" ) ( "(" :objectlist ")" ) ); h:optionTail (), ( ( "(" :objectlist ")" ) ), ( ( "[" :propertylist "]" ) ( "(" :objectlist ")" ) ), ( ( :symbol ) ( "[" :propertylist "]" ) ( "(" :objectlist ")" ) ); h:reference "node_subject" . :numericliteral a h:Production; bnf:canStartWith "+", "-", "0"; bnf:label "numericliteral"; bnf:matches "[-+]?[0-9]+(\\.[0-9]+)?(e[-+]?[0-9]+)?"; h:reference "numericliteral" . :object a h:Production; bnf:canBeSequence ( :node_object :pathtail ); bnf:label "object"; bnf:mustBeOneSequence ( ( :node_object :pathtail ) ); h:optionTail (), ( ( :node_object :pathtail ) ); h:reference "object" . :objectlist a h:Production; bnf:canBeSequence (), ( :object :objectlist ); bnf:label "objectlist"; bnf:mustBeOneSequence ( () ( :object :objectlist ) ); h:optionTail (), ( () ( :object :objectlist ) ), ( ( :object :objectlist ) ); h:reference "objectlist" . :objecttail a h:Production; bnf:canBeSequence (), ( "," :object :objecttail ); bnf:label "objecttail"; bnf:mustBeOneSequence ( () ( "," :object :objecttail ) ); h:optionTail (), ( () ( "," :object :objecttail ) ), ( ( "," :object :objecttail ) ); h:reference "objecttail" . :pathtail a h:Production; bnf:canBeSequence (), ( "!" :verb :pathtail ), ( "^" :verb :pathtail ); bnf:label "pathtail"; bnf:mustBeOneSequence ( () ( "!" :verb :pathtail ) ( "^" :verb :pathtail ) ); h:optionTail (), ( () ( "!" :verb :pathtail ) ( "^" :verb :pathtail ) ), ( ( "!" :verb :pathtail ) ( "^" :verb :pathtail ) ), ( ( "^" :verb :pathtail ) ); h:reference "pathtail" . :prop a h:Production; bnf:canBeSequence ( :node ); bnf:label "prop"; bnf:mustBeOneSequence ( ( :node ) ); h:optionTail (), ( ( :node ) ); h:reference "prop" . :propertylist a h:Production; bnf:canBeSequence (), ( :verb :object :objecttail :propertylisttail ); bnf:label "propertylist"; bnf:mustBeOneSequence ( () ( :verb :object :objecttail :propertylisttail ) ); h:optionTail (), ( () ( :verb :object :objecttail :propertylisttail ) ), ( ( :verb :object :objecttail :propertylisttail ) ); h:reference "propertylist" . :propertylisttail a h:Production; bnf:canBeSequence (), ( ";" :propertylist ); bnf:label "propertylisttail"; bnf:mustBeOneSequence ( () ( ";" :propertylist ) ); h:optionTail (), ( () ( ";" :propertylist ) ), ( ( ";" :propertylist ) ); h:reference "propertylisttail" . :qname a h:Production; bnf:canStartWith "_", "a"; bnf:label "qname"; bnf:matches "(([a-zA-Z_][a-zA-Z0-9_]*)?:)?([a-zA-Z_][a-zA-Z0-9_]*)?"; h:reference "qname" . :statement a h:Production; bnf:canBeSequence ( :subject :propertylist ); bnf:label "statement"; bnf:mustBeOneSequence ( ( :subject :propertylist ) ); h:optionTail (), ( ( :subject :propertylist ) ); h:reference "statement" . :statementlist a h:Production; bnf:canBeSequence (), ( :statement :statementtail ); bnf:label "statementlist"; bnf:mustBeOneSequence ( () ( :statement :statementtail ) ); h:optionTail (), ( () ( :statement :statementtail ) ), ( ( :statement :statementtail ) ); h:reference "statementlist" . :statements_optional a h:Production; bnf:canBeSequence (), ( :statement "." :statements_optional ), :e; bnf:label "statements_optional"; bnf:mustBeOneSequence ( () ( :statement "." :statements_optional ) :e ); h:optionTail (), ( () ( :statement "." :statements_optional ) :e ), ( ( :statement "." :statements_optional ) :e ), ( :e ); h:reference "statements_optional" . :statementtail a h:Production; bnf:canBeSequence (), ( "." :statementlist ); bnf:label "statementtail"; bnf:mustBeOneSequence ( () ( "." :statementlist ) ); h:optionTail (), ( () ( "." :statementlist ) ), ( ( "." :statementlist ) ); h:reference "statementtail" . :string a h:Production; bnf:canStartWith "\""; bnf:label "string"; bnf:matches """(\"""[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*\""")|("[^"\\\\]*(?:\\\\.[^"\\\\]*)*")"""; h:reference "string" . :subject a h:Production; bnf:canBeSequence ( :node_subject "!" :pathtail ), ( :numericliteral "^" :verb :pathtail ), ( :string "^" :verb :pathtail ); bnf:label "subject"; bnf:mustBeOneSequence ( ( :node_subject "!" :pathtail ) ( :string "^" :verb :pathtail ) ( :numericliteral "^" :verb :pathtail ) ); h:optionTail (), ( ( :node_subject "!" :pathtail ) ( :string "^" :verb :pathtail ) ( :numericliteral "^" :verb :pathtail ) ), ( ( :numericliteral "^" :verb :pathtail ) ), ( ( :string "^" :verb :pathtail ) ( :numericliteral "^" :verb :pathtail ) ); h:reference "subject" . :symbol a h:Production; bnf:canBeSequence ( :explicituri ), ( :qname ); bnf:label "symbol"; bnf:mustBeOneSequence ( ( :explicituri ) ( :qname ) ); h:optionTail (), ( ( :explicituri ) ( :qname ) ), ( ( :qname ) ); h:reference "symbol" . :verb a h:Production; bnf:canBeSequence ( "=" ), ( "@a" ), ( "@has" :prop ), ( :prop ); bnf:label "verb"; bnf:mustBeOneSequence ( ( :prop ) ( "@has" :prop ) ( "@a" ) ( "=" ) ); h:optionTail (), ( ( "=" ) ), ( ( "@a" ) ( "=" ) ), ( ( "@has" :prop ) ( "@a" ) ( "=" ) ), ( ( :prop ) ( "@has" :prop ) ( "@a" ) ( "=" ) ); h:reference "verb" . <#_g0> a h:Production; bnf:canBeSequence (), ( :declaration <#_g0> ); bnf:label "declaration_s"; bnf:mustBeOneSequence ( () ( :declaration <#_g0> ) ); bnf:zeroOrMore :declaration; h:optionTail (), ( () ( :declaration <#_g0> ) ), ( ( :declaration <#_g0> ) ); h:reference "declaration_s" . <#_g1> a h:Production; bnf:canBeSequence (), ( :existential <#_g1> ); bnf:label "existential_s"; bnf:mustBeOneSequence ( () ( :existential <#_g1> ) ); bnf:zeroOrMore :existential; h:optionTail (), ( () ( :existential <#_g1> ) ), ( ( :existential <#_g1> ) ); h:reference "existential_s" . <#_g2> a h:Production; bnf:canBeSequence ( "," :symbol <#_g2> ), ( "." ); bnf:commaSeparatedPeriodTerminatedListOf :symbol; bnf:label "symbol_csl"; bnf:mustBeOneSequence ( ( "." ) ( "," :symbol <#_g2> ) ); h:optionTail (), ( ( "," :symbol <#_g2> ) ), ( ( "." ) ( "," :symbol <#_g2> ) ); h:reference "symbol_csl" . <#_g3> a h:Production; bnf:canBeSequence ( "," :barename <#_g3> ), ( "." ); bnf:commaSeparatedPeriodTerminatedListOf :barename; bnf:label "barename_csl"; bnf:mustBeOneSequence ( ( "." ) ( "," :barename <#_g3> ) ); h:optionTail (), ( ( "," :barename <#_g3> ) ), ( ( "." ) ( "," :barename <#_g3> ) ); h:reference "barename_csl" . #ENDS