forked from GitHub/gf-core
finished the partial evaluator
This commit is contained in:
@@ -4,6 +4,9 @@ cc table {P1 => "p1"; P2 _ => "p2"} ! P1
|
||||
cc table {P1 => "p1"; P2 _ => "p2"} ! P2 Q1
|
||||
cc table {P1 => "p1"; P2 _ => "p2"} ! P2 (Q1|Q2)
|
||||
cc table {P1 => "p1"; P2 q => "p2"} ! P2 (Q1|Q2)
|
||||
cc table P ["p1"; "p2q1"; "p2q2"] ! P1
|
||||
cc table P ["p1"; "p2q1"; "p2q2"] ! P2 Q1
|
||||
cc table P ["p1"; "p2q1"; "p2q2"] ! P2 Q2
|
||||
cc table {P1 => "p1"; P2 Q1 => "p2q1"; P2 Q2 => "p2q2"} ! P2 (Q1|Q2)
|
||||
cc table {P1 => "p1"; P2 Q1 => "p2q1"; P2 Q2 => "p2q2"} ! P2 Q1
|
||||
cc table {P1 => "p1"; P2 q => case q of {Q1 => "p2q1"; Q2 => "p2q2"}} ! P2 Q1
|
||||
|
||||
@@ -3,6 +3,9 @@ param_table.P2 param_table.Q1
|
||||
"p2"
|
||||
"p2"
|
||||
"p2"
|
||||
"p1"
|
||||
"p2q1"
|
||||
"p2q2"
|
||||
variants {"p2q1"; "p2q2"}
|
||||
"p2q1"
|
||||
"p2q1"
|
||||
|
||||
@@ -3,3 +3,8 @@ cc hello
|
||||
cc {x="x"; y="y"}.x
|
||||
cc {x="x"; y="y"}.y
|
||||
cc <\r -> r.x : {x:Str; y:Str} -> Str>
|
||||
cc <{x="x"; y="y"} ** {z="z"} : {x,y,z:Str}>
|
||||
cc <{x="x"; y="y"} ** {y="y'"} : {x,y:Str}>
|
||||
cc <\r -> r ** {y="y'"} : {x,y:Str} -> {y:Str}>
|
||||
cc <\r -> r ** {y="y'"} : {x,y:Str} -> {x,y:Str}>
|
||||
cc <\r -> f r ** {b="b"} : {b:Str} -> {b:Str}>
|
||||
|
||||
@@ -2,3 +2,8 @@
|
||||
"x"
|
||||
"y"
|
||||
\v0 -> v0.x
|
||||
{x = "x"; y = "y"; z = "z"}
|
||||
{x = "x"; y = "y'"}
|
||||
\v0 -> {y = "y'"}
|
||||
\v0 -> {x = v0.x; y = "y'"}
|
||||
\v0 -> {b = "b"}
|
||||
|
||||
@@ -27,3 +27,4 @@ cc <case "xyababbbab" of {x + #ab_patt* => x; _ => "?"} : Str>
|
||||
cc test "abcd"
|
||||
cc test "xyz"
|
||||
cc <\x -> case x of {"q1" => Q1; _ => Q2} : Str -> Q>
|
||||
cc pre {"в"|"ф"=>"във"; _=>"в"}
|
||||
|
||||
@@ -29,3 +29,4 @@ param_table.Q2
|
||||
"q1" => param_table.Q1;
|
||||
_ => param_table.Q2
|
||||
}
|
||||
pre {"в"; "във" / strs {"в"; "ф"}}
|
||||
|
||||
Reference in New Issue
Block a user