
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: automata/petri/pnml/standard/strings/extracted
Source used for this grammar: Lom Hillah, RELAX NG implementation of Strings grammar, strings.rng, July 2008 [Download]
BuiltInSort, BuiltInOperator, BuiltInConstant, String, StringConstant.content, StringConstant, StringOperator.content, StringOperator, StringLessThan, StringLessThanOrEqual, StringGreaterThan, StringGreaterThanOrEqual, StringConcatenation, StringLength, StringAppend, Substring), 0 root (—), 3 top (BuiltInSort, BuiltInOperator, BuiltInConstant), 2 bottom (BuiltInOperator.content, BuiltInConstant.content).[string], [value], [stringconstant], [lts], [leqs], [gts], [geqs], [stringconcatenation], [stringlength], [stringappend], [start], [length], [substring].BuiltInSort ::= String
BuiltInOperator ::= StringOperator
BuiltInConstant ::= StringConstant
String ::= [string]::ε
StringConstant.content ::= [value]::string
StringConstant ::= [stringconstant]::StringConstant.content BuiltInConstant.content
StringOperator.content ::= BuiltInOperator.content
StringOperator ::= StringLessThan StringLessThanOrEqual StringGreaterThan StringGreaterThanOrEqual StringConcatenation StringAppend StringLength Substring
StringLessThan ::= [lts]::StringOperator.content
StringLessThanOrEqual ::= [leqs]::StringOperator.content
StringGreaterThan ::= [gts]::StringOperator.content
StringGreaterThanOrEqual ::= [geqs]::StringOperator.content
StringConcatenation ::= [stringconcatenation]::StringOperator.content
StringLength ::= [stringlength]::StringOperator.content
StringAppend ::= [stringappend]::StringOperator.content
Substring ::= [substring]::[start]::integer [length]::integer StringOperator.content