bug fix and refactoring in the cc command

This commit is contained in:
krangelov
2021-12-16 13:14:29 +01:00
parent 8466692584
commit 4ed287a809
12 changed files with 132 additions and 103 deletions

View File

@@ -0,0 +1,3 @@
i -retain prelude/Predef.gfo
cc <\x,x -> x : Str -> Str -> Str>
cc <\x -> (<\y,x->y : Str -> Str -> Str>) x : Str -> Str -> Str>

View File

@@ -0,0 +1,2 @@
\x,x_1 -> x_1
\x,x_1 -> x

View File

@@ -14,4 +14,4 @@ cc case <Q1,Q2> of {<Q1,Q1> => "11"; <Q1,Q2> => "12"; _ => "??"}
cc case <Q2,Q2> of {<Q1,Q1> => "11"; <Q1,Q2> => "12"; _ => "??"}
cc <\x -> case x of {Q1 => "q1"; Q2 => "q2"} : Q -> Str>
cc <\x -> case P2 x of {P1 => "p1"; P2 q => "p2"} : Q -> Str>
cc <\x -> case P2 x of {P1 => "p1"; P2 q => case q of {Q1 => "q1"; Q2 => "q2"}} : Q -> Str>
cc <\x -> case P2 x of {P1 => "p1"; P2 q => case q of {Q1 => "q"+"1"; Q2 => "q"+"2"}} : Q -> Str>

View File

@@ -11,12 +11,12 @@ variants {"p2q1"; "p2q2"}
"p2q1"
"12"
"??"
\v0 -> case <v0 : param_table.Q> of {
param_table.Q1 => "q1";
param_table.Q2 => "q2"
}
\v0 -> "p2"
\v0 -> case <v0 : param_table.Q> of {
param_table.Q1 => "q1";
param_table.Q2 => "q2"
}
\x -> case <x : param_table.Q> of {
param_table.Q1 => "q1";
param_table.Q2 => "q2"
}
\x -> "p2"
\x -> case <x : param_table.Q> of {
param_table.Q1 => "q1";
param_table.Q2 => "q2"
}

View File

@@ -1,11 +1,11 @@
4
5
Predef.length Predef.nonExist
\v0 -> Predef.length v0
\x -> Predef.length x
"ab"
"cd"
"d"
"abc"
"d"
"ABCD"
"abcd"
Predef.PFalse
@@ -32,5 +32,5 @@ user error
"x" ++ Predef.CAPIT ++ "y"
"x" ++ Predef.ALL_CAPIT ++ "y"
"ab"
\v0 -> v0 + "b"
\x -> x + "b"
Predef.PTrue

View File

@@ -1,9 +1,9 @@
"hello"
"x"
"y"
\v0 -> v0.x
\r -> r.x
{x = "x"; y = "y"; z = "z"}
{x = "x"; y = "y'"}
\v0 -> {y = "y'"}
\v0 -> {x = v0.x; y = "y'"}
\v0 -> {b = "b"}
\r -> {y = "y'"}
\r -> {x = r.x; y = "y'"}
\r -> {b = "b"}

View File

@@ -25,8 +25,8 @@ param_table.Q2
"xy"
param_table.Q1
param_table.Q2
\v0 -> case <v0 : Str> of {
"q1" => param_table.Q1;
_ => param_table.Q2
}
\x -> case <x : Str> of {
"q1" => param_table.Q1;
_ => param_table.Q2
}
pre {"в"; "във" / strs {"в"; "ф"}}