MODULE Test;
- TYPE
- CPinfo = RECORD
- tag : INTEGER;
- index : ARRAY 2 OF LONGINT;
- int : LONGINT;
- float : REAL;
- long : HUGEINT;
- double : LONGREAL;
- utf8 : POINTER TO ARRAY OF CHAR;
- END;
-
- CPool = POINTER TO ARRAY OF CPinfo;
-
- VAR
- i : HUGEINT;
- cpool : CPool;
-
-BEGIN
- i := 16;
- NEW(cpool, i);
END Test.
#!/bin/sh
+CompilerSources()
+{
+ find src -name '*.c' -or -name '*.h'
+}
+
+RuntimeSources()
+{
+ find rtl -name '*.java' -or -name '*.obn'
+}
+
+TestsSources()
+{
+ find tests -name '*.obn'
+}
+
+OctaoxygenSources()
+{
+ find octaoxygen -name '*.obn' -or -name '*.Mod'
+}
+
echo Compiler Sources:
-wc -l $(find . -name '*.c' -or -name '*.h')
+wc -l $(CompilerSources)
echo
echo Runtime Library:
-wc -l $(find rtl -name '*.java' -or -name '*.obn')
+wc -l $(RuntimeSources)
echo
echo Tests:
-wc -l $(find tests -name '*.obn')
+wc -l $(TestsSources)
+
+echo
+echo Octaoxygen:
+wc -l $(OctaoxygenSources)
echo
echo Total:
-wc -l $(find . -name '*.c' -or -name '*.h' -or -name '*.java' -or -name '*.obn') | grep total
+wc -l $(CompilerSources) $(RuntimeSources) $(TestsSources) $(OctaoxygenSources) | grep total
makecomp Test23A
makefail Test23B
+
+maketest Test24
p = proc -> gen_proc;
- jvm_generate_staticlinks_recursive(p, proc -> parent, p -> level);
+ jvm_generate_staticlinks_recursive(p, proc -> parent, p -> level - 1);
}
static void
size_t sz = sizeof(*p -> reg_frame) * max_frames;
p -> max_frames = max_frames;
p -> reg_frame = GC_MALLOC(sz);
- memset(p -> reg_frame, 0, sz);
+ memset(p -> reg_frame, 255, sz);
p -> level = max_frames - 1;
- jvm_create_staticlinks_recursive(p, proc -> parent, p -> level);
+
+ jvm_create_staticlinks_recursive(p, proc -> parent, p -> level - 1);
}
static void
--- /dev/null
+MODULE Test24;
+
+IMPORT Out;
+
+PROCEDURE W;
+ PROCEDURE Z;
+ PROCEDURE Y;
+ PROCEDURE X;
+ BEGIN (* X *)
+ X; Y; Z; W;
+ END X;
+ BEGIN (* Y *)
+ X; Y; Z; W;
+ END Y;
+ BEGIN (* Z *)
+ Y; Z; W;
+ END Z;
+BEGIN (* W *)
+ Z; W;
+END W;
+
+END Test24.
+
+Проверка вложенных процедур.
+Должно как компилироваться, так и проходить верификацию в рантайме.