996
|
1 PLEASE NOTE: IACC FILE TO GENERATE A COMPILER FOR TRADITIONAL INTERCAL-1972
|
|
2
|
|
3 Copyright (c) 2006-2008 Claudio Calvelli, all rights reserved.
|
|
4
|
|
5 CLC-INTERCAL is copyrighted software. However, permission to use, modify,
|
|
6 and distribute it is granted provided that the conditions set out in the
|
|
7 licence agreement are met. See files README and COPYING in the distribution.
|
|
8
|
|
9 PERVERSION "CLC-INTERCAL INTERCAL/Include/1972.iacc 1.-94.-2"
|
|
10
|
|
11 DO %BA <- #2
|
|
12 DO %RT <- ?TRADITIONAL
|
|
13 DO %WT <- #0
|
|
14 DO %CR <- ?ASCII
|
|
15 DO %CW <- ?ASCII
|
|
16 DO %IO <- ?1972
|
|
17 DO %CF <- #0
|
|
18 DO %RM <- #0
|
|
19 DO ?TYPE <- ?COMPILER
|
|
20 DO CREATE _2 ?PROGRAM ?STATEMENT AS ?STATEMENT #1
|
|
21 DO CREATE _2 ?CALC_EXPR ?EXPRESSION AS STS + * + ROU + #1 +
|
|
22 ?EXPRESSION #1
|
|
23 DO CREATE _2 ?CALC_EXPR ?CALCULATION AS STS + * + ?CALCULATION
|
|
24 #1
|
|
25 DO CREATE _2 ?CALC_FULL ?EXPRESSION AS STS + * + ROU + #1 +
|
|
26 ?EXPRESSION #1
|
|
27 DO CREATE _2 ?CALC_FULL ?STATEMENT AS ?STATEMENT #1
|
|
28 DO CREATE _2 ?END_JUNK ?LABEL AS ,,
|
|
29 DO CREATE _2 ?END_JUNK ?DO_PLEASE AS ,,
|
|
30 DO CREATE _2 ?STATEMENT ?MAYBE_LABEL ?DO_PLEASE ?QUALIFIERS
|
|
31 ?VERB AS STS + * + ?MAYBE_LABEL #1 + ?QUALIFIERS #1 + ?VERB
|
|
32 #1
|
|
33 DO CREATE _2 ?MAYBE_LABEL ,, AS ,,
|
|
34 DO CREATE _2 ?MAYBE_LABEL ?LABEL AS LAB + ?LABEL #1
|
|
35 DO CREATE _2 ?DO_PLEASE ,DO, AS ,,
|
|
36 DO CREATE _2 ?DO_PLEASE ,PLEASE, ?MAYBE_DO AS ,,
|
|
37 DO CREATE _2 ?MAYBE_DO ,, AS ,,
|
|
38 DO CREATE _2 ?MAYBE_DO ,DO, AS ,,
|
|
39 DO CREATE _2 ?QUALIFIERS ,, AS ,,
|
|
40 DO CREATE _2 ?QUALIFIERS ,#37, ?CONSTANT ?QUALIFIERS AS DSX +
|
|
41 ?CONSTANT #1 + ?QUALIFIERS #1
|
|
42 DO CREATE _2 ?QUALIFIERS ,NOT, ?QUALIFIERS AS NOT + ?QUALIFIERS
|
|
43 #1
|
|
44 DO CREATE _2 ?QUALIFIERS ,N, ,#39, ,T, ?QUALIFIERS AS NOT +
|
|
45 ?QUALIFIERS #1
|
|
46 DO CREATE _2 ?VERB ,NOT, ?JUNK AS NOT + MSP + #0 + #1 + ?JUNK
|
|
47 #1
|
|
48 DO CREATE _2 ?VERB ,N, ,#39, ,T, ?JUNK AS NOT + MSP + #0 + #1 +
|
|
49 ?JUNK #1
|
|
50 DO CREATE _2 ?CALCULATION ?LVALUE ,#60, ,#45, ?EXPRESSION AS
|
|
51 STO + ?EXPRESSION #1 + ?LVALUE #1
|
|
52 DO CREATE _2 ?CALCULATION ?ARRAY ,#60, ,#45, ?DIMENSION AS STO
|
|
53 + MUL + !DIMENSION #1 + ?DIMENSION #1 + ?ARRAY #1
|
|
54 DO CREATE _2 ?VERB ?CALCULATION AS ?CALCULATION #1
|
|
55 DO CREATE _2 ?GERUND ,CALCULATING,=1 AS STO
|
|
56 DO CREATE _2 ?VERB ?LABEL ,NEXT, AS NXT + ?LABEL #1
|
|
57 DO CREATE _2 ?GERUND ,NEXTING,=1 AS NXT
|
|
58 DO CREATE _2 ?VERB ,RESUME, ?EXPRESSION AS RES + ?EXPRESSION #1
|
|
59 DO CREATE _2 ?GERUND ,RESUMING,=1 AS RES
|
|
60 DO CREATE _2 ?VERB ,FORGET, ?EXPRESSION AS FOR + ?EXPRESSION #1
|
|
61 DO CREATE _2 ?GERUND ,FORGETTING,=1 AS FOR
|
|
62 DO CREATE _2 ?VERB ,STASH, ?STASHNAMES AS STA + !STASHNAMES #1
|
|
63 + ?STASHNAMES #1
|
|
64 DO CREATE _2 ?GERUND ,STASHING,=1 AS STA
|
|
65 DO CREATE _2 ?VERB ,RETRIEVE, ?NAMES AS RET + !NAMES #1 +
|
|
66 ?NAMES #1
|
|
67 DO CREATE _2 ?GERUND ,RETRIEVING,=1 AS RET
|
|
68 DO CREATE _2 ?VERB ,IGNORE, ?NAMES AS IGN + !NAMES #1 + ?NAMES
|
|
69 #1
|
|
70 DO CREATE _2 ?GERUND ,IGNORING,=1 AS IGN
|
|
71 DO CREATE _2 ?VERB ,REMEMBER, ?NAMES AS REM + !NAMES #1 +
|
|
72 ?NAMES #1
|
|
73 DO CREATE _2 ?GERUND ,REMEMBERING,=1 AS REM
|
|
74 DO CREATE _2 ?VERB ,ABSTAIN, ,FROM, ?ABSTAIN AS ?ABSTAIN #1
|
|
75 DO CREATE _2 ?ABSTAIN ?LABEL AS ABL + ?LABEL #1
|
|
76 DO CREATE _2 ?ABSTAIN ?GERUNDS AS ABG + !GERUNDS #1 + ?GERUNDS
|
|
77 #1
|
|
78 DO CREATE _2 ?GERUND ,ABSTAINING,=2 AS ABL + ABG
|
|
79 DO CREATE _2 ?VERB ,REINSTATE, ?REINSTATE AS ?REINSTATE #1
|
|
80 DO CREATE _2 ?REINSTATE ?LABEL AS REL + ?LABEL #1
|
|
81 DO CREATE _2 ?REINSTATE ?GERUNDS AS REG + !GERUNDS #1 +
|
|
82 ?GERUNDS #1
|
|
83 DO CREATE _2 ?GERUND ,REINSTATING,=2 AS REL + REG
|
|
84 DO CREATE _2 ?GERUNDS ?GERUND=* AS ?GERUND #1
|
|
85 DO CREATE _2 ?GERUNDS ?GERUND=* ,#43, ?GERUNDS=* AS ?GERUND #1
|
|
86 + ?GERUNDS #1
|
|
87 DO CREATE _2 ?VERB ,GIVE, ,UP, AS GUP
|
|
88 DO CREATE _2 ?VERB ,WRITE, ,IN, ?LVALUES AS WIN + !LVALUES #1 +
|
|
89 ?LVALUES #1
|
|
90 DO CREATE _2 ?GERUND ,WRITING, ,IN,=1 AS WIN
|
|
91 DO CREATE _2 ?VERB ,READ, ,OUT, ?RVALUES AS ROU + !RVALUES #1 +
|
|
92 ?RVALUES #1
|
|
93 DO CREATE _2 ?GERUND ,READING, ,OUT,=1 AS ROU
|
|
94 DO CREATE _2 ?NAME ?RNAME AS ?RNAME #1
|
|
95 DO CREATE _2 ?NAME ?ARRAY AS ?ARRAY #1
|
|
96 DO CREATE _2 ?NAMES ?NAME=1 AS ?NAME #1
|
|
97 DO CREATE _2 ?NAMES ?NAME=1 ,#43, ?NAMES=* AS ?NAME #1 + ?NAMES
|
|
98 #1
|
|
99 DO CREATE _2 ?STASHNAMES ?NAME=1 AS ?NAME #1
|
|
100 DO CREATE _2 ?STASHNAMES ?NAME=1 ,#43, ?STASHNAMES=* AS ?NAME
|
|
101 #1 + ?STASHNAMES #1
|
|
102 DO CREATE _2 ?LVALUE ?RNAME AS ?RNAME #1
|
|
103 DO CREATE _2 ?LVALUE ?LELEMENT AS ?LELEMENT #1
|
|
104 DO CREATE _2 ?LVALUES ?LVALUE=1 AS ?LVALUE #1
|
|
105 DO CREATE _2 ?LVALUES ?LVALUE=1 ,#43, ?LVALUES=* AS ?LVALUE #1
|
|
106 + ?LVALUES #1
|
|
107 DO CREATE _2 ?RVALUE ?EXPRESSION AS ?EXPRESSION #1
|
|
108 DO CREATE _2 ?RVALUES ?RVALUE=1 AS ?RVALUE #1
|
|
109 DO CREATE _2 ?RVALUES ?RVALUE=1 ,#43, ?RVALUES=* AS ?RVALUE #1
|
|
110 + ?RVALUES #1
|
|
111 DO CREATE _2 ?REGISTER ,#46, ?UNARIES ?CONSTANT AS ?UNARIES #1
|
|
112 + SPO + ?CONSTANT #1
|
|
113 DO CREATE _2 ?REGISTER ,#58, ?UNARIES ?CONSTANT AS ?UNARIES #1
|
|
114 + TSP + ?CONSTANT #1
|
|
115 DO CREATE _2 ?RNAME ,#46, ?CONSTANT AS SPO + ?CONSTANT #1
|
|
116 DO CREATE _2 ?RNAME ,#58, ?CONSTANT AS TSP + ?CONSTANT #1
|
|
117 DO CREATE _2 ?ARRAY ,#44, ?CONSTANT AS TAI + ?CONSTANT #1
|
|
118 DO CREATE _2 ?ARRAY ,#59, ?CONSTANT AS HYB + ?CONSTANT #1
|
|
119 DO CREATE _2 ?ELEMENT ,#44, ?UNARIES ?CONSTANT ?SUBSCRIPTS AS
|
|
120 ?UNARIES #1 + ?SUBSCRIPTS #1 + TAI + ?CONSTANT #1
|
|
121 DO CREATE _2 ?ELEMENT ,#59, ?UNARIES ?CONSTANT ?SUBSCRIPTS AS
|
|
122 ?UNARIES #1 + ?SUBSCRIPTS #1 + HYB + ?CONSTANT #1
|
|
123 DO CREATE _2 ?LELEMENT ,#44, ?CONSTANT ?SUBSCRIPTS AS
|
|
124 ?SUBSCRIPTS #1 + TAI + ?CONSTANT #1
|
|
125 DO CREATE _2 ?LELEMENT ,#59, ?CONSTANT ?SUBSCRIPTS AS
|
|
126 ?SUBSCRIPTS #1 + HYB + ?CONSTANT #1
|
|
127 DO CREATE _2 ?SUBSCRIPTS ,SUB, ?EXPRESSION ?MORE_SUBSCRIPTS AS
|
|
128 ?MORE_SUBSCRIPTS #1 + SUB + ?EXPRESSION #1
|
|
129 DO CREATE _2 ?MORE_SUBSCRIPTS ,, AS ,,
|
|
130 DO CREATE _2 ?MORE_SUBSCRIPTS ,SUB, ?EXPRESSION
|
|
131 ?MORE_SUBSCRIPTS AS ?MORE_SUBSCRIPTS #1 + SUB + ?EXPRESSION
|
|
132 #1
|
|
133 DO CREATE _2 ?NONUNARIES ?REGISTER AS ?REGISTER #1
|
|
134 DO CREATE _2 ?NONUNARIES ?ELEMENT AS ?ELEMENT #1
|
|
135 DO CREATE _2 ?NONUNARIES ,#35, ?UNARIES ?CONSTANT AS ?UNARIES
|
|
136 #1 + ?CONSTANT #1
|
|
137 DO CREATE _2 ?NONUNARIES ,#39, ?UNARIES ?EXPRESSION ,#39, AS
|
|
138 ?UNARIES #1 + ?EXPRESSION #1
|
|
139 DO CREATE _2 ?NONUNARIES ,#34, ?UNARIES ?EXPRESSION ,#34, AS
|
|
140 ?UNARIES #1 + ?EXPRESSION #1
|
|
141 DO CREATE _2 ?BANG ,#33, ?UNARIES ?CONSTANT AS ?UNARIES #1 +
|
|
142 SPO + ?CONSTANT #1
|
|
143 DO CREATE _2 ?NONUNARIES ?BANG ?MAYBE_BINARY ,#39, AS
|
|
144 ?MAYBE_BINARY #1 + ?BANG #1
|
|
145 DO CREATE _2 ?RABBIT ,#34 + #8 + #46, ?UNARIES ?CONSTANT AS
|
|
146 ?UNARIES #1 + SPO + ?CONSTANT #1
|
|
147 DO CREATE _2 ?NONUNARIES ?RABBIT ?MAYBE_BINARY ,#34, AS
|
|
148 ?MAYBE_BINARY #1 + ?RABBIT #1
|
|
149 DO CREATE _2 ?EXPRESSION ?NONUNARIES ?MAYBE_BINARY AS
|
|
150 ?MAYBE_BINARY #1 + ?NONUNARIES #1
|
|
151 DO CREATE _2 ?MAYBE_BINARY ,, AS ,,
|
|
152 DO CREATE _2 ?MAYBE_BINARY ?BINARY ?EXPRESSION AS ?BINARY #1 +
|
|
153 ?EXPRESSION #1
|
|
154 DO CREATE _2 ?UNARIES ,, AS ,,
|
|
155 DO CREATE _2 ?UNARIES ?UNARY ?UNARIES AS ?UNARY #1 + ?UNARIES
|
|
156 #1
|
|
157 DO CREATE _2 ?UNARY ,V, AS BUT + #7
|
|
158 DO CREATE _2 ?UNARY ,#38, AS BUT + #0
|
|
159 DO CREATE _2 ?UNARY ,#86 + #8 + #45, AS SWB
|
|
160 DO CREATE _2 ?UNARY ,#165, AS SWB
|
|
161 DO CREATE _2 ?BINARY ,#126, AS RSE
|
|
162 DO CREATE _2 ?BINARY ,#67 + #8 + #47, AS RIN
|
|
163 DO CREATE _2 ?BINARY ,#67 + #8 + #124, AS RIN
|
|
164 DO CREATE _2 ?BINARY ,#162, AS RIN
|
|
165 DO CREATE _2 ?DIMENSION ?EXPRESSION=1 AS ?EXPRESSION #1
|
|
166 DO CREATE _2 ?DIMENSION ?EXPRESSION=1 ,BY, ?DIMENSION=* AS
|
|
167 ?EXPRESSION #1 + ?DIMENSION #1
|
|
168 DO CREATE _2 ?LABEL ,#40, ?CONSTANT ,#41, AS ?CONSTANT #1
|
|
169
|
|
170 DO GIVE UP
|