1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- MODULE Dev0Interp;
- (*
- A. V. Shiryaev, 2012.10
- *)
- IMPORT Console, HostConsole (* required *), Strings, Dialog, StdInterpreter (* required (Dialog.SetCallHook) *);
- PROCEDURE WriteInt (x: INTEGER);
- VAR s: ARRAY 16 OF CHAR;
- BEGIN
- Strings.IntToString(x, s);
- Console.WriteStr(s)
- END WriteInt;
- PROCEDURE Call (VAR s: ARRAY OF CHAR): BOOLEAN;
- VAR i: INTEGER;
- res: BOOLEAN;
- BEGIN
- i := 0;
- WHILE (i < LEN(s)) & (s[i] # 0AX) & (s[i] # 0DX) & (s[i] # 0X) DO
- INC(i)
- END;
- IF (i < LEN(s)) & (s[i] # 0X) THEN
- IF (i > 0) & (s[0] # '#') THEN
- s[i] := 0X;
- Dialog.Call(s, "", i);
- IF i = 0 THEN
- res := TRUE
- ELSE
- WriteInt(i); Console.WriteLn;
- res := FALSE (* stop on Dialog.Call error *)
- END
- ELSE (* skip empty strings and comments *)
- res := TRUE
- END
- ELSE (* end of input *)
- res := FALSE
- END;
- RETURN res
- END Call;
- PROCEDURE Init;
- VAR s: ARRAY 1024 OF CHAR;
- BEGIN
- (* Dialog.SetLanguage("", FALSE); *)
- Console.ReadLn(s);
- WHILE Call(s) DO
- Console.ReadLn(s)
- END
- END Init;
- BEGIN
- Init
- END Dev0Interp.
|