projects
/
sbp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
formatting
[sbp.git]
/
tests
/
regression.tc
diff --git
a/tests/regression.tc
b/tests/regression.tc
index
394847f
..
af600f3
100644
(file)
--- a/
tests/regression.tc
+++ b/
tests/regression.tc
@@
-2,8
+2,8
@@
// input "x";
// output "a1:{x}";
//
// input "x";
// output "a1:{x}";
//
-// s = a => a1
-// a = s => s1
+// s = a1:: a
+// a = s1:: s
// a = ^"x"
//}
//
// a = ^"x"
//}
//
@@
-14,9
+14,9
@@
// output "s2:{s0 x}";
//
//
// output "s2:{s0 x}";
//
//
-// s = s s => s2
+// s = s2:: s s
// s = ^"x"
// s = ^"x"
-// s = () => s0
+// s = s0:: ()
//}
testcase {
//}
testcase {
@@
-24,8
+24,8
@@
testcase {
output "1:{{a b} {c}}";
s = ids
output "1:{{a b} {c}}";
s = ids
- ids = id (" " ids &~ id ~[]*) => "1"
- | id ( ids &~ id ~[]*) => "2"
+ ids = "1":: id (" " ids &~ id ~[]*)
+ | "2":: id ( ids &~ id ~[]*)
| id
id = [a-z]++
}
| id
id = [a-z]++
}
@@
-37,8
+37,8
@@
testcase {
output "1:{{a b} {c}}";
s = ids
output "1:{{a b} {c}}";
s = ids
- ids = id " " ids => "1"
- | id ids => "2"
+ ids = "1":: id " " ids
+ | "2":: id ids
| id
id = [a-z]+
}
| id
id = [a-z]+
}
@@
-48,8
+48,8
@@
testcase {
output "ab";
s = ab & dc
output "ab";
s = ab & dc
- ab = a b => ab
- dc = d c => dc
+ ab = ab:: a b
+ dc = dc:: d c
a = "a" a | ()
b = "b" b "c" | ()
c = "c" c | ()
a = "a" a | ()
b = "b" b "c" | ()
c = "c" c | ()
@@
-60,8
+60,8
@@
testcase {
input "aaabbbbccc";
s = ab & dc
input "aaabbbbccc";
s = ab & dc
- ab = a b => ab
- dc = d c => dc
+ ab = ab:: a b
+ dc = dc:: d c
a = "a" a | ()
b = "b" b "c" | ()
c = "c" c | ()
a = "a" a | ()
b = "b" b "c" | ()
c = "c" c | ()
@@
-73,8
+73,8
@@
testcase {
output "xbx:{{a} abab:{a b} {b}}";
x = ~[]
output "xbx:{{a} abab:{a b} {b}}";
x = ~[]
- s = x* b x* => xbx
- b = [ab][ab] => abab
+ s = xbx:: x* b x*
+ b = abab:: [ab][ab]
&~ ( "aa" | "bb" )
}
&~ ( "aa" | "bb" )
}
@@
-84,9
+84,9
@@
testcase {
//output "a:{{2 1 2 1}}";
//output "c:{{c:{1 1} c:{1 1}}}";
//output "a:{{2 1 2 1}}";
//output "c:{{c:{1 1} c:{1 1}}}";
- s = ab => "ab"
- | ac => "ac"
- | bc => "bc"
+ s = ab:: ab
+ | ac:: ac
+ | bc:: bc
//| a => "a"
//| b => "b"
//| c => "c"
//| a => "a"
//| b => "b"
//| c => "c"
@@
-94,8
+94,8
@@
testcase {
ac = a & c
bc = b & c
a = ("1" x)*
ac = a & c
bc = b & c
a = ("1" x)*
- b = (x "2" => "b")*
- c = (x "2" x "1" => "c")*
+ b = ("b":: x "2")*
+ c = ("c":: x "2" x "1")*
x = [123]
}
x = [123]
}
@@
-106,19
+106,19
@@
testcase {
s = "q" z
z = a z ^"bam"
z = ^"x"
s = "q" z
z = a z ^"bam"
z = ^"x"
- a = () => "a"
+ a = a:: ()
}
testcase {
input "baaaa";
output "s2:{b0 a:{a:{epsilon}}}";
output "b:{a:{a:{epsilon}} epsilon}";
}
testcase {
input "baaaa";
output "s2:{b0 a:{a:{epsilon}}}";
output "b:{a:{a:{epsilon}} epsilon}";
- s = b t => "s2"
+ s = s2:: b t
| ^"b" t b
t = ^"a" t "a"
| ^"b" t b
t = ^"a" t "a"
- | () => "epsilon"
- b = "b" => "b0"
- | () => "epsilon"
+ | epsilon:: ()
+ b = b0:: "b"
+ | epsilon:: ()
}
testcase {
}
testcase {
@@
-127,18
+127,18
@@
testcase {
s = ^"q" x "q"
x = ^"a" a
s = ^"q" x "q"
x = ^"a" a
- x = () => "epsilon"
- a = x => "s1"
+ x = epsilon:: ()
+ a = s1:: x
}
testcase {
input "baa";
output "s1:{a2:{a2:{a0 b0} b0}}";
}
testcase {
input "baa";
output "s1:{a2:{a2:{a0 b0} b0}}";
- s = "b" a => "s1"
- a = "a" a b => "a2"
- | () => "a0"
- b = () => "b0"
+ s = s1:: "b" a
+ a = a2:: "a" a b
+ | a0:: ()
+ b = b0:: ()
}
testcase {
}
testcase {
@@
-155,38
+155,38
@@
testcase {
output "s3:{epsilon a0 epsilon a0}";
output "s3:{epsilon a0 a0 epsilon}";
output "s3:{epsilon a0 epsilon a0}";
output "s3:{epsilon a0 a0 epsilon}";
- s = "a" s a a a => "s3"
- | () => "epsilon"
- a = "a" => "a0"
- | () => "epsilon"
+ s = s3:: "a" s a a a
+ | epsilon:: ()
+ a = a0:: "a"
+ | epsilon:: ()
}
testcase {
input "aa";
output "poo:{poo:{poox poox} poox}";
output "poo:{poox poo:{poox poox}}";
}
testcase {
input "aa";
output "poo:{poo:{poox poox} poox}";
output "poo:{poox poo:{poox poox}}";
- s = s s "a" => "poo"
- | () => "poox"
+ s = poo:: s s "a"
+ | poox:: ()
}
testcase {
input "baa";
output "s:{aa:{aa:{a b} b}}";
}
testcase {
input "baa";
output "s:{aa:{aa:{a b} b}}";
- s = "b" a => "s"
- a = "a" a b => "aa"
- a = () => "a"
- b = () => "b"
+ s = s:: "b" a
+ a = aa:: "a" a b
+ a = a:: ()
+ b = b:: ()
}
testcase {
input "aaab";
output "sx:{b aa:{aa:{b b} b}}";
}
testcase {
input "aaab";
output "sx:{b aa:{aa:{b b} b}}";
- s = b d "a" "b" => "sx"
- s = "a" d "a" d => "sy"
- d = "a" a b => "aa"
- a = "a" b b => "aa"
- a = () => "a"
- b = () => "b"
+ s = sx:: b d "a" "b"
+ s = sy:: "a" d "a" d
+ d = aa:: "a" a b
+ a = aa:: "a" b b
+ a = a:: ()
+ b = b:: ()
}
testcase {
}
testcase {
@@
-210,15
+210,15
@@
testcase {
output "minus:{plus:{stringify:{{a}} stringify:{{b}}} times:{stringify:{{d}} stringify:{{c}}}}";
w = " "
l = id
output "minus:{plus:{stringify:{{a}} stringify:{{b}}} times:{stringify:{{d}} stringify:{{c}}}}";
w = " "
l = id
- s = l "=" q => "assign"
+ s = assign:: l "=" q
| q
q = id
| q
q = id
- | l "=" q => "assign"
- | q "-" q => "minus"
- | q "+" q => "plus"
- | q "*" q => "times"
+ | assign:: l "=" q
+ | minus:: q "-" q
+ | plus:: q "+" q
+ | times:: q "*" q
| "(" q ")"
| "(" q ")"
- id = idl++ => "stringify"
+ id = stringify:: idl++
idl = [a-d]
}
idl = [a-d]
}
@@
-244,15
+244,15
@@
testcase {
output "plus:{stringify:{{a}} times:{stringify:{{b}} stringify:{{c}}}}";
w = " "
l = id
output "plus:{stringify:{{a}} times:{stringify:{{b}} stringify:{{c}}}}";
w = " "
l = id
- s = l "=" r => "assign"
+ s = assign:: l "=" r
| r
r = l
| r
r = l
- | l "=" r => "assign"
- | r "+" r => "plus"
- > r "*" r => "times"
+ | assign:: l "=" r
+ | plus:: r "+" r
+ > times:: r "*" r
| "(" r ")"
| "(" r ")"
- | r r => "times"
- id = idl++ => "stringify"
+ | times:: r r
+ id = stringify:: idl++
idl = [a-d]
}
idl = [a-d]
}
@@
-262,7
+262,7
@@
testcase {
s = q */ ws
ws = " "*
s = q */ ws
ws = " "*
- q = [a-z]++ => "q"
+ q = q:: [a-z]++
}
//testcase {
}
//testcase {
@@
-329,8
+329,8
@@
testcase {
testcase {
input "abc ";
testcase {
input "abc ";
- s = q " "* => s
- q = [a-z] [a-z] [a-z] => a3
+ s = s2:: q " "*
+ q = a3:: [a-z] [a-z] [a-z]
&~ ~[] "b" ~[]*
}
&~ ~[] "b" ~[]*
}
@@
-338,17
+338,24
@@
testcase {
input "abc ";
output "s:{a b c}";
input "abc ";
output "s:{a b c}";
- s = [a-z] [a-z] [a-z] " "* => s
+ s = s:: [a-z] [a-z] [a-z] " "*
}
testcase {
input "a+2";
}
testcase {
input "a+2";
- output "";
+ output "Plus:{left:{Foo} right:{{2}}}";
s = Expr
Expr = [0-9]++
s = Expr
Expr = [0-9]++
- | Plus:: left:Expra "+" right:Expr
+ | Plus:: (left::Expra) "+" (right::Expr)
Expra = Foo:: ("a" | "b")
}
Expra = Foo:: ("a" | "b")
}
+
+testcase {
+ input "aaaaa";
+ s = top:: z (q::"a"*) z
+ z = a:: "a"
+}
+