diff --git a/asllib/tests/language.t/Dbmgm-new.asl b/asllib/tests/language.t/Dbmgm-new.asl new file mode 100644 index 000000000..7d4864310 --- /dev/null +++ b/asllib/tests/language.t/Dbmgm-new.asl @@ -0,0 +1,10 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + var a : integer = 100; + var b : bits(1) = '0'; + var c : integer{2, 16} = 16; + var d : bits(2) = '00'; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Dbvgk-new.asl b/asllib/tests/language.t/Dbvgk-new.asl new file mode 100644 index 000000000..aefd90e24 --- /dev/null +++ b/asllib/tests/language.t/Dbvgk-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func underconstrained(N: integer) => bits(N) +begin + return Zeros(N); +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Djljd-new.asl b/asllib/tests/language.t/Djljd-new.asl new file mode 100644 index 000000000..f25126dbb --- /dev/null +++ b/asllib/tests/language.t/Djljd-new.asl @@ -0,0 +1,13 @@ +// RUN: interp %s | FileCheck %s + +func execType(wid: integer) => bits(wid) +begin + // structure of R's type depends on execution time value `wid` + var R: bits(wid); + return R; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Dnmfp-new.asl b/asllib/tests/language.t/Dnmfp-new.asl new file mode 100644 index 000000000..f5fe1b427 --- /dev/null +++ b/asllib/tests/language.t/Dnmfp-new.asl @@ -0,0 +1,29 @@ +// RUN: interp %s | FileCheck %s + +type a of integer; + +var b: integer; +let c = 10; +constant d = 10; +config e : integer = 10; + +func f() +begin + return; +end + +getter g[] => integer +begin + return b; +end + +setter g[] = value: integer +begin + b = value; + return; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ibhln-new.asl b/asllib/tests/language.t/Ibhln-new.asl new file mode 100644 index 000000000..41939830b --- /dev/null +++ b/asllib/tests/language.t/Ibhln-new.asl @@ -0,0 +1,33 @@ +// RUN: interp %s | FileCheck %s + +func f() => integer {8,16,32,64} +begin + return 8; +end + +func g() => bits(8) +begin + return Zeros(8); +end + +func myFunc {N: integer{8,16,32}} (myInput: bits(N)) => bits(N) +begin + return Zeros(N); +end + +func MyVectorInstruction() +begin + let myWid: integer {8,16,32,64} = f(); + var myVal: bits(myWid) = g() as bits(myWid); + if myWid == 64 then + myVal[31:0] = myFunc(myVal[31:0]); + myVal[63:32] = myFunc(myVal[63:32]); + else // author knows myVal is not bits(64) + myVal = myFunc(myVal as bits(8)) as bits(myWid); + end +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ibyvl-new.asl b/asllib/tests/language.t/Ibyvl-new.asl new file mode 100644 index 000000000..c23a83276 --- /dev/null +++ b/asllib/tests/language.t/Ibyvl-new.asl @@ -0,0 +1,14 @@ +// RUN: interp %s | FileCheck %s + +var x: integer; +constant a: integer = 10; + +func test(t: integer) +begin + pass; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Icdvy-new.asl b/asllib/tests/language.t/Icdvy-new.asl new file mode 100644 index 000000000..e78df4e46 --- /dev/null +++ b/asllib/tests/language.t/Icdvy-new.asl @@ -0,0 +1,14 @@ +// RUN: interp %s | FileCheck %s + +func test{N}(a: bits(N)) +begin + return; +end + +func main() => integer +begin + constant a: integer{0..10} = 1; + var b: bits(a); + test(b); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ifpvz-new.asl b/asllib/tests/language.t/Ifpvz-new.asl new file mode 100644 index 000000000..70ac0a804 --- /dev/null +++ b/asllib/tests/language.t/Ifpvz-new.asl @@ -0,0 +1,16 @@ +// RUN: interp %s | FileCheck %s + +// legal since this is a fixed width bitvector whose determined width is 1 +// not a constrained width bitvector of undetermined width +// var many: bits(-: integer {1,2}); +// illegal since this is a constrained width bitvector of undetermined width +// and there is no initialization expression +config configValue: integer {1,2} = 1; +var many: bits(configValue) = Zeros(configValue); +// legal since this is a constrained width bitvector of undetermined width +// and this is a declaration where an initialization expression is given + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ighgk-new.asl b/asllib/tests/language.t/Ighgk-new.asl new file mode 100644 index 000000000..d5ca501d2 --- /dev/null +++ b/asllib/tests/language.t/Ighgk-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func under_constrained(a: integer, b: bits(a)) +begin + pass; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Iglwm-new.asl b/asllib/tests/language.t/Iglwm-new.asl new file mode 100644 index 000000000..9f2d45aaa --- /dev/null +++ b/asllib/tests/language.t/Iglwm-new.asl @@ -0,0 +1,7 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + var a: bits(2) = '00'; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Igqyg-new.asl b/asllib/tests/language.t/Igqyg-new.asl new file mode 100644 index 000000000..63c068191 --- /dev/null +++ b/asllib/tests/language.t/Igqyg-new.asl @@ -0,0 +1,52 @@ +// RUN: interp %s | FileCheck %s + +var gInt: integer {1,2,3}; // a constrained mutable global + +func mutables(wid: integer) +begin + // type checker knows wid-->wid + constant mod = 1; + // RHS is immutable so mod-->1 + let size01 = wid + gInt; + // RHS is mutable so size01-->size01 + var data01: bits(size01+1); + // size01 reduces to size01 so + // type checker knows data01 is (size01+1) wide + let size02 = wid + gInt + mod; + // RHS is mutable so size02-->size02 + var data02: bits(size02); + // size02-->size02 so + // type checker knows data02 is (size02) wide + data01=data02; + // type checker emits an error "Widths do not match" + // since it cannot tell that (size01+1)==(size02) +end + +func immutables(wid: integer) +begin + // type checker knows wid-->wid + constant mod = 1; + // RHS is immutable so mod-->1 + let size01 = wid; + // RHS is immutable so size01-->wid + var data01: bits(size01+1); + // size01-->wid so + // type checker knows data01 is (wid+1) wide + let size02 = wid + mod; + // RHS is statically evaluable + // and mod-->1 so + // type checker knows size02-->(wid+1) + var data02: bits(size02); + // size02-->(wid+1) so + // type checker knows data02 is (wid+1) wide + data01=data02; + // type checker knows that (wid+1)==(wid+1) + // Widths match +end + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Ihjcd-new.asl b/asllib/tests/language.t/Ihjcd-new.asl new file mode 100644 index 000000000..3e21671a1 --- /dev/null +++ b/asllib/tests/language.t/Ihjcd-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s +// CHECK: 1000000 +// CHECK-NEXT: 1000000 + +func main() => integer +begin + print(1000000); + print("\n"); + print(1_000_000); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ihmrk-new.asl b/asllib/tests/language.t/Ihmrk-new.asl new file mode 100644 index 000000000..6437c1c32 --- /dev/null +++ b/asllib/tests/language.t/Ihmrk-new.asl @@ -0,0 +1,14 @@ +// RUN: interp %s | FileCheck %s +// CHECK: 0 +// CHECK-NEXT: FALSE + +func main() => integer +begin + var a: (integer, boolean); + var (b, c) = a; + print(b); + print(c); + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Ihvlx-new.asl b/asllib/tests/language.t/Ihvlx-new.asl new file mode 100644 index 000000000..acf663fd5 --- /dev/null +++ b/asllib/tests/language.t/Ihvlx-new.asl @@ -0,0 +1,9 @@ +// RUN: not interp %s | FileCheck %s + +func main() => integer +begin + var __should_error_by_convention: integer; + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Ijdcc-new.asl b/asllib/tests/language.t/Ijdcc-new.asl new file mode 100644 index 000000000..9120cc8bc --- /dev/null +++ b/asllib/tests/language.t/Ijdcc-new.asl @@ -0,0 +1,12 @@ +// RUN: not interp %s | FileCheck %s + +type a of bits(5) { + [10:7] aa +}; + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Ikfcr-new.asl b/asllib/tests/language.t/Ikfcr-new.asl new file mode 100644 index 000000000..83182217f --- /dev/null +++ b/asllib/tests/language.t/Ikfcr-new.asl @@ -0,0 +1,15 @@ +// RUN: interp %s | FileCheck %s + +func test{N}(a: bits(N)) +begin + var b: integer = N; + return; +end + +func main() => integer +begin + constant a: integer{0..10} = 1; + var b: bits(a); + test(b); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Iknxj-new.asl b/asllib/tests/language.t/Iknxj-new.asl new file mode 100644 index 000000000..88a629274 --- /dev/null +++ b/asllib/tests/language.t/Iknxj-new.asl @@ -0,0 +1,16 @@ +// RUN: interp %s | FileCheck %s + +func testing(a: bits(2)) +begin + pass; +end + +func test(a: bits(2)) +begin + testing(a); +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Iktjn-new.asl b/asllib/tests/language.t/Iktjn-new.asl new file mode 100644 index 000000000..3bcf301ca --- /dev/null +++ b/asllib/tests/language.t/Iktjn-new.asl @@ -0,0 +1,35 @@ +// RUN: not interp %s | FileCheck %s + +func sameWid {N: integer {2,4,8,16}} (A: bits(N), B: bits(N)) => bits(N) +begin + return A; +end + +func test1() +begin + var A1, B1: bits(8); + var C1 = sameWid(A1, B1); + // The invocation type of sameWid's return type is bits(8) + // so `C1` has type `bits(8)` +end + +func test2(N: integer{4,8}) +begin + let wid: integer {2,4,8} = N; // A little unusual... + var A2: bits(N); // bits(N as {4,8}) + var D2: bits(wid); // bits(wid as {2,4,8}) + A2 = D2; // legal - matching determined widths + D2 = A2; // legal - matching determined widths + // Although A2 and D2 have the same width, they have different + // constraints so the following is illegal + var result = sameWid(A2, D2); + // If it were not illegal then the return type could not be determined + // and is either bits(N as {4,8}) or bits(wid as {2,4,8}) +end + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Ilghj-new.asl b/asllib/tests/language.t/Ilghj-new.asl new file mode 100644 index 000000000..605aec7de --- /dev/null +++ b/asllib/tests/language.t/Ilghj-new.asl @@ -0,0 +1,14 @@ +// RUN: interp %s | FileCheck %s + +func check{M: integer{4,8}}(flag: boolean, x: bits(M), y: bits(8)) => boolean +begin + if flag then + return (x as bits(8)) == y; // valid + end + return FALSE; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Imkpr-new.asl b/asllib/tests/language.t/Imkpr-new.asl new file mode 100644 index 000000000..7bd8be91d --- /dev/null +++ b/asllib/tests/language.t/Imkpr-new.asl @@ -0,0 +1,43 @@ +// RUN: interp %s | FileCheck %s + +func invokedN {N: integer {8,16,32}} (x: bits(N)) => bits(N) +begin + var myBits: bits(N); + // The type of myBits is bits(N as {8,16,32}) + if N == 8 then // "GUARD" + // myBits = '10101010'; // ILLEGAL + // since the type of myBits is not of width 8 + myBits = '10101010' as bits(N); // Legal (line AS01) + // type checker inserts execution-time check `N==8` + else + myBits = Zeros(N); + end + return myBits; +end + +func test(M: integer) => bits(M) +begin + var myVal: bits(M); + // Incurs execution-time check that (M IN {16,32}) + var myResult: bits(M); + // Incurs execution-time check that (M IN {8,16}) + // myResult = invokedN(myVal); // ILLEGAL + // The return type of invokedN(myVal) is bits(M as {16,32}) + // which does not type satisfy myResult + myResult = invokedN(myVal as bits(16)) as bits(M); // returns a bits({8,16}) + // Execution-time check that M IN {8,16} + // Note that the only value of M which can cause this invocation is `16` + // so the execution-time check `N==8` in invokedN at "AS01" is not executed + // due to its `if N==8` above failing + myVal = invokedN(myResult) as bits(M); + // Execution-time check that the returned value is IN {16,32} + // Invocation matches signature so it type-checks + // Note that myResult may be a bits(8), + // so the check at line AS01 may be executed + return myResult; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ipdkt-new.asl b/asllib/tests/language.t/Ipdkt-new.asl new file mode 100644 index 000000000..1d4029786 --- /dev/null +++ b/asllib/tests/language.t/Ipdkt-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func test(N: integer) => bits(N) +begin + return Zeros(N); +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Iqjtn_a-new.asl b/asllib/tests/language.t/Iqjtn_a-new.asl new file mode 100644 index 000000000..fa6aca774 --- /dev/null +++ b/asllib/tests/language.t/Iqjtn_a-new.asl @@ -0,0 +1,17 @@ +// RUN: not interp %s | FileCheck %s + +var globe_var: integer = 0; + +func write_to_var(a: integer) => integer +begin + globe_var = a; + return a; +end + +func main() => integer +begin + var a: (integer, integer) = (write_to_var(1), write_to_var(2)); + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Iqjtn_b-new.asl b/asllib/tests/language.t/Iqjtn_b-new.asl new file mode 100644 index 000000000..8b11059a0 --- /dev/null +++ b/asllib/tests/language.t/Iqjtn_b-new.asl @@ -0,0 +1,17 @@ +// RUN: not interp %s | FileCheck %s + +var globe_var: integer = 0; + +func write_to_var(a: integer) => integer +begin + globe_var = a; + return a; +end + +func main() => integer +begin + var a: integer = write_to_var(10) + globe_var; + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Iqjtn_c-new.asl b/asllib/tests/language.t/Iqjtn_c-new.asl new file mode 100644 index 000000000..74b9ad2f8 --- /dev/null +++ b/asllib/tests/language.t/Iqjtn_c-new.asl @@ -0,0 +1,26 @@ +// RUN: not interp %s 2>&1| FileCheck %s +// CHECK-NOT: Exception + +var globe_var: integer = 0; + +func write_to_var(a: integer) => integer +begin + globe_var = a; + return a; +end + +type exc of exception{err_code:integer}; + +func throwing() => integer +begin + throw exc{err_code=0}; + return 10; +end + +func main() => integer +begin + var a: integer = write_to_var(10) + throwing(); + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Iqjtn_d-new.asl b/asllib/tests/language.t/Iqjtn_d-new.asl new file mode 100644 index 000000000..17673891c --- /dev/null +++ b/asllib/tests/language.t/Iqjtn_d-new.asl @@ -0,0 +1,18 @@ +// RUN: not interp %s 2>&1| FileCheck %s +// CHECK-NOT: Exception + +type exc of exception{err_code:integer}; + +func throwing() => integer +begin + throw exc{err_code=0}; + return 10; +end + +func main() => integer +begin + var a: integer = throwing() + throwing(); + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Iqnsd-new.asl b/asllib/tests/language.t/Iqnsd-new.asl new file mode 100644 index 000000000..752b6452c --- /dev/null +++ b/asllib/tests/language.t/Iqnsd-new.asl @@ -0,0 +1,25 @@ +// RUN: interp %s | FileCheck %s + +type widTy of integer {4,8}; + +func callCB {N: widTy} (arg1: bits(N)) => bits(N) +begin + // The formal argument is a constrained width bitvector + // whose determined width N is IN {4,8} + // For checking actual arguments, the domain of arg1 is + // domain(bits(4)) union domain(bits(8)) + return arg1; +end + +func bitvector(N: widTy) +begin + var CB1: (bits(N), integer) = (Zeros(N), 0); + // CB1 is a tuple whose first element is a constrained width bitvector + // whose width is implicitly determined by the width of the bitvector + // returned by the call to Zeros, i.e. N. +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Irkbv-new.asl b/asllib/tests/language.t/Irkbv-new.asl new file mode 100644 index 000000000..2e6b60a09 --- /dev/null +++ b/asllib/tests/language.t/Irkbv-new.asl @@ -0,0 +1,16 @@ +// RUN: interp %s | FileCheck %s + +func test(a: integer) +begin + pass; +end + +func test2{a}(b: bits(a)) +begin + test(a); +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Irxlg-new.asl b/asllib/tests/language.t/Irxlg-new.asl new file mode 100644 index 000000000..dd3504e54 --- /dev/null +++ b/asllib/tests/language.t/Irxlg-new.asl @@ -0,0 +1,26 @@ +// RUN: interp %s | FileCheck %s +// CHECK: FALSE +// CHECK-NEXT: TRUE +// CHECK-NEXT: 0x5 +// CHECK-NEXT: 0x4 +// CHECK-NEXT: 0x2 +// CHECK-NEXT: 0x1 +// CHECK-NEXT: 0x1 + + +func main() => integer +begin + var a : bits(3) = '101'; + var b : bits(3) = '100'; + + print((a == b)); // Legal + print((a != b)); // Legal + print((a OR b)); // Legal + print((a AND b)); // Legal + print((NOT a)); // Legal + print((a XOR b)); // Legal + print((a + b)); // Legal + print((a - b)); // Legal + + return 0; +end diff --git a/asllib/tests/language.t/Isbwr-new.asl b/asllib/tests/language.t/Isbwr-new.asl new file mode 100644 index 000000000..4d7331738 --- /dev/null +++ b/asllib/tests/language.t/Isbwr-new.asl @@ -0,0 +1,13 @@ +// RUN: interp %s | FileCheck %s + +func test{N: integer{0..3}}(a: bits(N)) +begin + pass; +end + +func main() => integer +begin + var a: bits(2) = '11'; + test(a); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Iszvf-new.asl b/asllib/tests/language.t/Iszvf-new.asl new file mode 100644 index 000000000..3c44e91cf --- /dev/null +++ b/asllib/tests/language.t/Iszvf-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + var a: bits(4); + var b = a as bits(4); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Itsxl-new.asl b/asllib/tests/language.t/Itsxl-new.asl new file mode 100644 index 000000000..76af96547 --- /dev/null +++ b/asllib/tests/language.t/Itsxl-new.asl @@ -0,0 +1,15 @@ +// RUN: interp %s | FileCheck %s +// CHECK: 10 +// CHECK-NEXT: 20 + +var a = (10, 20); + +func main() => integer +begin + print(a.item0); + print(a.item1); + + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Ivgsp-new.asl b/asllib/tests/language.t/Ivgsp-new.asl new file mode 100644 index 000000000..101d91ed6 --- /dev/null +++ b/asllib/tests/language.t/Ivgsp-new.asl @@ -0,0 +1,19 @@ +// RUN: not interp %s | FileCheck %s + +func a() => integer +begin + return 10; +end + +func a() => string +begin + return "10"; +end + +func main() => integer +begin + var b: integer = a(); + var c: string = a(); + + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Ivylk-new.asl b/asllib/tests/language.t/Ivylk-new.asl new file mode 100644 index 000000000..2bef70f3a --- /dev/null +++ b/asllib/tests/language.t/Ivylk-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +var only: bits(1) = Zeros(1); + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Iwlnm-new.asl b/asllib/tests/language.t/Iwlnm-new.asl new file mode 100644 index 000000000..04e52847b --- /dev/null +++ b/asllib/tests/language.t/Iwlnm-new.asl @@ -0,0 +1,10 @@ +// RUN: not interp %s | FileCheck %s + +var a = '1xx1'; + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Ixfpv-new.asl b/asllib/tests/language.t/Ixfpv-new.asl new file mode 100644 index 000000000..0e03aaf58 --- /dev/null +++ b/asllib/tests/language.t/Ixfpv-new.asl @@ -0,0 +1,14 @@ +// RUN: not interp %s | FileCheck %s +// CHECK: 10 +// CHECK-NEXT: 20 + +var a = (10, 20); + +func main() => integer +begin + var c = a.item2; + + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Iyklf-new.asl b/asllib/tests/language.t/Iyklf-new.asl new file mode 100644 index 000000000..66d7a0ce3 --- /dev/null +++ b/asllib/tests/language.t/Iyklf-new.asl @@ -0,0 +1,21 @@ +// RUN: interp %s | FileCheck %s +// CHECK: a + +type a of exception{}; +type b subtypes a; + +func main() => integer +begin + try + try + throw b{}; + catch + when b => throw; + end + catch + when a => print("a"); + end + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Iypxd-new.asl b/asllib/tests/language.t/Iypxd-new.asl new file mode 100644 index 000000000..c2e400f48 --- /dev/null +++ b/asllib/tests/language.t/Iypxd-new.asl @@ -0,0 +1,10 @@ +// RUN: interp %s | FileCheck %s + +let (a, b) = (10, 10); + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Izddj-new.asl b/asllib/tests/language.t/Izddj-new.asl new file mode 100644 index 000000000..734f6e2ef --- /dev/null +++ b/asllib/tests/language.t/Izddj-new.asl @@ -0,0 +1,12 @@ +// RUN: interp %s | FileCheck %s + +func under_constrained(a: integer, b: bits(a)) +begin + pass; +end + +func main() => integer +begin + under_constrained(10, '1111 1111 11'); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rbncy-new.asl b/asllib/tests/language.t/Rbncy-new.asl new file mode 100644 index 000000000..025bacb0d --- /dev/null +++ b/asllib/tests/language.t/Rbncy-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert (10 ^ 3) == 1000; + assert (2 ^ 5) == 32; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rbzkw-new.asl b/asllib/tests/language.t/Rbzkw-new.asl new file mode 100644 index 000000000..d0d9b6f54 --- /dev/null +++ b/asllib/tests/language.t/Rbzkw-new.asl @@ -0,0 +1,12 @@ +// RUN: interp %s | FileCheck %s + +func test(a: integer, b: integer{0..3}) => bits(a) +begin + var c = a + b; + return Zeros(a); +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rccvd-new.asl b/asllib/tests/language.t/Rccvd-new.asl new file mode 100644 index 000000000..e6cf442a9 --- /dev/null +++ b/asllib/tests/language.t/Rccvd-new.asl @@ -0,0 +1,21 @@ +// RUN: interp %s | FileCheck %s + +constant global: integer {4,8} = 4; + +func foo {parm: integer} ( + arg0: bits(global), + arg1: bits(parm+global), + arg2: (integer, bits(parm)) +) +begin + // The type of the second part of the tuple `arg2` is + // parameter-defining for `parm`, without which the + // declaration would be illegal. + // None of the other formals are parameter-defining. + return; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rcnhb-new.asl b/asllib/tests/language.t/Rcnhb-new.asl new file mode 100644 index 000000000..44a9cfdc3 --- /dev/null +++ b/asllib/tests/language.t/Rcnhb-new.asl @@ -0,0 +1,12 @@ +// RUN: not interp %s | FileCheck %s + +type a of bits(5) { + [3:0, 3:1] b +}; + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rcrqj-new.asl b/asllib/tests/language.t/Rcrqj-new.asl new file mode 100644 index 000000000..1ef912a89 --- /dev/null +++ b/asllib/tests/language.t/Rcrqj-new.asl @@ -0,0 +1,10 @@ +// RUN: interp %s | FileCheck %s + + +func main() => integer +begin + assert (10 DIV 2) == 5; + assert (10 MOD 3) == 1; + + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rdfwz-new.asl b/asllib/tests/language.t/Rdfwz-new.asl new file mode 100644 index 000000000..f8c55786e --- /dev/null +++ b/asllib/tests/language.t/Rdfwz-new.asl @@ -0,0 +1,23 @@ +// RUN: interp %s | FileCheck %s + +var t: integer; + +func a() +begin + let b = 10; +end + +getter c[] => integer +begin + return t; +end + +setter c[] = value: integer +begin + t = value; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rdjmc-new.asl b/asllib/tests/language.t/Rdjmc-new.asl new file mode 100644 index 000000000..76b35fa70 --- /dev/null +++ b/asllib/tests/language.t/Rdjmc-new.asl @@ -0,0 +1,18 @@ +// RUN: not interp %s | FileCheck %s + +var a : integer = 10; + +func sideeffect() => integer +begin + a = a + 1; + return a; +end + +var b = a; + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rfhyz-new.asl b/asllib/tests/language.t/Rfhyz-new.asl new file mode 100644 index 000000000..86ac3a323 --- /dev/null +++ b/asllib/tests/language.t/Rfhyz-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func test{N}(a: bits(N)) +begin + var b = [a, '11']; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rfrwd-new.asl b/asllib/tests/language.t/Rfrwd-new.asl new file mode 100644 index 000000000..e1f0dab02 --- /dev/null +++ b/asllib/tests/language.t/Rfrwd-new.asl @@ -0,0 +1,8 @@ +// RUN: not interp %s | FileCheck %s + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rghxr_a-new.asl b/asllib/tests/language.t/Rghxr_a-new.asl new file mode 100644 index 000000000..b0b933851 --- /dev/null +++ b/asllib/tests/language.t/Rghxr_a-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert ( 6 MOD 3) == 0; + assert (-5 MOD 3) == 1; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rgvks-new.asl b/asllib/tests/language.t/Rgvks-new.asl new file mode 100644 index 000000000..01a52a1e1 --- /dev/null +++ b/asllib/tests/language.t/Rgvks-new.asl @@ -0,0 +1,20 @@ +// RUN: interp %s | FileCheck %s +// CHECK: a + +type a of exception{}; + +func main() => integer +begin + try + try + throw a{}; + catch + when a => throw; + end + catch + when a => print("a"); + end + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Rhhcd-new.asl b/asllib/tests/language.t/Rhhcd-new.asl new file mode 100644 index 000000000..0225aa272 --- /dev/null +++ b/asllib/tests/language.t/Rhhcd-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func test {N} (a: bits(N)) +begin + var b: array[N] of integer; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rhqzy-new.asl b/asllib/tests/language.t/Rhqzy-new.asl new file mode 100644 index 000000000..51ed341ad --- /dev/null +++ b/asllib/tests/language.t/Rhqzy-new.asl @@ -0,0 +1,21 @@ +// RUN: interp %s | FileCheck %s + +type a of record { + aa: integer +}; + +type b of record { + aa: integer, + bb: integer +} subtypes a; + +type c subtypes a with { + bb: integer +}; + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rirnq-new.asl b/asllib/tests/language.t/Rirnq-new.asl new file mode 100644 index 000000000..5a95bba69 --- /dev/null +++ b/asllib/tests/language.t/Rirnq-new.asl @@ -0,0 +1,8 @@ +// RUN: not interp %s 2>&1 | FileCheck %s +// CHECK: ASSERT FAILED + +func main() => integer +begin + assert(FALSE); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rjpvl-new.asl b/asllib/tests/language.t/Rjpvl-new.asl new file mode 100644 index 000000000..2ed6d33d6 --- /dev/null +++ b/asllib/tests/language.t/Rjpvl-new.asl @@ -0,0 +1,36 @@ +// RUN: interp %s | FileCheck %s + + +// declaration of a tuple type and then a var identifier using that type +type MyTupleT of (boolean, integer); +var enable_value : MyTupleT; + +// declaration let identifier (of type tuple), with initialization +let default_range : (integer, integer) = (0, 31); + +// declaration of two var identifiers +// The type information for a and b is taken from the initialization expression +var (a, b) = default_range; + +// a function that returns a tuple +func calcEnable() => myTupleT +begin + return (TRUE, data); // returning a 2-tuple +end + +func main() => integer +begin + // assignment to a tuple + enable_value = calcEnable(); + + // multiple assignment to the list of elements `lo, hi` from + // a conditional expression that has one tuple literal `(0,63)` + // and a variable default_range, of type tuple. + // Note that the expression on the left side of the equals sign is + // not a tuple but instead a list of elements. + (lo, hi) = if sf then (0, 63) else default_range; + + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rkldr-new.asl b/asllib/tests/language.t/Rkldr-new.asl new file mode 100644 index 000000000..eb55913c7 --- /dev/null +++ b/asllib/tests/language.t/Rkldr-new.asl @@ -0,0 +1,19 @@ +// RUN: not interp %s | FileCheck %s + +var a : integer = 0; + +func sideeffect() => integer +begin + a = a + 1; + return 10; +end + +func main() => integer +begin + for x = 0 to sideeffect() do + pass; + end + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rmwbn-new.asl b/asllib/tests/language.t/Rmwbn-new.asl new file mode 100644 index 000000000..5376f48a3 --- /dev/null +++ b/asllib/tests/language.t/Rmwbn-new.asl @@ -0,0 +1,17 @@ +// RUN: interp %s | FileCheck %s + +config c: integer{10} = 10; + +func test(N: integer) => bits(N) +begin + return Zeros(N); +end + +func main() => integer +begin + var a: bits(10) = test(10); + var b: bits(5) = test(5); + + var cc: bits(c) = test(c); + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rncnq-new.asl b/asllib/tests/language.t/Rncnq-new.asl new file mode 100644 index 000000000..1b3d11d2a --- /dev/null +++ b/asllib/tests/language.t/Rncnq-new.asl @@ -0,0 +1,12 @@ +// RUN: interp %s | FileCheck %s + +func a(n: integer) => bits(n) +begin + var b: bits(n); + return b; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rncwm-new.asl b/asllib/tests/language.t/Rncwm-new.asl new file mode 100644 index 000000000..6fbbb354c --- /dev/null +++ b/asllib/tests/language.t/Rncwm-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert (10 ^ 3) == 1000; + assert (2 ^ 5) == 32; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rnzgh-new.asl b/asllib/tests/language.t/Rnzgh-new.asl new file mode 100644 index 000000000..861a30c96 --- /dev/null +++ b/asllib/tests/language.t/Rnzgh-new.asl @@ -0,0 +1,12 @@ +// RUN: not interp %s | FileCheck %s + +func main() => integer +begin + var a : integer = 0; + for x = 10 downto a do + a = a + 1; + end + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rphnz-new.asl b/asllib/tests/language.t/Rphnz-new.asl new file mode 100644 index 000000000..a23cf25fe --- /dev/null +++ b/asllib/tests/language.t/Rphnz-new.asl @@ -0,0 +1,12 @@ +// RUN: interp %s | FileCheck %s + +func a() => integer +begin + var b: integer{0..10} = 4; + return b; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rprzn-new.asl b/asllib/tests/language.t/Rprzn-new.asl new file mode 100644 index 000000000..87d8f2467 --- /dev/null +++ b/asllib/tests/language.t/Rprzn-new.asl @@ -0,0 +1,16 @@ +// RUN: not interp %s | FileCheck %s + +func runtime() => integer +begin + print("Hello"); + return 10; +end + +config a = runtime(); + +func main() => integer +begin + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Rqdqd-new.asl b/asllib/tests/language.t/Rqdqd-new.asl new file mode 100644 index 000000000..70f6764b1 --- /dev/null +++ b/asllib/tests/language.t/Rqdqd-new.asl @@ -0,0 +1,10 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + var a, b = 10; + + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rqqbb-new.asl b/asllib/tests/language.t/Rqqbb-new.asl new file mode 100644 index 000000000..725c6ce0b --- /dev/null +++ b/asllib/tests/language.t/Rqqbb-new.asl @@ -0,0 +1,13 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert 10.0 == 10.0; + assert 1_0.0 == 10.0; + assert 10.0_ == 10.0; + assert 10.00 == 10.0; + assert 10_.0 == 10.0; + assert 10.0_0 == 10.0; + + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rqwsq-new.asl b/asllib/tests/language.t/Rqwsq-new.asl new file mode 100644 index 000000000..bf79408ce --- /dev/null +++ b/asllib/tests/language.t/Rqwsq-new.asl @@ -0,0 +1,13 @@ +// RUN: interp %s | FileCheck %s +// CHECK: 0 +// CHECK-NEXT: 0 +func main() => integer +begin + var a: (integer, integer); + var (b, c) = a; + print(b); + print(c); + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Rqxgw-new.asl b/asllib/tests/language.t/Rqxgw-new.asl new file mode 100644 index 000000000..86639b144 --- /dev/null +++ b/asllib/tests/language.t/Rqxgw-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s +// CHECK: TRUE + +func main() => integer +begin + var a: bit; + var b: bits(1); + + print((a == b)); + return 0; +end diff --git a/asllib/tests/language.t/Rsnqj-new.asl b/asllib/tests/language.t/Rsnqj-new.asl new file mode 100644 index 000000000..b5fb31d5d --- /dev/null +++ b/asllib/tests/language.t/Rsnqj-new.asl @@ -0,0 +1,16 @@ +// RUN: not interp %s | FileCheck %s + +var t: integer = 0; + +func a() => bits(0) +begin + t = t + 1; + return Zeros(0); +end + +func main() => integer +begin + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rsvmm-new.asl b/asllib/tests/language.t/Rsvmm-new.asl new file mode 100644 index 000000000..56f4aad6d --- /dev/null +++ b/asllib/tests/language.t/Rsvmm-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert (6 DIV 3) == 2; + assert (-6 DIV 3) == -2; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rtphr-new.asl b/asllib/tests/language.t/Rtphr-new.asl new file mode 100644 index 000000000..d5ca501d2 --- /dev/null +++ b/asllib/tests/language.t/Rtphr-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func under_constrained(a: integer, b: bits(a)) +begin + pass; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rtznr-new.asl b/asllib/tests/language.t/Rtznr-new.asl new file mode 100644 index 000000000..a26100b6a --- /dev/null +++ b/asllib/tests/language.t/Rtznr-new.asl @@ -0,0 +1,12 @@ +// RUN: interp %s | FileCheck %s + +func test{N}(a: bits(N)) +begin + var b: integer{0..N}; + pass; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rvczx-new.asl b/asllib/tests/language.t/Rvczx-new.asl new file mode 100644 index 000000000..a31f780ff --- /dev/null +++ b/asllib/tests/language.t/Rvczx-new.asl @@ -0,0 +1,11 @@ +// RUN: interp %s | FileCheck %s + +func b{N}(n: bits(N)) +begin + pass; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rvgzf-new.asl b/asllib/tests/language.t/Rvgzf-new.asl new file mode 100644 index 000000000..7f29b6001 --- /dev/null +++ b/asllib/tests/language.t/Rvgzf-new.asl @@ -0,0 +1,10 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert (10 << 3) == 80; + assert (3 << 5) == 96; + assert (100 >> 5) == 3; + assert (50 >> 3) == 6; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rvnkt-new.asl b/asllib/tests/language.t/Rvnkt-new.asl new file mode 100644 index 000000000..4d0365abb --- /dev/null +++ b/asllib/tests/language.t/Rvnkt-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + var a: integer{1..10} = 2; + var b = (10 DIV a) == 5; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rwqrn-new.asl b/asllib/tests/language.t/Rwqrn-new.asl new file mode 100644 index 000000000..86fc1ed8a --- /dev/null +++ b/asllib/tests/language.t/Rwqrn-new.asl @@ -0,0 +1,18 @@ +// RUN: not interp %s | FileCheck %s + +var a: integer; + +func sideeffect() => boolean +begin + a = a + 1; + + return TRUE; +end + +func main() => integer +begin + assert(sideeffect()); + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rwzvx-new.asl b/asllib/tests/language.t/Rwzvx-new.asl new file mode 100644 index 000000000..e6d5d8e97 --- /dev/null +++ b/asllib/tests/language.t/Rwzvx-new.asl @@ -0,0 +1,10 @@ +// RUN: not interp %s | FileCheck %s + +func main() => integer +begin + var a : integer{0..4} = 4; + var b = a as integer{0..3}; + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rxylp-new.asl b/asllib/tests/language.t/Rxylp-new.asl new file mode 100644 index 000000000..f783df773 --- /dev/null +++ b/asllib/tests/language.t/Rxylp-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + var a = '111'; + assert a == '111'; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rydfq-new.asl b/asllib/tests/language.t/Rydfq-new.asl new file mode 100644 index 000000000..adc8c0187 --- /dev/null +++ b/asllib/tests/language.t/Rydfq-new.asl @@ -0,0 +1,24 @@ +// RUN: interp %s | FileCheck %s +// CHECK: 4 + +var _a: integer = 10; + +getter a => integer +begin + return _a; +end + +setter a = value: integer +begin + _a = value; +end + +func main() => integer +begin + a = 4; + print(_a); + + return 0; +end + +// XFAIL: * diff --git a/asllib/tests/language.t/Rytnr-new.asl b/asllib/tests/language.t/Rytnr-new.asl new file mode 100644 index 000000000..3f573cc8c --- /dev/null +++ b/asllib/tests/language.t/Rytnr-new.asl @@ -0,0 +1,12 @@ +// RUN: not interp %s | FileCheck %s + +func main() => integer +begin + var a : integer = 0; + for x = a to 10 do + a = a + 1; + end + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Ryyfr-new.asl b/asllib/tests/language.t/Ryyfr-new.asl new file mode 100644 index 000000000..6ace7e09a --- /dev/null +++ b/asllib/tests/language.t/Ryyfr-new.asl @@ -0,0 +1,16 @@ +// RUN: not interp %s | FileCheck %s + +type a of bits(4) { + [0] aa, + [0] bb +}; + +func main() => integer +begin + var b: a; + b.[aa, bb] = '11'; + + return 0; +end + +// XFAIL: * \ No newline at end of file diff --git a/asllib/tests/language.t/Rzcvd-new.asl b/asllib/tests/language.t/Rzcvd-new.asl new file mode 100644 index 000000000..9762da78d --- /dev/null +++ b/asllib/tests/language.t/Rzcvd-new.asl @@ -0,0 +1,12 @@ +// RUN: interp %s | FileCheck %s + +func a(N: integer, M: integer) +begin + var b = N; + var c: integer; +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rzndl-new.asl b/asllib/tests/language.t/Rzndl-new.asl new file mode 100644 index 000000000..100248989 --- /dev/null +++ b/asllib/tests/language.t/Rzndl-new.asl @@ -0,0 +1,17 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert '111' IN {'1xx'}; + assert '111' IN '1xx'; + assert !('111' IN {'0xx'}); + assert 3 IN {2,3,4}; + assert !(1 IN {2,3,4}); + assert 3 IN {1..10}; + assert 3 IN {<= 10}; + assert 3 IN !{1,2,4}; + assert (1,'10') IN {(1,'1x')}; + assert !((1,'10') IN {(1,'0x'), (2, '1x')}); + + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rzsnd-new.asl b/asllib/tests/language.t/Rzsnd-new.asl new file mode 100644 index 000000000..89573c770 --- /dev/null +++ b/asllib/tests/language.t/Rzsnd-new.asl @@ -0,0 +1,20 @@ +// RUN: interp %s | FileCheck %s + +func testa(N: integer) +begin + for x = 0 to N do + pass; + end +end + +func testb(N: integer) +begin + for x = 0 to N do + pass; + end +end + +func main() => integer +begin + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/Rztjn_a-new.asl b/asllib/tests/language.t/Rztjn_a-new.asl new file mode 100644 index 000000000..1b654efa8 --- /dev/null +++ b/asllib/tests/language.t/Rztjn_a-new.asl @@ -0,0 +1,8 @@ +// RUN: interp %s | FileCheck %s + +func main() => integer +begin + assert (6 DIV 3 ) == 2; + assert (-6 DIV 3) == -2; + return 0; +end \ No newline at end of file diff --git a/asllib/tests/language.t/run.t b/asllib/tests/language.t/run.t index d2a1a25e0..577e1f716 100644 --- a/asllib/tests/language.t/run.t +++ b/asllib/tests/language.t/run.t @@ -2667,3 +2667,328 @@ For reference, the test writter intention was that this output matched: Test Rdgbm.asl: $ aslref Rdgbm.asl +Test Dbmgm-new.asl: + $ aslref Dbmgm-new.asl + +Test Iglwm-new.asl: + $ aslref Iglwm-new.asl + +Test Ilghj-new.asl: + $ aslref Ilghj-new.asl + +Test Irxlg-new.asl: + $ aslref Irxlg-new.asl + FALSE + TRUE + '101' + '100' + '010' + '001' + '001' + '001' + +Test Iypxd-new.asl: + $ aslref Iypxd-new.asl + File Iypxd-new.asl, line 3, characters 4 to 5: + ASL Error: Cannot parse. + [1] + +Test Rfhyz-new.asl: + $ aslref Rfhyz-new.asl + +Test Rmwbn-new.asl: + $ aslref Rmwbn-new.asl + +Test Rqxgw-new.asl: + $ aslref Rqxgw-new.asl + TRUE + +Test Rwzvx-new.asl: + $ aslref Rwzvx-new.asl + File Rwzvx-new.asl, line 6, characters 12 to 13: + ASL Execution error: Mismatch type: + value 4 does not belong to type integer {0..3}. + [1] + + +Test Dbvgk-new.asl: + $ aslref Dbvgk-new.asl + +Test Igqyg-new.asl: + $ aslref Igqyg-new.asl + File Igqyg-new.asl, line 32, characters 4 to 31: + ASL Typing error: constrained integer expected, provided integer + [1] + +Test Imkpr-new.asl: + $ aslref Imkpr-new.asl + +Test Isbwr-new.asl: + $ aslref Isbwr-new.asl + +Test Izddj-new.asl: + $ aslref Izddj-new.asl + +Test Rfrwd-new.asl: + $ aslref Rfrwd-new.asl + +Test Rncnq-new.asl: + $ aslref Rncnq-new.asl + +Test Rsnqj-new.asl: + $ aslref Rsnqj-new.asl + +Test Rxylp-new.asl: + $ aslref Rxylp-new.asl + + +Test Djljd-new.asl: + $ aslref Djljd-new.asl + +Test Ihjcd-new.asl: + $ aslref Ihjcd-new.asl + 1000000 + + + 1000000 + +Test Ipdkt-new.asl: + $ aslref Ipdkt-new.asl + +Test Iszvf-new.asl: + $ aslref Iszvf-new.asl + +Test Rbncy-new.asl: + $ aslref Rbncy-new.asl + +Test Rghxr_a-new.asl: + $ aslref Rghxr_a-new.asl + File Rghxr_a-new.asl, line 6, characters 11 to 26: + ASL Execution error: Assertion failed: ((- (5 MOD 3)) == 1) + [1] + +Test Rncwm-new.asl: + $ aslref Rncwm-new.asl + +Test Rsvmm-new.asl: + $ aslref Rsvmm-new.asl + +Test Rydfq-new.asl: + $ aslref Rydfq-new.asl + 4 + + +Test Dnmfp-new.asl: + $ aslref Dnmfp-new.asl + +Test Ihmrk-new.asl: + $ aslref Ihmrk-new.asl + 0 + FALSE + +Test Iqjtn_a-new.asl: + $ aslref Iqjtn_a-new.asl + +Test Itsxl-new.asl: + $ aslref Itsxl-new.asl + File Itsxl-new.asl, line 9, characters 10 to 17: + ASL Typing error: (integer {10}, integer {20}) does not subtype any of: + bits(-), record { }, exception { }. + [1] + +Test Rbzkw-new.asl: + $ aslref Rbzkw-new.asl + +Test Rgvks-new.asl: + $ aslref Rgvks-new.asl + a + +Test Rnzgh-new.asl: + $ aslref Rnzgh-new.asl + +Test Rtphr-new.asl: + $ aslref Rtphr-new.asl + +Test Rytnr-new.asl: + $ aslref Rytnr-new.asl + + +Test Ibhln-new.asl: + $ aslref Ibhln-new.asl + +Test Ihvlx-new.asl: + $ aslref Ihvlx-new.asl + +Test Iqjtn_b-new.asl: + $ aslref Iqjtn_b-new.asl + +Test Ivgsp-new.asl: + $ aslref Ivgsp-new.asl + File Ivgsp-new.asl, line 8, character 0 to line 11, character 3: + ASL Typing error: cannot declare already declared element "a". + [1] + +Test Rccvd-new.asl: + $ aslref Rccvd-new.asl + File Rccvd-new.asl, line 5, character 0 to line 16, character 3: + ASL Typing error: explicit parameter "parm" does not have a corresponding + defining argument + [1] + +Test Rhhcd-new.asl: + $ aslref Rhhcd-new.asl + +Test Rphnz-new.asl: + $ aslref Rphnz-new.asl + +Test Rtznr-new.asl: + $ aslref Rtznr-new.asl + +Test Ryyfr-new.asl: + $ aslref Ryyfr-new.asl + + +Test Ibyvl-new.asl: + $ aslref Ibyvl-new.asl + +Test Ijdcc-new.asl: + $ aslref Ijdcc-new.asl + File Ijdcc-new.asl, line 3, character 0 to line 5, character 2: + ASL Static error: Cannot extract from bitvector of length 5 slices 7+:4. + [1] + +Test Iqjtn_c-new.asl: + $ aslref Iqjtn_c-new.asl + Uncaught exception: exc {err_code: 0} + [1] + +Test Ivylk-new.asl: + $ aslref Ivylk-new.asl + +Test Rcnhb-new.asl: + $ aslref Rcnhb-new.asl + File Rcnhb-new.asl, line 3, character 0 to line 5, character 2: + ASL Typing error: overlapping slices 0+:4, 1+:3. + [1] + +Test Rhqzy-new.asl: + $ aslref Rhqzy-new.asl + +Test Rprzn-new.asl: + $ aslref Rprzn-new.asl + Hello + +Test Rvczx-new.asl: + $ aslref Rvczx-new.asl + +Test Rzcvd-new.asl: + $ aslref Rzcvd-new.asl + + +Test Icdvy-new.asl: + $ aslref Icdvy-new.asl + +Test Ikfcr-new.asl: + $ aslref Ikfcr-new.asl + +Test Iqjtn_d-new.asl: + $ aslref Iqjtn_d-new.asl + Uncaught exception: exc {err_code: 0} + [1] + +Test Iwlnm-new.asl: + $ aslref Iwlnm-new.asl + File Iwlnm-new.asl, line 3, characters 8 to 14: + ASL Error: Cannot parse. + [1] + +Test Rcrqj-new.asl: + $ aslref Rcrqj-new.asl + +Test Rirnq-new.asl: + $ aslref Rirnq-new.asl + File Rirnq-new.asl, line 6, characters 11 to 16: + ASL Execution error: Assertion failed: FALSE + [1] + +Test Rqdqd-new.asl: + $ aslref Rqdqd-new.asl + File Rqdqd-new.asl, line 5, characters 13 to 14: + ASL Error: Cannot parse. + [1] + +Test Rvgzf-new.asl: + $ aslref Rvgzf-new.asl + +Test Rzndl-new.asl: + $ aslref Rzndl-new.asl + + +Test Ifpvz-new.asl: + $ aslref Ifpvz-new.asl + +Test Iknxj-new.asl: + $ aslref Iknxj-new.asl + +Test Iqnsd-new.asl: + $ aslref Iqnsd-new.asl + +Test Ixfpv-new.asl: + $ aslref Ixfpv-new.asl + File Ixfpv-new.asl, line 9, characters 12 to 19: + ASL Typing error: (integer {10}, integer {20}) does not subtype any of: + bits(-), record { }, exception { }. + [1] + +Test Rdfwz-new.asl: + $ aslref Rdfwz-new.asl + +Test Rjpvl-new.asl: + $ aslref Rjpvl-new.asl + File Rjpvl-new.asl, line 13, characters 4 to 5: + ASL Error: Cannot parse. + [1] + +Test Rqqbb-new.asl: + $ aslref Rqqbb-new.asl + +Test Rvnkt-new.asl: + $ aslref Rvnkt-new.asl + +Test Rzsnd-new.asl: + $ aslref Rzsnd-new.asl + + +Test Ighgk-new.asl: + $ aslref Ighgk-new.asl + +Test Iktjn-new.asl: + $ aslref Iktjn-new.asl + File Iktjn-new.asl, line 21, characters 4 to 6: + ASL Typing error: a subtype of bits(N) was expected, provided bits(wid). + [1] + +Test Irkbv-new.asl: + $ aslref Irkbv-new.asl + +Test Iyklf-new.asl: + $ aslref Iyklf-new.asl + a + +Test Rdjmc-new.asl: + $ aslref Rdjmc-new.asl + +Test Rkldr-new.asl: + $ aslref Rkldr-new.asl + +Test Rqwsq-new.asl: + $ aslref Rqwsq-new.asl + 0 + 0 + +Test Rwqrn-new.asl: + $ aslref Rwqrn-new.asl + +Test Rztjn_a-new.asl: + $ aslref Rztjn_a-new.asl +