DEADSOFTWARE

Port, TODO
[bbcp.git] / new / Dev0 / Mod / Interp.txt
1 MODULE Dev0Interp;
3 (*
4 A. V. Shiryaev, 2012.10
5 *)
7 IMPORT Console, HostConsole (* required *), Strings, Dialog, StdInterpreter (* required (Dialog.SetCallHook) *);
9 PROCEDURE WriteInt (x: INTEGER);
10 VAR s: ARRAY 16 OF CHAR;
11 BEGIN
12 Strings.IntToString(x, s);
13 Console.WriteStr(s)
14 END WriteInt;
16 PROCEDURE Call (VAR s: ARRAY OF CHAR): BOOLEAN;
17 VAR i: INTEGER;
18 res: BOOLEAN;
19 BEGIN
20 i := 0;
21 WHILE (i < LEN(s)) & (s[i] # 0AX) & (s[i] # 0DX) & (s[i] # 0X) DO
22 INC(i)
23 END;
24 IF (i < LEN(s)) & (s[i] # 0X) THEN
25 IF (i > 0) & (s[0] # '#') THEN
26 s[i] := 0X;
27 Dialog.Call(s, "", i);
28 IF i = 0 THEN
29 res := TRUE
30 ELSE
31 WriteInt(i); Console.WriteLn;
32 res := FALSE (* stop on Dialog.Call error *)
33 END
34 ELSE (* skip empty strings and comments *)
35 res := TRUE
36 END
37 ELSE (* end of input *)
38 res := FALSE
39 END;
40 RETURN res
41 END Call;
43 PROCEDURE Init;
44 VAR s: ARRAY 1024 OF CHAR;
45 BEGIN
46 (* Dialog.SetLanguage("", FALSE); *)
48 Console.ReadLn(s);
49 WHILE Call(s) DO
50 Console.ReadLn(s)
51 END
52 END Init;
54 BEGIN
55 Init
56 END Dev0Interp.