aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUndecidable Robot <undecidabot@gmail.com>2016-05-16 19:53:22 +0800
committerUndecidable Robot <undecidabot@gmail.com>2016-05-16 19:53:53 +0800
commit025e0c375de5fca0b220d66d3e1f59837a020137 (patch)
tree03b5a32c569f23e0a442b06a7ea28fcd5f370cb7
parentf3dcbf4b2ea2848a5fc0748141e53da984863e05 (diff)
downloadlpeglabel-025e0c375de5fca0b220d66d3e1f59837a020137.tar.gz
lpeglabel-025e0c375de5fca0b220d66d3e1f59837a020137.tar.bz2
lpeglabel-025e0c375de5fca0b220d66d3e1f59837a020137.zip
Unifying ordered choice and labeled choice
-rw-r--r--relabel.lua5
1 files changed, 2 insertions, 3 deletions
diff --git a/relabel.lua b/relabel.lua
index f6bf080..ed3a6ed 100644
--- a/relabel.lua
+++ b/relabel.lua
@@ -186,11 +186,10 @@ local function labchoice (...)
186 return p 186 return p
187end 187end
188 188
189
190local exp = m.P{ "Exp", 189local exp = m.P{ "Exp",
191 Exp = S * ( m.V"Grammar" 190 Exp = S * ( m.V"Grammar"
192 + (m.V"Seq") * ("/" * m.V"Labels" * S * (m.V"Seq" + throw(3)))^1 / labchoice 191 + (m.V"Seq" * ("/" * (m.V"Labels" + m.Cc({0})) * S
193 + m.Cf(m.V"Seq" * ("/" * S * m.Lc(m.V"Seq" + throw(4), (-m.P"/" * any)^0, 4, 5, 6, 7, 8, 9, 10))^0, mt.__add) ); 192 * m.Lc(m.V"Seq" + throw(4), (-m.P"/" * any)^0, 4, 5, 6, 7, 8, 9, 10))^0) / labchoice );
194 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)));
195 Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix"^1 , mt.__mul); 194 Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix"^1 , mt.__mul);
196 Prefix = "&" * S * (m.V"Prefix" + throw(5)) / mt.__len 195 Prefix = "&" * S * (m.V"Prefix" + throw(5)) / mt.__len