summaryrefslogtreecommitdiff
path: root/src/bnf.bnf
diff options
context:
space:
mode:
Diffstat (limited to 'src/bnf.bnf')
-rw-r--r--src/bnf.bnf22
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: