]> git.lizzy.rs Git - metalua.git/blobdiff - junk/dynamatch.mlua
Merge branch 'master' of ssh://git.eclipse.org/gitroot/koneki/org.eclipse.koneki...
[metalua.git] / junk / dynamatch.mlua
diff --git a/junk/dynamatch.mlua b/junk/dynamatch.mlua
deleted file mode 100644 (file)
index 611ce24..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---x = dynamatch()
---x <| foo | bar -> do toto end
---table.insert(x.cases, |$| match $ with foo|bar -> toto end    )
-
-
-local match_builder = mlp.stat:get "match"
-
-function dynacase_builder (d, s)
-   local  v = mlp.gensym()
-   local  m = match_builder{ v, false, { s[1], s[2], s[3] } }
-   local  c = `Function{ {v}, {m} }
-   return `Call{ `Index{ d, "extend" }, c }
-end
-
---fixme: limiter la precedence du expr de droite
-mlp.expr.suffix:add{ 
-   name = "dynamatch extension", prec=30, 
-   "<|",  
-   gg.list{ name = "patterns",
-      primary = mlp.expr,
-      separators = "|",
-      terminators = { "->", "if" } },
-   gg.onkeyword{ "if", mlp.expr },
-   "->",
-   gg.multisequence{
-      { "do", mlp.block, "end", builder = |x| x[1] },
-      default = { mlp.expr, builder = |x| { `Return{ x[1] } } } },
-   builder = |x| dyna_builder (x[1], x[3]) }
-