DEADSOFTWARE

Переделано присваивание строк и добавлены процедуры COPY, ASSERT и HALT
[dsw-obn.git] / rtl / SYSTEM.java
1 public class SYSTEM
2 {
3 /* Каркас для фреймов процедур */
4 public static abstract class FRAME
5 {
6 public FRAME up;
7 }
9 /* Длинна строки LEN(s$) */
10 public static int LEN(byte[] x)
11 {
12 int i = 0;
13 while(x[i] != 0)
14 {
15 i += 1;
16 }
17 return i;
18 }
20 /* Встроенная процедура COPY(x, v) */
21 public static void COPY(byte[] x, byte[] v)
22 {
23 int len_x = LEN(x);
24 int len_v = v.length - 1;
25 int len = (len_x < len_v) ? (len_x) : (len_v);
26 for(int i = 0; i < len; i++)
27 {
28 v[i] = x[i];
29 }
30 v[len] = 0;
31 }
33 public static void HALT(long n)
34 {
35 System.exit((int) n);
36 }
38 public static void ASSERT(boolean x)
39 {
40 assert x;
41 }
43 public static void ASSERT(boolean x, long n)
44 {
45 assert x : n;
46 }
47 }