diff options
Diffstat (limited to 'src/bnf.bnf')
-rw-r--r-- | src/bnf.bnf | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/bnf.bnf b/src/bnf.bnf index 26e9861..df8ef3c 100644 --- a/src/bnf.bnf +++ b/src/bnf.bnf @@ -13,7 +13,7 @@ BNF: rules_section BNF: spaces: space spaces -spaces: +spaces: space space: " " space: "\t" @@ -27,7 +27,7 @@ empty: notnewlines: [notnewline] notnewlines notnewlines: -predicate_section: predicate empty "\n" empty predicate_section +predicate_section: predicate empty "\n" predicate_section predicate_section: predicate: "[" ids "]:" spaces class @@ -44,19 +44,23 @@ class: "^" positive_class positive_class: positive_specification positive_class positive_class: -positive_specification: notnewline -positive_specification: notnewline "-" notnewline +positive_specification: enotnewline +positive_specification: enotnewline "-" enotnewline -notnewline: [notnewline] -notnewline: "\\" [any] -notnewline: +# Extended not-newline, or escaped not-newline +enotnewline: [notnewline] +enotnewline: "\\" [any] -rules_section: rule empty "\n" empty rules_section +rules_section: rule empty "\n" rules_section rule: rule_name ":" spaces rule_rhs +rule: rule_name ":" rule_rhs rule_name: [notbracket] rule_name rule_name: -rule_rhs: ids spaces rule_rhs +spaces-or-escaped-newline: spaces +spaces-or-escaped-newline: "\\\n" + +rule_rhs: ids spaces-or-escaped-newline rule_rhs rule_rhs: |