Merge pull request #68 from UB-CSE443/array_type_check

working on making sure arrays and reserve/release are working properly
This commit is contained in:
Moroseui
2025-05-05 03:58:15 -04:00
committed by GitHub
3 changed files with 216 additions and 27 deletions

View File

@ -0,0 +1,27 @@
type string: 1 -> character
type a_of_s: 1 -> string
type main: integer -> integer
function entry: main
(* maybe some other type definitions *)
entry(arg) := {
[ string: one_name; string: another_name; a_of_s: many_names ]
one_name := "a string literal";
another_name := reserve another_name(4); (* reserve space for an an array of character, with 4 members *)
another_name(0) := 'C';
another_name(1) := 'a';
another_name(2) := 'r';
another_name(3) := 'l';
many_names := reserve many_names(3);
many_names(0) := one_name;
many_names(1) := another_name;
many_names(2) := reserve many_names(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';
many_names(2)(1) := 'a';
many_names(2)(2) := 'r';
many_names(2)(3) := 't';
many_names(2)(4) := 'h';
many_names(2)(5) := 'o';
return 0;
}