test updates woooo

This commit is contained in:
Scarlett
2025-05-04 16:05:13 -04:00
parent ea7c284665
commit a61d0a57e8
167 changed files with 1757 additions and 572 deletions

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type rec: [integer: x; integer: y]
type T1: integer -> integer

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type Boolean2Boolean: Boolean -> Boolean
type integer2integer: integer -> integer
type character2integer: character -> integer

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type main: string -> integer
function entry: main
type testarr : 1 -> integer

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type rec: [integer: x; integer: y]
type main: rec -> integer
function test: main

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type main: string -> integer
function entry: main

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type rec: [integer: x; integer: y]
entry (arg) := {

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
(*
At compiler start-up your program should create symbol table entries for the four primitive types:
Boolean (1 byte)

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type main: string -> integer
function entry: main

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type main: string -> integer
function entry: main

View File

@ -1 +1,2 @@
(* TEST: [-st] *)
type main: string -> integer function entry: main type rec: [integer: x; integer: y] type T1: integer -> integer type T2: rec -> integer function foo : T1 function bar1 : T2 function bar2 : T2 foo(x) := { return x * x; } bar1(a) := { return a.x * a.y; } bar2 as (r,s) := { return r * s; } entry(arg) := { [ integer: result ; rec: w] result := foo(5); w := reserve w; w.x := 5; w.y := 7; result := bar1(w); result := bar2(5,7); return 0; }

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type main: string -> integer
type rec: [integer: rec_x; integer: rec_y]

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type main: string -> integer
function entry: main

View File

@ -1,3 +1,4 @@
(* TEST: [-st] *)
type string: 1 -> character
type a_of_s: 1 -> string

View File

@ -1,16 +0,0 @@
type string: 1 -> character
type a_of_s: 1 -> string
(* maybe some other type definitions *)
entry(arg) := {
[ string: one_name; string: another_name; a_of_s: many_names ]
another_name := reserve another_name(4); (* reserve space for an an array of character, with 4 members *)
many_names := reserve a_of_s(3);
many_names(0) := one_name;
many_names(1) := another_name;
many_names(2) := reserve a_of_s(2)(6); (* reserve space for an item of the same type as a_of_s(2), an array of character, with 6 members *)
many_names(2)(0) := "P";
return 0;
}

View File

@ -1,4 +1,5 @@
type main: string -> integer
(* TEST: [-st] *)
ype main: string -> integer
function entry: main
type rec: [integer: x; integer: y]