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