diff options
Diffstat (limited to 'relabel.lua')
-rw-r--r-- | relabel.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/relabel.lua b/relabel.lua index 7055eaa..e3b7d48 100644 --- a/relabel.lua +++ b/relabel.lua | |||
@@ -188,9 +188,14 @@ end | |||
188 | 188 | ||
189 | local exp = m.P{ "Exp", | 189 | local exp = m.P{ "Exp", |
190 | Exp = S * ( m.V"Grammar" | 190 | Exp = S * ( m.V"Grammar" |
191 | + (m.V"Seq" * ("/" * (m.V"Labels" + m.Cc(nil)) * S | 191 | + (m.V"SeqLC" * ("/" * (m.V"Labels" + m.Cc(nil)) * S |
192 | * m.Lc(m.V"Seq" + throw(4), (-m.P"/" * any)^0, 4, 5, 6, 7, 8, 9, 10))^0) / labchoice ); | 192 | * m.Lc(m.V"SeqLC" + throw(4), m.V"SkipToSlash", 4))^0) / labchoice ); |
193 | Labels = m.Ct(m.P"{" * S * (m.V"Label" + throw(27)) * (S * "," * S * (m.V"Label" + throw(28)))^0 * S * ("}" + throw(29))); | 193 | Labels = m.Ct(m.P"{" * S * (m.V"Label" + throw(27)) * (S * "," * S * (m.V"Label" + throw(28)))^0 * S * ("}" + throw(29))); |
194 | SkipToSlash = (-m.P"/" * m.V"Stuff")^0 * m.Cc(mm.P""); | ||
195 | Stuff = m.V"GroupedStuff" + any; | ||
196 | GroupedStuff = "(" * (-m.P")" * m.V"Stuff")^0 * ")" | ||
197 | + "{" * (-m.P"}" * m.V"Stuff")^0 * "}"; | ||
198 | SeqLC = m.Lc(m.V"Seq", m.V"SkipToSlash", 5, 6, 7, 8, 9, 10); | ||
194 | Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix"^1 , mt.__mul); | 199 | Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix"^1 , mt.__mul); |
195 | Prefix = "&" * S * (m.V"Prefix" + throw(5)) / mt.__len | 200 | Prefix = "&" * S * (m.V"Prefix" + throw(5)) / mt.__len |
196 | + "!" * S * (m.V"Prefix" + throw(6)) / mt.__unm | 201 | + "!" * S * (m.V"Prefix" + throw(6)) / mt.__unm |