scc-0.3: grammar.bnf
Expression ::=
Step {";" Step}
| Step {"&" Step}.
Step ::=
Term {"|" Term}.
Term ::=
PrefixTerm
[ {"&&" PrefixTerm}
| {"||" PrefixTerm}
| {">&" PrefixTerm}
| {">|" PrefixTerm}
| {">," PrefixTerm}
| "having" PrefixTerm
| "having-only" PrefixTerm
| "XML.having-text" PrefixTerm
| "XML.having-only-text" PrefixTerm
| "..." PrefixTerm].
PrefixTerm ::=
Primary
| "XML.element-having-tag" PrefixTerm
| "first" PrefixTerm
| "last" PrefixTerm
| "prefix" PrefixTerm
| "suffix" PrefixTerm
| "start-of" PrefixTerm
| "end-of" PrefixTerm
| "prepend" PrefixTerm
| "append" PrefixTerm
| "substitute" PrefixTerm
| "select" PrefixTerm
| ">!" PrefixTerm.
Primary ::=
"(" Expression ")"
| ">" File
| ">>" File
| "cat" Parameters
| "concatenate"
| "count"
| "digits"
| "echo" Parameters
| "error" [String]
| "execute"
| "everything"
| "exit"
| "foreach" Expression "then" Expression ["else" Expression] "end" ["foreach"].
| "group"
| "id"
| "if" Expression "then" Expression ["else" Expression] "end" ["if"]
| "letters"
| "line"
| "ls" Parameters
| "marked"
| "nested" Expression "in" Expression "end" ["nested"]
| "nothing"
| "stdin"
| "substring" String
| "suppress"
| "unparse"
| "uppercase"
| "while" Expression "do" Expression "end" ["while"]
| "whitespace"
| "XML.parse"
| "XML.element"
| "XML.attribute"
| "XML.attribute-name"
| "XML.attribute-value"
| "XML.element-content"
| "XML.element-name"
| "{" [String {"," String}] "}"
| NativeCommand.