DEADSOFTWARE

Добавлены строки в отладочную информацию класса (быстрохак)
[dsw-obn.git] / tools / Coco / Parser.FRM
1 (* parser module generated by Coco-R *)
2 MODULE -->modulename;
4 IMPORT -->scanner;
6 CONST
7 -->constants
8 setSize = 32; nSets = (maxT DIV setSize) + 1;
10 TYPE
11 SymbolSet = ARRAY nSets OF SET;
13 VAR
14 sym: INTEGER; (* current input symbol *)
15 symSet: ARRAY nrSets OF SymbolSet;
17 -->declarations
19 PROCEDURE Error (n: INTEGER);
20 BEGIN -->errors
21 END Error;
23 PROCEDURE Get;
24 BEGIN
25 -->scanProc
26 END Get;
28 PROCEDURE Expect(n: INTEGER);
29 BEGIN IF sym = n THEN Get ELSE Error(n) END
30 END Expect;
32 PROCEDURE StartOf(s: INTEGER): BOOLEAN;
33 BEGIN RETURN (sym MOD setSize) IN symSet[s, sym DIV setSize]
34 END StartOf;
36 PROCEDURE ExpectWeak(n, follow: INTEGER);
37 BEGIN
38 IF sym = n THEN Get
39 ELSE Error(n); WHILE ~ StartOf(follow) DO Get END
40 END
41 END ExpectWeak;
43 PROCEDURE WeakSeparator(n, syFol, repFol: INTEGER): BOOLEAN;
44 VAR s: SymbolSet; i: INTEGER;
45 BEGIN
46 IF sym = n THEN Get; RETURN TRUE
47 ELSIF StartOf(repFol) THEN RETURN FALSE
48 ELSE
49 i := 0; WHILE i < nSets DO s[i] := symSet[syFol, i] + symSet[repFol, i] + symSet[0, i]; INC(i) END;
50 Error(n); WHILE ~ ((sym MOD setSize) IN s[sym DIV setSize]) DO Get END;
51 RETURN StartOf(syFol)
52 END
53 END WeakSeparator;
55 -->productions
57 PROCEDURE Parse*;
58 BEGIN
59 Get;
60 -->parseRoot
61 END Parse;
63 BEGIN
64 -->initialization
65 END -->modulename.