xref: /OpenGrok/opengrok-indexer/src/test/resources/analysis/eiffel/sample.e (revision eeb7e5b33d1bcc524fcc9d1d560447b044e286a4)
1*eeb7e5b3SAdam Hornáček-- All source code and binary programs included in Gobo Eiffel
2*eeb7e5b3SAdam Hornáček-- are distributed under the terms and conditions of the MIT
3*eeb7e5b3SAdam Hornáček-- License:
4*eeb7e5b3SAdam Hornáček--
5*eeb7e5b3SAdam Hornáček--     The MIT License
6*eeb7e5b3SAdam Hornáček--
7*eeb7e5b3SAdam Hornáček--     Copyright (c) <year> <copyright holders>
8*eeb7e5b3SAdam Hornáček--
9*eeb7e5b3SAdam Hornáček--     Permission is hereby granted, free of charge, to any person obtaining
10*eeb7e5b3SAdam Hornáček--     a copy of this software and associated documentation files (the
11*eeb7e5b3SAdam Hornáček--     "Software"), to deal in the Software without restriction, including
12*eeb7e5b3SAdam Hornáček--     without limitation the rights to use, copy, modify, merge, publish,
13*eeb7e5b3SAdam Hornáček--     distribute, sublicense, and/or sell copies of the Software, and to
14*eeb7e5b3SAdam Hornáček--     permit persons to whom the Software is furnished to do so, subject to
15*eeb7e5b3SAdam Hornáček--     the following conditions:
16*eeb7e5b3SAdam Hornáček--
17*eeb7e5b3SAdam Hornáček--     The above copyright notice and this permission notice shall be included
18*eeb7e5b3SAdam Hornáček--     in all copies or substantial portions of the Software.
19*eeb7e5b3SAdam Hornáček--
20*eeb7e5b3SAdam Hornáček--     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21*eeb7e5b3SAdam Hornáček--     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22*eeb7e5b3SAdam Hornáček--     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23*eeb7e5b3SAdam Hornáček--     IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24*eeb7e5b3SAdam Hornáček--     CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25*eeb7e5b3SAdam Hornáček--     TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26*eeb7e5b3SAdam Hornáček--     SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27*eeb7e5b3SAdam Hornáček--
28*eeb7e5b3SAdam Hornáček-- This license is an OSI Approved License:
29*eeb7e5b3SAdam Hornáček--
30*eeb7e5b3SAdam Hornáček--     http://opensource.org/licenses/mit-license.html
31*eeb7e5b3SAdam Hornáček--
32*eeb7e5b3SAdam Hornáček-- and a GPL-Compatible Free Software License:
33*eeb7e5b3SAdam Hornáček--
34*eeb7e5b3SAdam Hornáček--     http://www.gnu.org/licenses/license-list.html#X11License
35*eeb7e5b3SAdam Hornáček--
36*eeb7e5b3SAdam Hornáček-- --
37*eeb7e5b3SAdam Hornáček-- Copyright (c) 1997-2007, Eric Bezault and others
38*eeb7e5b3SAdam Hornáček
39*eeb7e5b3SAdam Hornáčeknote
40*eeb7e5b3SAdam Hornáček
41*eeb7e5b3SAdam Hornáček	description:
42*eeb7e5b3SAdam Hornáček
43*eeb7e5b3SAdam Hornáček		"Scanners for config files made up of name/value pairs and preprocessor instructions"
44*eeb7e5b3SAdam Hornáček
45*eeb7e5b3SAdam Hornáček	copyright: "Copyright (c) 2007-2013, Eric Bezault and others"
46*eeb7e5b3SAdam Hornáček	license: "MIT License"
47*eeb7e5b3SAdam Hornáček	date: "$Date$"
48*eeb7e5b3SAdam Hornáček	revision: "$Revision$"
49*eeb7e5b3SAdam Hornáček	note0: "http://example.com"
50*eeb7e5b3SAdam Hornáček	note1: "[http://example.com]"
51*eeb7e5b3SAdam Hornáček	note2: "{http://example.com}"
52*eeb7e5b3SAdam Hornáček	note3: "xx{http://example.com}xx"
53*eeb7e5b3SAdam Hornáček	note4: "xx[http://example.com]xx"
54*eeb7e5b3SAdam Hornáček
55*eeb7e5b3SAdam Hornáčekdeferred class UT_CONFIG_SCANNER
56*eeb7e5b3SAdam Hornáček
57*eeb7e5b3SAdam Hornáčekinherit
58*eeb7e5b3SAdam Hornáček
59*eeb7e5b3SAdam Hornáček	YY_COMPRESSED_SCANNER_SKELETON
60*eeb7e5b3SAdam Hornáček		rename
61*eeb7e5b3SAdam Hornáček			make as make_compressed_scanner_skeleton,
62*eeb7e5b3SAdam Hornáček			reset as reset_compressed_scanner_skeleton
63*eeb7e5b3SAdam Hornáček		redefine
64*eeb7e5b3SAdam Hornáček			wrap, output
65*eeb7e5b3SAdam Hornáček		end
66*eeb7e5b3SAdam Hornáček
67*eeb7e5b3SAdam Hornáček	UT_CONFIG_TOKENS
68*eeb7e5b3SAdam Hornáček		export {NONE} all end
69*eeb7e5b3SAdam Hornáček
70*eeb7e5b3SAdam Hornáček
71*eeb7e5b3SAdam Hornáčekfeature -- Status report
72*eeb7e5b3SAdam Hornáček
73*eeb7e5b3SAdam Hornáček	valid_start_condition (sc: INTEGER): BOOLEAN
74*eeb7e5b3SAdam Hornáček			-- Is `sc' a valid start condition?
75*eeb7e5b3SAdam Hornáček		do
76*eeb7e5b3SAdam Hornáček			Result := (INITIAL <= sc and sc <= S_EMPTY_LINE)
77*eeb7e5b3SAdam Hornáček		end
78*eeb7e5b3SAdam Hornáček
79*eeb7e5b3SAdam Hornáčekfeature {NONE} -- Implementation
80*eeb7e5b3SAdam Hornáček
81*eeb7e5b3SAdam Hornáček	yy_build_tables
82*eeb7e5b3SAdam Hornáček			-- Build scanner tables.
83*eeb7e5b3SAdam Hornáček		do
84*eeb7e5b3SAdam Hornáček			yy_nxt := yy_nxt_template
85*eeb7e5b3SAdam Hornáček			yy_chk := yy_chk_template
86*eeb7e5b3SAdam Hornáček			yy_base := yy_base_template
87*eeb7e5b3SAdam Hornáček			yy_def := yy_def_template
88*eeb7e5b3SAdam Hornáček			yy_ec := yy_ec_template
89*eeb7e5b3SAdam Hornáček			yy_meta := yy_meta_template
90*eeb7e5b3SAdam Hornáček			yy_accept := yy_accept_template
91*eeb7e5b3SAdam Hornáček		end
92*eeb7e5b3SAdam Hornáček
93*eeb7e5b3SAdam Hornáček	yy_execute_action (yy_act: INTEGER)
94*eeb7e5b3SAdam Hornáček			-- Execute semantic action.
95*eeb7e5b3SAdam Hornáček		do
96*eeb7e5b3SAdam Hornáček			inspect yy_act
97*eeb7e5b3SAdam Hornáčekwhen 1, 2 then
98*eeb7e5b3SAdam Hornáček--|#line 40 "ut_config_scanner.l"
99*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
100*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 40")
101*eeb7e5b3SAdam Hornáčekend
102*eeb7e5b3SAdam Hornáček
103*eeb7e5b3SAdam Hornáček						-- Comment.
104*eeb7e5b3SAdam Hornáček						set_start_condition (S_SKIP_EOL)
105*eeb7e5b3SAdam Hornáček
106*eeb7e5b3SAdam Hornáčekwhen 3 then
107*eeb7e5b3SAdam Hornáček--|#line 45 "ut_config_scanner.l"
108*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
109*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 45")
110*eeb7e5b3SAdam Hornáčekend
111*eeb7e5b3SAdam Hornáček
112*eeb7e5b3SAdam Hornáček						last_token := P_IFDEF
113*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
114*eeb7e5b3SAdam Hornáček
115*eeb7e5b3SAdam Hornáčekwhen 4 then
116*eeb7e5b3SAdam Hornáček--|#line 49 "ut_config_scanner.l"
117*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
118*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 49")
119*eeb7e5b3SAdam Hornáčekend
120*eeb7e5b3SAdam Hornáček
121*eeb7e5b3SAdam Hornáček						last_token := P_IFNDEF
122*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
123*eeb7e5b3SAdam Hornáček
124*eeb7e5b3SAdam Hornáčekwhen 5 then
125*eeb7e5b3SAdam Hornáček--|#line 53 "ut_config_scanner.l"
126*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
127*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 53")
128*eeb7e5b3SAdam Hornáčekend
129*eeb7e5b3SAdam Hornáček
130*eeb7e5b3SAdam Hornáček						last_token := P_ELSE
131*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
132*eeb7e5b3SAdam Hornáček
133*eeb7e5b3SAdam Hornáčekwhen 6 then
134*eeb7e5b3SAdam Hornáček--|#line 57 "ut_config_scanner.l"
135*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
136*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 57")
137*eeb7e5b3SAdam Hornáčekend
138*eeb7e5b3SAdam Hornáček
139*eeb7e5b3SAdam Hornáček						last_token := P_ENDIF
140*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
141*eeb7e5b3SAdam Hornáček
142*eeb7e5b3SAdam Hornáčekwhen 7 then
143*eeb7e5b3SAdam Hornáček--|#line 61 "ut_config_scanner.l"
144*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
145*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 61")
146*eeb7e5b3SAdam Hornáčekend
147*eeb7e5b3SAdam Hornáček
148*eeb7e5b3SAdam Hornáček						last_token := P_INCLUDE
149*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
150*eeb7e5b3SAdam Hornáček
151*eeb7e5b3SAdam Hornáčekwhen 8 then
152*eeb7e5b3SAdam Hornáček--|#line 65 "ut_config_scanner.l"
153*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
154*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 65")
155*eeb7e5b3SAdam Hornáčekend
156*eeb7e5b3SAdam Hornáček
157*eeb7e5b3SAdam Hornáček						last_token := P_DEFINE
158*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
159*eeb7e5b3SAdam Hornáček
160*eeb7e5b3SAdam Hornáčekwhen 9 then
161*eeb7e5b3SAdam Hornáček--|#line 69 "ut_config_scanner.l"
162*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
163*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 69")
164*eeb7e5b3SAdam Hornáčekend
165*eeb7e5b3SAdam Hornáček
166*eeb7e5b3SAdam Hornáček						last_token := P_UNDEF
167*eeb7e5b3SAdam Hornáček						set_start_condition (S_PREPROC)
168*eeb7e5b3SAdam Hornáček
169*eeb7e5b3SAdam Hornáčekwhen 10 then
170*eeb7e5b3SAdam Hornáček--|#line 73 "ut_config_scanner.l"
171*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
172*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 73")
173*eeb7e5b3SAdam Hornáčekend
174*eeb7e5b3SAdam Hornáček
175*eeb7e5b3SAdam Hornáček						last_token := P_NAME
176*eeb7e5b3SAdam Hornáček						last_string_value := text
177*eeb7e5b3SAdam Hornáček						check attached last_string_value as l_last_string_value then
178*eeb7e5b3SAdam Hornáček							STRING_.left_adjust (l_last_string_value)
179*eeb7e5b3SAdam Hornáček						end
180*eeb7e5b3SAdam Hornáček						set_start_condition (S_NAME)
181*eeb7e5b3SAdam Hornáček
182*eeb7e5b3SAdam Hornáčekwhen 11 then
183*eeb7e5b3SAdam Hornáček--|#line 81 "ut_config_scanner.l"
184*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
185*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 81")
186*eeb7e5b3SAdam Hornáčekend
187*eeb7e5b3SAdam Hornáček
188*eeb7e5b3SAdam Hornáček						last_token := P_EOL
189*eeb7e5b3SAdam Hornáček						line_nb := line_nb + 1
190*eeb7e5b3SAdam Hornáček
191*eeb7e5b3SAdam Hornáčekwhen 12 then
192*eeb7e5b3SAdam Hornáček--|#line 85 "ut_config_scanner.l"
193*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
194*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 85")
195*eeb7e5b3SAdam Hornáčekend
196*eeb7e5b3SAdam Hornáček
197*eeb7e5b3SAdam Hornáček						set_start_condition (S_EMPTY_LINE)
198*eeb7e5b3SAdam Hornáček
199*eeb7e5b3SAdam Hornáčekwhen 13 then
200*eeb7e5b3SAdam Hornáček--|#line 91 "ut_config_scanner.l"
201*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
202*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 91")
203*eeb7e5b3SAdam Hornáčekend
204*eeb7e5b3SAdam Hornáček
205*eeb7e5b3SAdam Hornáček						line_nb := line_nb + 1
206*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
207*eeb7e5b3SAdam Hornáček
208*eeb7e5b3SAdam Hornáčekwhen 14 then
209*eeb7e5b3SAdam Hornáček--|#line 95 "ut_config_scanner.l"
210*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
211*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 95")
212*eeb7e5b3SAdam Hornáčekend
213*eeb7e5b3SAdam Hornáček
214*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
215*eeb7e5b3SAdam Hornáček
216*eeb7e5b3SAdam Hornáčekwhen 15 then
217*eeb7e5b3SAdam Hornáček--|#line 101 "ut_config_scanner.l"
218*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
219*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 101")
220*eeb7e5b3SAdam Hornáčekend
221*eeb7e5b3SAdam Hornáček-- Separator.
222*eeb7e5b3SAdam Hornáčekwhen 16 then
223*eeb7e5b3SAdam Hornáček--|#line 102 "ut_config_scanner.l"
224*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
225*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 102")
226*eeb7e5b3SAdam Hornáčekend
227*eeb7e5b3SAdam Hornáček
228*eeb7e5b3SAdam Hornáček						last_token := P_STRING
229*eeb7e5b3SAdam Hornáček						last_string_value := text_substring (2, text_count - 1)
230*eeb7e5b3SAdam Hornáček
231*eeb7e5b3SAdam Hornáčekwhen 17 then
232*eeb7e5b3SAdam Hornáček--|#line 106 "ut_config_scanner.l"
233*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
234*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 106")
235*eeb7e5b3SAdam Hornáčekend
236*eeb7e5b3SAdam Hornáček
237*eeb7e5b3SAdam Hornáček						last_token := P_NAME
238*eeb7e5b3SAdam Hornáček						last_string_value := text
239*eeb7e5b3SAdam Hornáček
240*eeb7e5b3SAdam Hornáčekwhen 18 then
241*eeb7e5b3SAdam Hornáček--|#line 110 "ut_config_scanner.l"
242*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
243*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 110")
244*eeb7e5b3SAdam Hornáčekend
245*eeb7e5b3SAdam Hornáčeklast_token := P_AND
246*eeb7e5b3SAdam Hornáčekwhen 19 then
247*eeb7e5b3SAdam Hornáček--|#line 111 "ut_config_scanner.l"
248*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
249*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 111")
250*eeb7e5b3SAdam Hornáčekend
251*eeb7e5b3SAdam Hornáčeklast_token := P_OR
252*eeb7e5b3SAdam Hornáčekwhen 20 then
253*eeb7e5b3SAdam Hornáček--|#line 112 "ut_config_scanner.l"
254*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
255*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 112")
256*eeb7e5b3SAdam Hornáčekend
257*eeb7e5b3SAdam Hornáček
258*eeb7e5b3SAdam Hornáček						last_token := P_EOL
259*eeb7e5b3SAdam Hornáček						line_nb := line_nb + 1
260*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
261*eeb7e5b3SAdam Hornáček
262*eeb7e5b3SAdam Hornáčekwhen 21 then
263*eeb7e5b3SAdam Hornáček--|#line 124 "ut_config_scanner.l"
264*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
265*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 124")
266*eeb7e5b3SAdam Hornáčekend
267*eeb7e5b3SAdam Hornáček-- Separator.
268*eeb7e5b3SAdam Hornáčekwhen 22 then
269*eeb7e5b3SAdam Hornáček--|#line 125 "ut_config_scanner.l"
270*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
271*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 125")
272*eeb7e5b3SAdam Hornáčekend
273*eeb7e5b3SAdam Hornáček
274*eeb7e5b3SAdam Hornáček						last_token := P_COLON
275*eeb7e5b3SAdam Hornáček						set_start_condition (S_VALUE)
276*eeb7e5b3SAdam Hornáček
277*eeb7e5b3SAdam Hornáčekwhen 23 then
278*eeb7e5b3SAdam Hornáček--|#line 132 "ut_config_scanner.l"
279*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
280*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 132")
281*eeb7e5b3SAdam Hornáčekend
282*eeb7e5b3SAdam Hornáček-- Separator.
283*eeb7e5b3SAdam Hornáčekwhen 24 then
284*eeb7e5b3SAdam Hornáček--|#line 133 "ut_config_scanner.l"
285*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
286*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 133")
287*eeb7e5b3SAdam Hornáčekend
288*eeb7e5b3SAdam Hornáček
289*eeb7e5b3SAdam Hornáček						last_token := P_VALUE
290*eeb7e5b3SAdam Hornáček						last_string_value := text
291*eeb7e5b3SAdam Hornáček
292*eeb7e5b3SAdam Hornáčekwhen 25 then
293*eeb7e5b3SAdam Hornáček--|#line 137 "ut_config_scanner.l"
294*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
295*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 137")
296*eeb7e5b3SAdam Hornáčekend
297*eeb7e5b3SAdam Hornáček
298*eeb7e5b3SAdam Hornáček						last_token := P_EOL
299*eeb7e5b3SAdam Hornáček						line_nb := line_nb + 1
300*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
301*eeb7e5b3SAdam Hornáček
302*eeb7e5b3SAdam Hornáčekwhen 26 then
303*eeb7e5b3SAdam Hornáček--|#line 149 "ut_config_scanner.l"
304*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
305*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 149")
306*eeb7e5b3SAdam Hornáčekend
307*eeb7e5b3SAdam Hornáček
308*eeb7e5b3SAdam Hornáček						last_token := P_EOL
309*eeb7e5b3SAdam Hornáček						line_nb := line_nb + 1
310*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
311*eeb7e5b3SAdam Hornáček
312*eeb7e5b3SAdam Hornáčekwhen 27 then
313*eeb7e5b3SAdam Hornáček--|#line 160 "ut_config_scanner.l"
314*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
315*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 160")
316*eeb7e5b3SAdam Hornáčekend
317*eeb7e5b3SAdam Hornáček
318*eeb7e5b3SAdam Hornáček						last_token := text_item (1).code
319*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
320*eeb7e5b3SAdam Hornáček
321*eeb7e5b3SAdam Hornáčekwhen 28 then
322*eeb7e5b3SAdam Hornáček--|#line 0 "ut_config_scanner.l"
323*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
324*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 0")
325*eeb7e5b3SAdam Hornáčekend
326*eeb7e5b3SAdam Hornáčeklast_token := yyError_token
327*eeb7e5b3SAdam Hornáčekfatal_error ("scanner jammed")
328*eeb7e5b3SAdam Hornáček			else
329*eeb7e5b3SAdam Hornáček				last_token := yyError_token
330*eeb7e5b3SAdam Hornáček				fatal_error ("fatal scanner internal error: no action found")
331*eeb7e5b3SAdam Hornáček			end
332*eeb7e5b3SAdam Hornáček			yy_set_beginning_of_line
333*eeb7e5b3SAdam Hornáček		end
334*eeb7e5b3SAdam Hornáček
335*eeb7e5b3SAdam Hornáček	yy_execute_eof_action (yy_sc: INTEGER)
336*eeb7e5b3SAdam Hornáček			-- Execute EOF semantic action.
337*eeb7e5b3SAdam Hornáček		do
338*eeb7e5b3SAdam Hornáček			inspect yy_sc
339*eeb7e5b3SAdam Hornáčekwhen 1 then
340*eeb7e5b3SAdam Hornáček--|#line 117 "ut_config_scanner.l"
341*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
342*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 117")
343*eeb7e5b3SAdam Hornáčekend
344*eeb7e5b3SAdam Hornáček
345*eeb7e5b3SAdam Hornáček						last_token := P_EOL
346*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
347*eeb7e5b3SAdam Hornáček
348*eeb7e5b3SAdam Hornáčekwhen 5 then
349*eeb7e5b3SAdam Hornáček--|#line 142 "ut_config_scanner.l"
350*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
351*eeb7e5b3SAdam Hornáček	std.error.put_line ("Executing scanner user-code from file 'ut_config_scanner.l' at line 142")
352*eeb7e5b3SAdam Hornáčekend
353*eeb7e5b3SAdam Hornáček
354*eeb7e5b3SAdam Hornáček						last_token := P_EOL
355*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
356*eeb7e5b3SAdam Hornáček
357*eeb7e5b3SAdam Hornáčekwhen 6 then
358*eeb7e5b3SAdam Hornáček--|#line 154 "ut_config_scanner.l"
359*eeb7e5b3SAdam Hornáčekdebug ("GELEX")
360*eeb7e5b3SAdam Hornáček	std.error.put_line ("xx[Executing scanner user-code from file
361*eeb7e5b3SAdam Hornáček    "ut_config_scanner.l"]x" at line 154]xx")
362*eeb7e5b3SAdam Hornáčekend
363*eeb7e5b3SAdam Hornáček
364*eeb7e5b3SAdam Hornáček						last_token := P_EOL
365*eeb7e5b3SAdam Hornáček						set_start_condition (INITIAL)
366*eeb7e5b3SAdam Hornáček
367*eeb7e5b3SAdam Hornáček			else
368*eeb7e5b3SAdam Hornáček				terminate
369*eeb7e5b3SAdam Hornáček			end
370*eeb7e5b3SAdam Hornáček		end
371*eeb7e5b3SAdam Hornáček
372*eeb7e5b3SAdam Hornáčekfeature {NONE} -- Table templates
373*eeb7e5b3SAdam Hornáček
374*eeb7e5b3SAdam Hornáček	yy_nxt_template: SPECIAL [INTEGER]
375*eeb7e5b3SAdam Hornáček			-- Template for `yy_nxt'
376*eeb7e5b3SAdam Hornáček		local
377*eeb7e5b3SAdam Hornáček			an_array: ARRAY [INTEGER]
378*eeb7e5b3SAdam Hornáček		once
379*eeb7e5b3SAdam Hornáček			create an_array.make_filled (0, 0, 220)
380*eeb7e5b3SAdam Hornáček			yy_nxt_template_1 (an_array)
381*eeb7e5b3SAdam Hornáček			yy_nxt_template_2 (an_array)
382*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (an_array)
383*eeb7e5b3SAdam Hornáček		end
384*eeb7e5b3SAdam Hornáček
385*eeb7e5b3SAdam Hornáček	yy_nxt_template_1 (an_array: ARRAY [INTEGER])
386*eeb7e5b3SAdam Hornáček			-- Fill chunk #1 of template for `yy_nxt'.
387*eeb7e5b3SAdam Hornáček		do
388*eeb7e5b3SAdam Hornáček			yy_array_subcopy (an_array, <<
389*eeb7e5b3SAdam Hornáček			    0,   16,   17,   18,   16,   19,   16,   20,   21,   16,
390*eeb7e5b3SAdam Hornáček			   21,   21,   21,   21,   21,   21,   21,   21,   21,   16,
391*eeb7e5b3SAdam Hornáček			   16,   22,   23,   24,   16,   25,   26,   26,   16,   26,
392*eeb7e5b3SAdam Hornáček			   26,   26,   26,   26,   26,   26,   26,   26,   27,   30,
393*eeb7e5b3SAdam Hornáček			   30,   33,   34,   33,   34,   87,   31,   31,   36,   57,
394*eeb7e5b3SAdam Hornáček			   58,   37,   59,   38,   40,   60,   86,   67,   85,   84,
395*eeb7e5b3SAdam Hornáček			   41,   42,   68,   43,   83,   82,   81,   44,   88,   80,
396*eeb7e5b3SAdam Hornáček			   79,   88,   78,   45,   36,   77,   76,   37,   75,   38,
397*eeb7e5b3SAdam Hornáček			   62,   62,   74,   62,   62,   62,   73,   72,   62,   71,
398*eeb7e5b3SAdam Hornáček			   70,   69,   66,   65,   64,   55,   53,   52,   62,   16,
399*eeb7e5b3SAdam Hornáček
400*eeb7e5b3SAdam Hornáček			   16,   16,   16,   16,   16,   16,   16,   16,   28,   28,
401*eeb7e5b3SAdam Hornáček			   28,   28,   28,   28,   28,   28,   28,   32,   32,   32,
402*eeb7e5b3SAdam Hornáček			   32,   32,   32,   32,   32,   32,   39,   63,   46,   39,
403*eeb7e5b3SAdam Hornáček			   39,   39,   39,   39,   47,   47,   61,   56,   47,   47,
404*eeb7e5b3SAdam Hornáček			   47,   47,   47,   49,   49,   49,   49,   51,   51,   51,
405*eeb7e5b3SAdam Hornáček			   51,   51,   51,   51,   51,   51,   54,   54,   39,   54,
406*eeb7e5b3SAdam Hornáček			   54,   54,   54,   54,   54,   40,   40,   55,   40,   40,
407*eeb7e5b3SAdam Hornáček			   40,   40,   40,   40,   45,   45,   53,   45,   45,   45,
408*eeb7e5b3SAdam Hornáček			   45,   45,   45,   62,   62,   52,   62,   62,   62,   62,
409*eeb7e5b3SAdam Hornáček			   62,   62,   50,   48,   46,   39,   88,   35,   35,   29, yy_Dummy>>,
410*eeb7e5b3SAdam Hornáček			1, 200, 0)
411*eeb7e5b3SAdam Hornáček		end
412*eeb7e5b3SAdam Hornáček
413*eeb7e5b3SAdam Hornáček	yy_nxt_template_2 (an_array: ARRAY [INTEGER])
414*eeb7e5b3SAdam Hornáček			-- Fill chunk #2 of template for `yy_nxt'.
415*eeb7e5b3SAdam Hornáček		do
416*eeb7e5b3SAdam Hornáček			yy_array_subcopy (an_array, <<
417*eeb7e5b3SAdam Hornáček			   29,   15,   88,   88,   88,   88,   88,   88,   88,   88,
418*eeb7e5b3SAdam Hornáček			   88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
419*eeb7e5b3SAdam Hornáček			   88, yy_Dummy>>,
420*eeb7e5b3SAdam Hornáček			1, 21, 200)
421*eeb7e5b3SAdam Hornáček		end
422*eeb7e5b3SAdam Hornáček
423*eeb7e5b3SAdam Hornáček	yy_chk_template: SPECIAL [INTEGER]
424*eeb7e5b3SAdam Hornáček			-- Template for `yy_chk'
425*eeb7e5b3SAdam Hornáček		local
426*eeb7e5b3SAdam Hornáček			an_array: ARRAY [INTEGER]
427*eeb7e5b3SAdam Hornáček		once
428*eeb7e5b3SAdam Hornáček			create an_array.make_filled (0, 0, 220)
429*eeb7e5b3SAdam Hornáček			yy_chk_template_1 (an_array)
430*eeb7e5b3SAdam Hornáček			yy_chk_template_2 (an_array)
431*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (an_array)
432*eeb7e5b3SAdam Hornáček		end
433*eeb7e5b3SAdam Hornáček
434*eeb7e5b3SAdam Hornáček	yy_chk_template_1 (an_array: ARRAY [INTEGER])
435*eeb7e5b3SAdam Hornáček			-- Fill chunk #1 of template for `yy_chk'.
436*eeb7e5b3SAdam Hornáček		do
437*eeb7e5b3SAdam Hornáček			yy_array_subcopy (an_array, <<
438*eeb7e5b3SAdam Hornáček			    0,    2,    2,    2,    2,    2,    2,    2,    2,    2,
439*eeb7e5b3SAdam Hornáček			    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
440*eeb7e5b3SAdam Hornáček			    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
441*eeb7e5b3SAdam Hornáček			    3,    3,    3,    3,    3,    3,    3,    3,    3,    9,
442*eeb7e5b3SAdam Hornáček			   10,   11,   11,   12,   12,   86,    9,   10,   17,   42,
443*eeb7e5b3SAdam Hornáček			   42,   17,   43,   17,   19,   43,   82,   59,   81,   78,
444*eeb7e5b3SAdam Hornáček			   19,   19,   59,   19,   77,   76,   75,   19,   20,   74,
445*eeb7e5b3SAdam Hornáček			   73,   20,   71,   20,   36,   70,   69,   36,   68,   36,
446*eeb7e5b3SAdam Hornáček			   45,   45,   67,   45,   45,   45,   66,   65,   45,   64,
447*eeb7e5b3SAdam Hornáček			   61,   60,   58,   57,   56,   55,   53,   51,   45,   89,
448*eeb7e5b3SAdam Hornáček
449*eeb7e5b3SAdam Hornáček			   89,   89,   89,   89,   89,   89,   89,   89,   90,   90,
450*eeb7e5b3SAdam Hornáček			   90,   90,   90,   90,   90,   90,   90,   91,   91,   91,
451*eeb7e5b3SAdam Hornáček			   91,   91,   91,   91,   91,   91,   92,   47,   46,   92,
452*eeb7e5b3SAdam Hornáček			   92,   92,   92,   92,   93,   93,   44,   41,   93,   93,
453*eeb7e5b3SAdam Hornáček			   93,   93,   93,   94,   94,   94,   94,   95,   95,   95,
454*eeb7e5b3SAdam Hornáček			   95,   95,   95,   95,   95,   95,   96,   96,   39,   96,
455*eeb7e5b3SAdam Hornáček			   96,   96,   96,   96,   96,   97,   97,   33,   97,   97,
456*eeb7e5b3SAdam Hornáček			   97,   97,   97,   97,   98,   98,   30,   98,   98,   98,
457*eeb7e5b3SAdam Hornáček			   98,   98,   98,   99,   99,   28,   99,   99,   99,   99,
458*eeb7e5b3SAdam Hornáček			   99,   99,   27,   25,   22,   21,   15,   14,   13,    8, yy_Dummy>>,
459*eeb7e5b3SAdam Hornáček			1, 200, 0)
460*eeb7e5b3SAdam Hornáček		end
461*eeb7e5b3SAdam Hornáček
462*eeb7e5b3SAdam Hornáček	yy_chk_template_2 (an_array: ARRAY [INTEGER])
463*eeb7e5b3SAdam Hornáček			-- Fill chunk #2 of template for `yy_chk'.
464*eeb7e5b3SAdam Hornáček		do
465*eeb7e5b3SAdam Hornáček			yy_array_subcopy (an_array, <<
466*eeb7e5b3SAdam Hornáček			    7,   88,   88,   88,   88,   88,   88,   88,   88,   88,
467*eeb7e5b3SAdam Hornáček			   88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
468*eeb7e5b3SAdam Hornáček			   88, yy_Dummy>>,
469*eeb7e5b3SAdam Hornáček			1, 21, 200)
470*eeb7e5b3SAdam Hornáček		end
471*eeb7e5b3SAdam Hornáček
472*eeb7e5b3SAdam Hornáček	yy_base_template: SPECIAL [INTEGER]
473*eeb7e5b3SAdam Hornáček			-- Template for `yy_base'
474*eeb7e5b3SAdam Hornáček		once
475*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (<<
476*eeb7e5b3SAdam Hornáček			    0,    0,    0,   19,    0,    0,    0,  197,  196,   37,
477*eeb7e5b3SAdam Hornáček			   38,   39,   41,  195,  194,  196,  201,   46,  201,   49,
478*eeb7e5b3SAdam Hornáček			   66,  188,  192,  201,    0,  187,    0,  173,  182,  201,
479*eeb7e5b3SAdam Hornáček			  174,  201,    0,  165,  201,  201,   72,    0,    0,  151,
480*eeb7e5b3SAdam Hornáček			    0,  125,   34,   39,  120,   79,  126,  123,  201,    0,
481*eeb7e5b3SAdam Hornáček			  201,   94,  201,   94,    0,   93,   81,   76,   81,   46,
482*eeb7e5b3SAdam Hornáček			   81,   79,    0,  201,   75,   75,   72,   70,   67,   61,
483*eeb7e5b3SAdam Hornáček			   63,   56,  201,   57,   56,   54,   47,   51,   47,  201,
484*eeb7e5b3SAdam Hornáček			  201,   45,   45,  201,  201,  201,   33,  201,  201,   98,
485*eeb7e5b3SAdam Hornáček			  107,  116,  124,  133,  137,  146,  155,  164,  173,  182, yy_Dummy>>)
486*eeb7e5b3SAdam Hornáček		end
487*eeb7e5b3SAdam Hornáček
488*eeb7e5b3SAdam Hornáček	yy_def_template: SPECIAL [INTEGER]
489*eeb7e5b3SAdam Hornáček			-- Template for `yy_def'
490*eeb7e5b3SAdam Hornáček		once
491*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (<<
492*eeb7e5b3SAdam Hornáček			    0,   89,   88,   88,    3,   89,   89,   90,   90,   89,
493*eeb7e5b3SAdam Hornáček			   89,   91,   91,   89,   89,   88,   88,   92,   88,   88,
494*eeb7e5b3SAdam Hornáček			   92,   20,   88,   88,   93,   88,   94,   88,   95,   88,
495*eeb7e5b3SAdam Hornáček			   88,   88,   96,   88,   88,   88,   20,   19,   20,   20,
496*eeb7e5b3SAdam Hornáček			   97,   88,   88,   88,   88,   98,   88,   93,   88,   94,
497*eeb7e5b3SAdam Hornáček			   88,   95,   88,   88,   96,   88,   88,   88,   88,   88,
498*eeb7e5b3SAdam Hornáček			   88,   88,   99,   88,   88,   88,   88,   88,   88,   88,
499*eeb7e5b3SAdam Hornáček			   88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
500*eeb7e5b3SAdam Hornáček			   88,   88,   88,   88,   88,   88,   88,   88,    0,   88,
501*eeb7e5b3SAdam Hornáček			   88,   88,   88,   88,   88,   88,   88,   88,   88,   88, yy_Dummy>>)
502*eeb7e5b3SAdam Hornáček		end
503*eeb7e5b3SAdam Hornáček
504*eeb7e5b3SAdam Hornáček	yy_ec_template: SPECIAL [INTEGER]
505*eeb7e5b3SAdam Hornáček			-- Template for `yy_ec'
506*eeb7e5b3SAdam Hornáček		local
507*eeb7e5b3SAdam Hornáček			an_array: ARRAY [INTEGER]
508*eeb7e5b3SAdam Hornáček		once
509*eeb7e5b3SAdam Hornáček			create an_array.make_filled (0, 0, 256)
510*eeb7e5b3SAdam Hornáček			yy_ec_template_1 (an_array)
511*eeb7e5b3SAdam Hornáček			yy_ec_template_2 (an_array)
512*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (an_array)
513*eeb7e5b3SAdam Hornáček		end
514*eeb7e5b3SAdam Hornáček
515*eeb7e5b3SAdam Hornáček	yy_ec_template_1 (an_array: ARRAY [INTEGER])
516*eeb7e5b3SAdam Hornáček			-- Fill chunk #1 of template for `yy_ec'.
517*eeb7e5b3SAdam Hornáček		do
518*eeb7e5b3SAdam Hornáček			yy_array_subcopy (an_array, <<
519*eeb7e5b3SAdam Hornáček			    0,    1,    1,    1,    1,    1,    1,    1,    1,    2,
520*eeb7e5b3SAdam Hornáček			    3,    1,    1,    2,    1,    1,    1,    1,    1,    1,
521*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
522*eeb7e5b3SAdam Hornáček			    1,    1,    2,    1,    4,    5,    1,    1,    6,    1,
523*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    7,    8,    1,    8,    8,
524*eeb7e5b3SAdam Hornáček			    8,    8,    8,    8,    8,    8,    8,    8,    9,    1,
525*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    8,    8,   10,   11,   12,
526*eeb7e5b3SAdam Hornáček			   13,    8,    8,   14,    8,    8,   15,    8,   16,    8,
527*eeb7e5b3SAdam Hornáček			    8,    8,    8,   17,    8,   18,    8,    8,    8,    8,
528*eeb7e5b3SAdam Hornáček			    8,    1,    1,    1,    1,    8,    1,    8,    8,   10,
529*eeb7e5b3SAdam Hornáček
530*eeb7e5b3SAdam Hornáček			   11,   12,   13,    8,    8,   14,    8,    8,   15,    8,
531*eeb7e5b3SAdam Hornáček			   16,    8,    8,    8,    8,   17,    8,   18,    8,    8,
532*eeb7e5b3SAdam Hornáček			    8,    8,    8,    1,   19,    1,    1,    1,    1,    1,
533*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
534*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
535*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
536*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
537*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
538*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
539*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1, yy_Dummy>>,
540*eeb7e5b3SAdam Hornáček			1, 200, 0)
541*eeb7e5b3SAdam Hornáček		end
542*eeb7e5b3SAdam Hornáček
543*eeb7e5b3SAdam Hornáček	yy_ec_template_2 (an_array: ARRAY [INTEGER])
544*eeb7e5b3SAdam Hornáček			-- Fill chunk #2 of template for `yy_ec'.
545*eeb7e5b3SAdam Hornáček		do
546*eeb7e5b3SAdam Hornáček			yy_array_subcopy (an_array, <<
547*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
548*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
549*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
550*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
551*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
552*eeb7e5b3SAdam Hornáček			    1,    1,    1,    1,    1,    1,    1, yy_Dummy>>,
553*eeb7e5b3SAdam Hornáček			1, 57, 200)
554*eeb7e5b3SAdam Hornáček		end
555*eeb7e5b3SAdam Hornáček
556*eeb7e5b3SAdam Hornáček	yy_meta_template: SPECIAL [INTEGER]
557*eeb7e5b3SAdam Hornáček			-- Template for `yy_meta'
558*eeb7e5b3SAdam Hornáček		once
559*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (<<
560*eeb7e5b3SAdam Hornáček			    0,    1,    2,    3,    4,    5,    1,    6,    7,    1,
561*eeb7e5b3SAdam Hornáček			    7,    7,    7,    7,    7,    7,    7,    8,    9,    1, yy_Dummy>>)
562*eeb7e5b3SAdam Hornáček		end
563*eeb7e5b3SAdam Hornáček
564*eeb7e5b3SAdam Hornáček	yy_accept_template: SPECIAL [INTEGER]
565*eeb7e5b3SAdam Hornáček			-- Template for `yy_accept'
566*eeb7e5b3SAdam Hornáček		once
567*eeb7e5b3SAdam Hornáček			Result := yy_fixed_array (<<
568*eeb7e5b3SAdam Hornáček			    0,    0,    0,    0,    0,    0,    0,   14,   14,    0,
569*eeb7e5b3SAdam Hornáček			    0,    0,    0,    0,    0,   29,   27,   12,   11,   27,
570*eeb7e5b3SAdam Hornáček			   10,   10,   15,   20,   27,   27,   17,   27,   14,   13,
571*eeb7e5b3SAdam Hornáček			   21,   22,   24,   23,   25,   26,   12,    0,   10,   10,
572*eeb7e5b3SAdam Hornáček			    2,    0,    0,    0,    0,    1,   15,    0,   18,   17,
573*eeb7e5b3SAdam Hornáček			   19,   14,   13,   21,   24,   23,    0,    0,    0,    0,
574*eeb7e5b3SAdam Hornáček			    0,    0,    1,   16,    0,    0,    0,    0,    0,    0,
575*eeb7e5b3SAdam Hornáček			    0,    0,    5,    0,    0,    0,    0,    0,    0,    6,
576*eeb7e5b3SAdam Hornáček			    3,    0,    0,    9,    8,    4,    0,    7,    0, yy_Dummy>>)
577*eeb7e5b3SAdam Hornáček		end
578*eeb7e5b3SAdam Hornáček
579*eeb7e5b3SAdam Hornáčekfeature {NONE} -- Constants
580*eeb7e5b3SAdam Hornáček
581*eeb7e5b3SAdam Hornáček	yyJam_base: INTEGER = 201
582*eeb7e5b3SAdam Hornáček			-- Position in `yy_nxt'/`yy_chk' tables
583*eeb7e5b3SAdam Hornáček			-- where default jam table starts
584*eeb7e5b3SAdam Hornáček
585*eeb7e5b3SAdam Hornáček	yyJam_state: INTEGER = 88
586*eeb7e5b3SAdam Hornáček			-- State id corresponding to jam state
587*eeb7e5b3SAdam Hornáček
588*eeb7e5b3SAdam Hornáček	yyTemplate_mark: INTEGER = 89
589*eeb7e5b3SAdam Hornáček			-- Mark between normal states and templates
590*eeb7e5b3SAdam Hornáček
591*eeb7e5b3SAdam Hornáček	yyNull_equiv_class: INTEGER = 1
592*eeb7e5b3SAdam Hornáček			-- Equivalence code for NULL character
593*eeb7e5b3SAdam Hornáček
594*eeb7e5b3SAdam Hornáček	yyReject_used: BOOLEAN = false
595*eeb7e5b3SAdam Hornáček			-- Is `reject' called?
596*eeb7e5b3SAdam Hornáček
597*eeb7e5b3SAdam Hornáček	yyVariable_trail_context: BOOLEAN = false
598*eeb7e5b3SAdam Hornáček			-- Is there a regular expression with
599*eeb7e5b3SAdam Hornáček			-- both leading and trailing parts having
600*eeb7e5b3SAdam Hornáček			-- variable length?
601*eeb7e5b3SAdam Hornáček
602*eeb7e5b3SAdam Hornáček	yyReject_or_variable_trail_context: BOOLEAN = false
603*eeb7e5b3SAdam Hornáček			-- Is `reject' called or is there a
604*eeb7e5b3SAdam Hornáček			-- regular expression with both leading
605*eeb7e5b3SAdam Hornáček			-- and trailing parts having variable length?
606*eeb7e5b3SAdam Hornáček
607*eeb7e5b3SAdam Hornáček	yyNb_rules: INTEGER = 28
608*eeb7e5b3SAdam Hornáček			-- Number of rules
609*eeb7e5b3SAdam Hornáček
610*eeb7e5b3SAdam Hornáček	yyEnd_of_buffer: INTEGER = 29
611*eeb7e5b3SAdam Hornáček			-- End of buffer rule code
612*eeb7e5b3SAdam Hornáček
613*eeb7e5b3SAdam Hornáček	yyLine_used: BOOLEAN = false
614*eeb7e5b3SAdam Hornáček			-- Are line and column numbers used?
615*eeb7e5b3SAdam Hornáček
616*eeb7e5b3SAdam Hornáček	yyPosition_used: BOOLEAN = false
617*eeb7e5b3SAdam Hornáček			-- Is `position' used?
618*eeb7e5b3SAdam Hornáček
619*eeb7e5b3SAdam Hornáček	INITIAL: INTEGER = 0b0
620*eeb7e5b3SAdam Hornáček	S_PREPROC: INTEGER = 0B1
621*eeb7e5b3SAdam Hornáček	S_READLINE: INTEGER = 0x2
622*eeb7e5b3SAdam Hornáček	S_SKIP_EOL: INTEGER = 0X3
623*eeb7e5b3SAdam Hornáček	S_NAME: INTEGER = 0c4
624*eeb7e5b3SAdam Hornáček	S_VALUE: INTEGER = 0C5
625*eeb7e5b3SAdam Hornáček	S_EMPTY_LINE: INTEGER = 6
626*eeb7e5b3SAdam Hornáček			-- Start condition codes
627*eeb7e5b3SAdam Hornáček
628*eeb7e5b3SAdam Hornáčekfeature -- User-defined features
629*eeb7e5b3SAdam Hornáček
630*eeb7e5b3SAdam Hornáček
631*eeb7e5b3SAdam Hornáček
632*eeb7e5b3SAdam Hornáčekfeature {NONE} -- Initialization
633*eeb7e5b3SAdam Hornáček
634*eeb7e5b3SAdam Hornáček	make
635*eeb7e5b3SAdam Hornáček			-- Create a new scanner.
636*eeb7e5b3SAdam Hornáček		do
637*eeb7e5b3SAdam Hornáček			make_with_buffer (Empty_buffer)
638*eeb7e5b3SAdam Hornáček			last_string_value := ""
639*eeb7e5b3SAdam Hornáček			line_nb := 1
640*eeb7e5b3SAdam Hornáček		end
641*eeb7e5b3SAdam Hornáček
642*eeb7e5b3SAdam Hornáčekfeature -- Initialization
643*eeb7e5b3SAdam Hornáček
644*eeb7e5b3SAdam Hornáček	reset
645*eeb7e5b3SAdam Hornáček			-- Reset scanner before scanning next input.
646*eeb7e5b3SAdam Hornáček		do
647*eeb7e5b3SAdam Hornáček			reset_compressed_scanner_skeleton
648*eeb7e5b3SAdam Hornáček			last_string_value := ""
649*eeb7e5b3SAdam Hornáček			line_nb := 1
650*eeb7e5b3SAdam Hornáček		end
651*eeb7e5b3SAdam Hornáček
652*eeb7e5b3SAdam Hornáčekfeature -- Access
653*eeb7e5b3SAdam Hornáček
654*eeb7e5b3SAdam Hornáček	line_nb: INTEGER
655*eeb7e5b3SAdam Hornáček			-- Current line number
656*eeb7e5b3SAdam Hornáček
657*eeb7e5b3SAdam Hornáček	include_stack: DS_STACK [YY_BUFFER]
658*eeb7e5b3SAdam Hornáček			-- Input buffers not completely parsed yet
659*eeb7e5b3SAdam Hornáček		deferred
660*eeb7e5b3SAdam Hornáček		ensure
661*eeb7e5b3SAdam Hornáček			include_stack_not_void: Result /= Void
662*eeb7e5b3SAdam Hornáček			no_void_buffer: not Result.has_void
663*eeb7e5b3SAdam Hornáček		end
664*eeb7e5b3SAdam Hornáček
665*eeb7e5b3SAdam Hornáček	line_nb_stack: DS_STACK [INTEGER]
666*eeb7e5b3SAdam Hornáček			-- Line numbers in the corresponding input buffers in `include_stack'
667*eeb7e5b3SAdam Hornáček		deferred
668*eeb7e5b3SAdam Hornáček		ensure
669*eeb7e5b3SAdam Hornáček			line_nb_stack_not_void: Result /= Void
670*eeb7e5b3SAdam Hornáček			same_count: Result.count = include_stack.count
671*eeb7e5b3SAdam Hornáček		end
672*eeb7e5b3SAdam Hornáček
673*eeb7e5b3SAdam Hornáčekfeature -- Status report
674*eeb7e5b3SAdam Hornáček
675*eeb7e5b3SAdam Hornáček	ignored: BOOLEAN
676*eeb7e5b3SAdam Hornáček			-- Is current line ignored?
677*eeb7e5b3SAdam Hornáček		deferred
678*eeb7e5b3SAdam Hornáček		end
679*eeb7e5b3SAdam Hornáček
680*eeb7e5b3SAdam Hornáčekfeature -- Element change
681*eeb7e5b3SAdam Hornáček
682*eeb7e5b3SAdam Hornáček	wrap: BOOLEAN
683*eeb7e5b3SAdam Hornáček			-- Should current scanner terminate when end of file is reached?
684*eeb7e5b3SAdam Hornáček			-- True unless an include file was being processed.
685*eeb7e5b3SAdam Hornáček		local
686*eeb7e5b3SAdam Hornáček			l_old_buffer: YY_BUFFER
687*eeb7e5b3SAdam Hornáček			a_file: KI_CHARACTER_INPUT_STREAM
688*eeb7e5b3SAdam Hornáček		do
689*eeb7e5b3SAdam Hornáček			if not include_stack.is_empty then
690*eeb7e5b3SAdam Hornáček				l_old_buffer := input_buffer
691*eeb7e5b3SAdam Hornáček				set_input_buffer (include_stack.item)
692*eeb7e5b3SAdam Hornáček				line_nb := line_nb_stack.item
693*eeb7e5b3SAdam Hornáček				line_nb_stack.remove
694*eeb7e5b3SAdam Hornáček				include_stack.remove
695*eeb7e5b3SAdam Hornáček				if attached {YY_FILE_BUFFER} l_old_buffer as l_old_file_buffer then
696*eeb7e5b3SAdam Hornáček					a_file := l_old_file_buffer.file
697*eeb7e5b3SAdam Hornáček					if a_file.is_closable then
698*eeb7e5b3SAdam Hornáček						a_file.close
699*eeb7e5b3SAdam Hornáček					end
700*eeb7e5b3SAdam Hornáček				end
701*eeb7e5b3SAdam Hornáček				set_start_condition (INITIAL)
702*eeb7e5b3SAdam Hornáček			else
703*eeb7e5b3SAdam Hornáček				Result := True
704*eeb7e5b3SAdam Hornáček			end
705*eeb7e5b3SAdam Hornáček		end
706*eeb7e5b3SAdam Hornáček
707*eeb7e5b3SAdam Hornáčekfeature -- Output
708*eeb7e5b3SAdam Hornáček
709*eeb7e5b3SAdam Hornáček	output (a_text: like text)
710*eeb7e5b3SAdam Hornáček			-- Silently ignore `a_text'.
711*eeb7e5b3SAdam Hornáček		do
712*eeb7e5b3SAdam Hornáček		end
713*eeb7e5b3SAdam Hornáček
714*eeb7e5b3SAdam Hornáčekend
715