2
(* lexical analyzer template (TP Lex V3.0), V1.0 3-2-91 AG *)
4
(* global definitions: *)
6
$Id: scan.pas,v 1.5 2004/02/09 18:52:42 michael Exp $
7
Copyright (c) 1998-2000 by Florian Klaempfl
9
This program is free software; you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation; either version 2 of the License, or
12
(at your option) any later version.
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU General Public License for more details.
19
You should have received a copy of the GNU General Public License
20
along with this program; if not, write to the Free Software
21
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23
****************************************************************************}
41
{ p contains the string }
45
{ p1 contains the definition
59
{ p1 is type specifier
60
p2 is declarator_list }
65
next is next if it exist }
75
{ p contains the operator string
76
p1 contains the right expr }
78
{ p contains the operator string
79
p1 contains the left expr
80
p2 contains the right expr }
83
p1 contains the array expr
84
p2 contains the index expressions }
87
p1 contains the proc expr
88
p2 contains the index expressions }
91
p1 contain the typedef
92
p2 the declarator (t_dec)
99
{ p1 contains the expr
100
next contains the next if it exists }
102
{ p1 contains the condition expr
103
p2 contains the if branch
104
p3 contains the else branch }
106
{ p1 contains the function dname
107
p2 contains the funexprlist
108
p3 possibly contains the return type }
110
{ p1 is the type itself
111
p2 the typecast expr }
115
{ p1 expr for value }
118
presobject = ^tresobject;
123
p1,p2,p3 : presobject;
124
{ name of int/real, then no T prefix is required }
126
constructor init_no(t : ttyp);
127
constructor init_one(t : ttyp;_p1 : presobject);
128
constructor init_two(t : ttyp;_p1,_p2 : presobject);
129
constructor init_three(t : ttyp;_p1,_p2,_p3 : presobject);
130
constructor init_id(const s : string);
131
constructor init_intid(const s : string);
132
constructor init_bop(const s : string;_p1,_p2 : presobject);
133
constructor init_preop(const s : string;_p1 : presobject);
134
procedure setstr(const s:string);
135
function str : string;
136
function strlength : byte;
137
function get_copy : presobject;
138
{ can this ve considered as a constant ? }
139
function is_const : boolean;
143
tblocktype = (bt_type,bt_const,bt_var,bt_func,bt_no);
151
block_type : tblocktype;
154
in_define : boolean = false;
155
{ True if define spans to the next line }
156
cont_line : boolean = false;
157
{ 1 after define; 2 after the ID to print the first separating space }
158
in_space_define : byte = 0;
159
arglevel : longint = 0;
161
function yylex : integer;
162
function act_token : string;
163
procedure internalerror(i : integer);
165
function strpnew(const s : string) : pchar;
176
procedure internalerror(i : integer);
178
writeln('Internal error ',i,' in line ',yylineno);
183
procedure commenteof;
185
writeln('unexpected EOF inside comment at line ',yylineno);
189
procedure copy_until_eol;
200
procedure skip_until_eol;
208
function strpnew(const s : string) : pchar;
212
getmem(p,length(s)+1);
218
constructor tresobject.init_preop(const s : string;_p1 : presobject);
229
constructor tresobject.init_bop(const s : string;_p1,_p2 : presobject);
240
constructor tresobject.init_id(const s : string);
251
constructor tresobject.init_intid(const s : string);
262
constructor tresobject.init_two(t : ttyp;_p1,_p2 : presobject);
273
constructor tresobject.init_three(t : ttyp;_p1,_p2,_p3 : presobject);
284
constructor tresobject.init_one(t : ttyp;_p1 : presobject);
295
constructor tresobject.init_no(t : ttyp);
306
procedure tresobject.setstr(const s : string);
313
function tresobject.str : string;
318
function tresobject.strlength : byte;
326
{ can this ve considered as a constant ? }
327
function tresobject.is_const : boolean;
333
is_const:= ((str='-') or (str=' not ')) and p1^.is_const;
335
is_const:= p2^.is_const and p1^.is_const;
341
function tresobject.get_copy : presobject;
345
newres:=new(presobject,init_no(typ));
346
newres^.intname:=intname;
348
newres^.p:=strnew(p);
350
newres^.p1:=p1^.get_copy;
352
newres^.p2:=p2^.get_copy;
354
newres^.p3:=p3^.get_copy;
355
if assigned(next) then
356
newres^.next:=next^.get_copy;
360
destructor tresobject.done;
362
(* writeln('disposing ',byte(typ)); *)
363
if assigned(p)then strdispose(p);
370
if assigned(next) then
375
function yylex : Integer;
377
procedure yyaction ( yyruleno : Integer );
378
(* local definitions: *)
385
if not stripcomment then
386
write(outfile,aktspace,'{');
395
if not stripcomment then
396
writeln(outfile,' }');
402
if not stripcomment then
409
if not stripcomment then
412
write(outfile,aktspace);
418
if not stripcomment then
426
If not stripcomment then
427
write(outfile,aktspace,'{');
434
if not stripcomment then
435
writeln(outfile,' }');
442
if not stripcomment then
464
while yytext[length(yytext)] in ['L','U','l','u'] do
465
Delete(yytext,length(yytext),1);
471
(* handle pre- and postfixes *)
472
if copy(yytext,1,2)='0x' then
477
while yytext[length(yytext)] in ['L','U','l','u'] do
478
Delete(yytext,length(yytext),1);
516
return(_NOT); (* inverse, but handled as not operation *)
524
return(QUESTIONMARK);
562
if not Win32headers then
567
if not Win32headers then
572
if not Win32headers then
577
if not Win32headers then
582
if not palmpilot then
587
if not Win32headers then
592
if not Win32headers then
597
if not Win32headers then
608
if not stripinfo then
609
writeln(outfile,'{ C++ extern C conditionnal removed }');
614
if not stripinfo then
615
writeln(outfile,'{ C++ end of extern C conditionnal removed }');
619
writeln(outfile,'{$else}');
625
writeln(outfile,'{$endif}');
631
if not stripinfo then
632
write(outfile,'(*** was #elif ****)');
633
write(outfile,'{$else');
635
writeln(outfile,'}');
641
write(outfile,'{$undef');
643
writeln(outfile,'}');
648
write(outfile,'{$error');
650
writeln(outfile,'}');
655
write(outfile,'{$include');
657
writeln(outfile,'}');
663
write(outfile,'{$if');
665
writeln(outfile,'}');
671
(* preprocessor line info *)
687
if not stripinfo then
689
write(outfile,'(** unsupported pragma');
690
write(outfile,'#pragma');
692
writeln(outfile,'*)');
749
if in_space_define=1 then
757
if (arglevel=0) and (in_space_define=2) then
760
return(SPACE_DEFINE);
787
writeln('Unexpected wrap of line ',yylineno);
788
writeln('"',yyline,'"');
794
writeln('Illegal character in line ',yylineno);
795
writeln('"',yyline,'"');
815
yyk : array [1..yynmarks] of Integer = (
1428
yym : array [1..yynmatches] of Integer = (
2041
yyt : array [1..yyntrans] of YYTrec = (
2043
( cc: [ #1..#8,#11,#13..#31,'$','%','@','^','`',#127..#255 ]; s: 54),
2044
( cc: [ #9,#12,' ' ]; s: 51),
2045
( cc: [ #10 ]; s: 52),
2046
( cc: [ '!' ]; s: 10),
2047
( cc: [ '"' ]; s: 3),
2048
( cc: [ '#' ]; s: 13),
2049
( cc: [ '&' ]; s: 15),
2050
( cc: [ '''' ]; s: 4),
2051
( cc: [ '(' ]; s: 23),
2052
( cc: [ ')' ]; s: 24),
2053
( cc: [ '*' ]; s: 25),
2054
( cc: [ '+' ]; s: 17),
2055
( cc: [ ',' ]; s: 20),
2056
( cc: [ '-' ]; s: 8),
2057
( cc: [ '.' ]; s: 26),
2058
( cc: [ '/' ]; s: 2),
2059
( cc: [ '0' ]; s: 7),
2060
( cc: [ '1'..'9' ]; s: 6),
2061
( cc: [ ':' ]; s: 19),
2062
( cc: [ ';' ]; s: 50),
2063
( cc: [ '<' ]; s: 12),
2064
( cc: [ '=' ]; s: 9),
2065
( cc: [ '>' ]; s: 11),
2066
( cc: [ '?' ]; s: 18),
2067
( cc: [ 'A','B','D','G','I'..'K','M','O','Q','R',
2068
'T','U','X'..'Z','_','a','b','d','g','j','k',
2069
'm','o'..'r','w'..'z' ]; s: 49),
2070
( cc: [ 'C' ]; s: 29),
2071
( cc: [ 'E' ]; s: 32),
2072
( cc: [ 'F' ]; s: 44),
2073
( cc: [ 'H' ]; s: 47),
2074
( cc: [ 'L' ]; s: 5),
2075
( cc: [ 'N' ]; s: 45),
2076
( cc: [ 'P' ]; s: 30),
2077
( cc: [ 'S' ]; s: 28),
2078
( cc: [ 'V' ]; s: 34),
2079
( cc: [ 'W' ]; s: 31),
2080
( cc: [ '[' ]; s: 21),
2081
( cc: [ '\' ]; s: 53),
2082
( cc: [ ']' ]; s: 22),
2083
( cc: [ 'c' ]; s: 35),
2084
( cc: [ 'e' ]; s: 27),
2085
( cc: [ 'f' ]; s: 43),
2086
( cc: [ 'h' ]; s: 48),
2087
( cc: [ 'i' ]; s: 41),
2088
( cc: [ 'l' ]; s: 42),
2089
( cc: [ 'n' ]; s: 46),
2090
( cc: [ 's' ]; s: 37),
2091
( cc: [ 't' ]; s: 40),
2092
( cc: [ 'u' ]; s: 36),
2093
( cc: [ 'v' ]; s: 33),
2094
( cc: [ '{' ]; s: 38),
2095
( cc: [ '|' ]; s: 14),
2096
( cc: [ '}' ]; s: 39),
2097
( cc: [ '~' ]; s: 16),
2099
( cc: [ #1..#8,#11,#13..#31,'$','%','@','^','`',#127..#255 ]; s: 54),
2100
( cc: [ #9,#12,' ' ]; s: 51),
2101
( cc: [ #10 ]; s: 52),
2102
( cc: [ '!' ]; s: 10),
2103
( cc: [ '"' ]; s: 3),
2104
( cc: [ '#' ]; s: 13),
2105
( cc: [ '&' ]; s: 15),
2106
( cc: [ '''' ]; s: 4),
2107
( cc: [ '(' ]; s: 23),
2108
( cc: [ ')' ]; s: 24),
2109
( cc: [ '*' ]; s: 25),
2110
( cc: [ '+' ]; s: 17),
2111
( cc: [ ',' ]; s: 20),
2112
( cc: [ '-' ]; s: 8),
2113
( cc: [ '.' ]; s: 26),
2114
( cc: [ '/' ]; s: 2),
2115
( cc: [ '0' ]; s: 7),
2116
( cc: [ '1'..'9' ]; s: 6),
2117
( cc: [ ':' ]; s: 19),
2118
( cc: [ ';' ]; s: 50),
2119
( cc: [ '<' ]; s: 12),
2120
( cc: [ '=' ]; s: 9),
2121
( cc: [ '>' ]; s: 11),
2122
( cc: [ '?' ]; s: 18),
2123
( cc: [ 'A','B','D','G','I'..'K','M','O','Q','R',
2124
'T','U','X'..'Z','_','a','b','d','g','j','k',
2125
'm','o'..'r','w'..'z' ]; s: 49),
2126
( cc: [ 'C' ]; s: 29),
2127
( cc: [ 'E' ]; s: 32),
2128
( cc: [ 'F' ]; s: 44),
2129
( cc: [ 'H' ]; s: 47),
2130
( cc: [ 'L' ]; s: 5),
2131
( cc: [ 'N' ]; s: 45),
2132
( cc: [ 'P' ]; s: 30),
2133
( cc: [ 'S' ]; s: 28),
2134
( cc: [ 'V' ]; s: 34),
2135
( cc: [ 'W' ]; s: 31),
2136
( cc: [ '[' ]; s: 21),
2137
( cc: [ '\' ]; s: 53),
2138
( cc: [ ']' ]; s: 22),
2139
( cc: [ 'c' ]; s: 35),
2140
( cc: [ 'e' ]; s: 27),
2141
( cc: [ 'f' ]; s: 43),
2142
( cc: [ 'h' ]; s: 48),
2143
( cc: [ 'i' ]; s: 41),
2144
( cc: [ 'l' ]; s: 42),
2145
( cc: [ 'n' ]; s: 46),
2146
( cc: [ 's' ]; s: 37),
2147
( cc: [ 't' ]; s: 40),
2148
( cc: [ 'u' ]; s: 36),
2149
( cc: [ 'v' ]; s: 33),
2150
( cc: [ '{' ]; s: 38),
2151
( cc: [ '|' ]; s: 14),
2152
( cc: [ '}' ]; s: 39),
2153
( cc: [ '~' ]; s: 16),
2155
( cc: [ '*' ]; s: 55),
2156
( cc: [ '/' ]; s: 56),
2158
( cc: [ #1..'!','#'..#255 ]; s: 57),
2159
( cc: [ '"' ]; s: 58),
2161
( cc: [ #1..'&','('..#255 ]; s: 59),
2162
( cc: [ '''' ]; s: 60),
2164
( cc: [ '"' ]; s: 61),
2165
( cc: [ '''' ]; s: 62),
2166
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2168
( cc: [ '.' ]; s: 67),
2169
( cc: [ '0'..'9' ]; s: 64),
2170
( cc: [ 'E','e' ]; s: 68),
2171
( cc: [ 'L','l' ]; s: 66),
2172
( cc: [ 'U','u' ]; s: 65),
2174
( cc: [ '.' ]; s: 67),
2175
( cc: [ '0'..'9' ]; s: 64),
2176
( cc: [ 'E','e' ]; s: 68),
2177
( cc: [ 'L','l' ]; s: 66),
2178
( cc: [ 'U','u' ]; s: 65),
2179
( cc: [ 'x' ]; s: 69),
2181
( cc: [ '>' ]; s: 70),
2183
( cc: [ '=' ]; s: 71),
2185
( cc: [ '=' ]; s: 72),
2187
( cc: [ '=' ]; s: 73),
2188
( cc: [ '>' ]; s: 74),
2190
( cc: [ '<' ]; s: 76),
2191
( cc: [ '=' ]; s: 75),
2193
( cc: [ #9 ]; s: 79),
2194
( cc: [ ' ' ]; s: 82),
2195
( cc: [ '#' ]; s: 77),
2196
( cc: [ 'd' ]; s: 84),
2197
( cc: [ 'e' ]; s: 80),
2198
( cc: [ 'i' ]; s: 78),
2199
( cc: [ 'p' ]; s: 83),
2200
( cc: [ 'u' ]; s: 81),
2214
( cc: [ '.' ]; s: 85),
2216
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'w','y','z' ]; s: 63),
2217
( cc: [ 'n' ]; s: 87),
2218
( cc: [ 'x' ]; s: 86),
2220
( cc: [ '0'..'9','A'..'S','U'..'X','Z','_','a'..'z' ]; s: 63),
2221
( cc: [ 'T' ]; s: 88),
2222
( cc: [ 'Y' ]; s: 89),
2224
( cc: [ '0'..'9','B','C','E'..'N','P'..'Z','_','a'..'z' ]; s: 63),
2225
( cc: [ 'A' ]; s: 91),
2226
( cc: [ 'D' ]; s: 90),
2227
( cc: [ 'O' ]; s: 92),
2229
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2230
( cc: [ 'A' ]; s: 93),
2232
( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63),
2233
( cc: [ 'I' ]; s: 94),
2235
( cc: [ '0'..'9','A'..'W','Y','Z','_','a'..'z' ]; s: 63),
2236
( cc: [ 'X' ]; s: 95),
2238
( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63),
2239
( cc: [ 'o' ]; s: 96),
2241
( cc: [ '0'..'9','A'..'N','P'..'Z','_','a'..'z' ]; s: 63),
2242
( cc: [ 'O' ]; s: 97),
2244
( cc: [ '0'..'9','A'..'Z','_','a'..'g','i'..'n','p'..'z' ]; s: 63),
2245
( cc: [ 'h' ]; s: 98),
2246
( cc: [ 'o' ]; s: 99),
2248
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2249
( cc: [ 'n' ]; s: 100),
2251
( cc: [ '0'..'9','A'..'Z','_','a'..'g','j'..'s','u'..'z' ]; s: 63),
2252
( cc: [ 'h' ]; s: 102),
2253
( cc: [ 'i' ]; s: 103),
2254
( cc: [ 't' ]; s: 101),
2258
( cc: [ '0'..'9','A'..'Z','_','a'..'x','z' ]; s: 63),
2259
( cc: [ 'y' ]; s: 104),
2261
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2262
( cc: [ 'n' ]; s: 105),
2264
( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63),
2265
( cc: [ 'o' ]; s: 106),
2267
( cc: [ '0'..'9','A'..'Z','_','b'..'k','m'..'z' ]; s: 63),
2268
( cc: [ 'a' ]; s: 108),
2269
( cc: [ 'l' ]; s: 107),
2271
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2272
( cc: [ 'A' ]; s: 109),
2274
( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63),
2275
( cc: [ 'E' ]; s: 110),
2277
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2278
( cc: [ 'e' ]; s: 111),
2280
( cc: [ '0'..'9','A'..'T','V'..'Z','_','a'..'z' ]; s: 63),
2281
( cc: [ 'U' ]; s: 112),
2283
( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 63),
2284
( cc: [ 'u' ]; s: 113),
2286
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2291
( cc: [ #10 ]; s: 114),
2296
( cc: [ #1..'!','#'..#255 ]; s: 57),
2297
( cc: [ '"' ]; s: 58),
2300
( cc: [ #1..'&','('..#255 ]; s: 59),
2301
( cc: [ '''' ]; s: 60),
2304
( cc: [ #1..'!','#'..#255 ]; s: 61),
2305
( cc: [ '"' ]; s: 115),
2307
( cc: [ #1..'&','('..#255 ]; s: 62),
2308
( cc: [ '''' ]; s: 116),
2310
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2312
( cc: [ '.' ]; s: 67),
2313
( cc: [ '0'..'9' ]; s: 64),
2314
( cc: [ 'E','e' ]; s: 68),
2315
( cc: [ 'L','l' ]; s: 66),
2316
( cc: [ 'U','u' ]; s: 65),
2318
( cc: [ 'L','l' ]; s: 66),
2321
( cc: [ '0'..'9' ]; s: 117),
2323
( cc: [ '+','-' ]; s: 118),
2324
( cc: [ '0'..'9' ]; s: 119),
2326
( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 69),
2327
( cc: [ 'L','l' ]; s: 121),
2328
( cc: [ 'U','u' ]; s: 120),
2338
( cc: [ 'f' ]; s: 122),
2339
( cc: [ 'n' ]; s: 123),
2341
( cc: [ #9,' ' ]; s: 79),
2342
( cc: [ 'd' ]; s: 84),
2343
( cc: [ 'e' ]; s: 80),
2344
( cc: [ 'i' ]; s: 124),
2345
( cc: [ 'p' ]; s: 83),
2346
( cc: [ 'u' ]; s: 81),
2348
( cc: [ 'l' ]; s: 125),
2349
( cc: [ 'n' ]; s: 126),
2350
( cc: [ 'r' ]; s: 127),
2352
( cc: [ 'n' ]; s: 128),
2354
( cc: [ #9,' ' ]; s: 79),
2355
( cc: [ '0'..'9' ]; s: 129),
2356
( cc: [ 'd' ]; s: 84),
2357
( cc: [ 'e' ]; s: 80),
2358
( cc: [ 'i' ]; s: 124),
2359
( cc: [ 'p' ]; s: 83),
2360
( cc: [ 'u' ]; s: 81),
2362
( cc: [ 'r' ]; s: 130),
2364
( cc: [ 'e' ]; s: 131),
2366
( cc: [ '.' ]; s: 132),
2368
( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63),
2369
( cc: [ 't' ]; s: 133),
2371
( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 63),
2372
( cc: [ 'u' ]; s: 134),
2374
( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63),
2375
( cc: [ 'D' ]; s: 135),
2377
( cc: [ '0'..'9','A'..'R','T'..'Z','_','a'..'z' ]; s: 63),
2378
( cc: [ 'S' ]; s: 136),
2380
( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63),
2381
( cc: [ 'E' ]; s: 137),
2383
( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63),
2384
( cc: [ 'L' ]; s: 138),
2386
( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 63),
2387
( cc: [ 'N' ]; s: 139),
2389
( cc: [ '0'..'9','A','B','D'..'R','T'..'Z','_','a'..'z' ]; s: 63),
2390
( cc: [ 'C' ]; s: 141),
2391
( cc: [ 'S' ]; s: 140),
2393
( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 63),
2394
( cc: [ 'N' ]; s: 142),
2396
( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63),
2397
( cc: [ 'P' ]; s: 143),
2399
( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 63),
2400
( cc: [ 'i' ]; s: 144),
2402
( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63),
2403
( cc: [ 'I' ]; s: 145),
2405
( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 63),
2406
( cc: [ 'a' ]; s: 146),
2408
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2409
( cc: [ 'n' ]; s: 147),
2411
( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'r','t'..'z' ]; s: 63),
2412
( cc: [ 'i' ]; s: 148),
2413
( cc: [ 's' ]; s: 149),
2415
( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63),
2416
( cc: [ 'r' ]; s: 150),
2418
( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63),
2419
( cc: [ 'o' ]; s: 151),
2421
( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63),
2422
( cc: [ 'g' ]; s: 152),
2424
( cc: [ '0'..'9','A'..'Z','_','a'..'o','q'..'z' ]; s: 63),
2425
( cc: [ 'p' ]; s: 153),
2427
( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63),
2428
( cc: [ 't' ]; s: 154),
2430
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2431
( cc: [ 'n' ]; s: 155),
2433
( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63),
2434
( cc: [ 'o' ]; s: 156),
2436
( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63),
2437
( cc: [ 'r' ]; s: 157),
2439
( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63),
2440
( cc: [ 'R' ]; s: 158),
2442
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2443
( cc: [ 'A' ]; s: 159),
2445
( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 63),
2446
( cc: [ 'a' ]; s: 160),
2448
( cc: [ '0'..'9','A'..'F','H'..'Z','_','a'..'z' ]; s: 63),
2449
( cc: [ 'G' ]; s: 161),
2451
( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63),
2452
( cc: [ 'g' ]; s: 162),
2457
( cc: [ '0'..'9' ]; s: 117),
2458
( cc: [ 'E','e' ]; s: 68),
2460
( cc: [ '0'..'9' ]; s: 119),
2462
( cc: [ '0'..'9' ]; s: 119),
2464
( cc: [ 'L','l' ]; s: 121),
2467
( cc: [ 'd' ]; s: 163),
2469
( cc: [ 'c' ]; s: 164),
2471
( cc: [ 'f' ]; s: 165),
2472
( cc: [ 'n' ]; s: 123),
2474
( cc: [ 'i' ]; s: 167),
2475
( cc: [ 's' ]; s: 166),
2477
( cc: [ 'd' ]; s: 168),
2479
( cc: [ 'r' ]; s: 169),
2481
( cc: [ 'd' ]; s: 170),
2483
( cc: [ ' ' ]; s: 171),
2484
( cc: [ '0'..'9' ]; s: 129),
2486
( cc: [ 'a' ]; s: 172),
2488
( cc: [ 'f' ]; s: 173),
2491
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2492
( cc: [ 'e' ]; s: 174),
2494
( cc: [ '0'..'9','A'..'Z','_','a'..'l','n'..'z' ]; s: 63),
2495
( cc: [ 'm' ]; s: 175),
2497
( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63),
2498
( cc: [ 'C' ]; s: 176),
2500
( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 63),
2501
( cc: [ '_' ]; s: 177),
2503
( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63),
2504
( cc: [ 'C' ]; s: 178),
2506
( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63),
2507
( cc: [ 'L' ]; s: 179),
2509
( cc: [ '0'..'9','A'..'R','T'..'Z','_','a'..'z' ]; s: 63),
2510
( cc: [ 'S' ]; s: 180),
2512
( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63),
2513
( cc: [ 'C' ]; s: 181),
2515
( cc: [ '0'..'9','A'..'J','L'..'Z','_','a'..'z' ]; s: 63),
2516
( cc: [ 'K' ]; s: 182),
2518
( cc: [ '0'..'9','B'..'F','H'..'Z','_','a'..'z' ]; s: 63),
2519
( cc: [ 'A' ]; s: 183),
2520
( cc: [ 'G' ]; s: 184),
2522
( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63),
2523
( cc: [ 'E' ]; s: 185),
2525
( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63),
2526
( cc: [ 'd' ]; s: 186),
2528
( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63),
2529
( cc: [ 'D' ]; s: 187),
2531
( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63),
2532
( cc: [ 'r' ]; s: 188),
2534
( cc: [ '0'..'9','A'..'Z','_','a'..'r','t'..'z' ]; s: 63),
2535
( cc: [ 's' ]; s: 189),
2537
( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63),
2538
( cc: [ 'o' ]; s: 190),
2540
( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 63),
2541
( cc: [ 'i' ]; s: 191),
2543
( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 63),
2544
( cc: [ 'u' ]; s: 192),
2546
( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63),
2547
( cc: [ 'r' ]; s: 193),
2549
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2550
( cc: [ 'n' ]; s: 194),
2552
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2553
( cc: [ 'e' ]; s: 195),
2555
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2557
( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63),
2558
( cc: [ 'g' ]; s: 196),
2560
( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 63),
2561
( cc: [ 'a' ]; s: 197),
2563
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2565
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2567
( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63),
2568
( cc: [ 'R' ]; s: 198),
2570
( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63),
2571
( cc: [ 'r' ]; s: 199),
2573
( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63),
2574
( cc: [ 'E' ]; s: 200),
2576
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2577
( cc: [ 'e' ]; s: 201),
2579
( cc: [ 'e' ]; s: 202),
2581
( cc: [ 'l' ]; s: 203),
2584
( cc: [ 'e' ]; s: 204),
2586
( cc: [ 'f' ]; s: 205),
2588
( cc: [ 'i' ]; s: 206),
2590
( cc: [ 'o' ]; s: 207),
2592
( cc: [ 'e' ]; s: 208),
2595
( cc: [ 'g' ]; s: 209),
2597
( cc: [ 'i' ]; s: 210),
2599
( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63),
2600
( cc: [ 'r' ]; s: 211),
2602
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2604
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2605
( cc: [ 'A' ]; s: 212),
2607
( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 63),
2608
( cc: [ 'T' ]; s: 213),
2610
( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63),
2611
( cc: [ 'L' ]; s: 214),
2613
( cc: [ '0'..'9','A','C'..'Z','_','a'..'z' ]; s: 63),
2614
( cc: [ 'B' ]; s: 215),
2616
( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 63),
2617
( cc: [ 'T' ]; s: 216),
2619
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2620
( cc: [ 'A' ]; s: 217),
2622
( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63),
2623
( cc: [ 'E' ]; s: 218),
2625
( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63),
2626
( cc: [ 'P' ]; s: 219),
2628
( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63),
2629
( cc: [ 'D' ]; s: 220),
2631
( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 63),
2632
( cc: [ 'N' ]; s: 221),
2634
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2636
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2638
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2640
( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63),
2641
( cc: [ 't' ]; s: 222),
2643
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2644
( cc: [ 'n' ]; s: 223),
2646
( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63),
2647
( cc: [ 'g' ]; s: 224),
2649
( cc: [ '0'..'9','A'..'Z','_','a','b','d'..'z' ]; s: 63),
2650
( cc: [ 'c' ]; s: 225),
2652
( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63),
2653
( cc: [ 't' ]; s: 226),
2655
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2656
( cc: [ 'e' ]; s: 227),
2658
( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63),
2659
( cc: [ 'd' ]; s: 228),
2661
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2663
( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63),
2664
( cc: [ 't' ]; s: 229),
2666
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2668
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2670
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2672
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2674
( cc: [ 'f' ]; s: 230),
2676
( cc: [ 'u' ]; s: 231),
2680
( cc: [ 'f' ]; s: 232),
2682
( cc: [ 'r' ]; s: 233),
2684
( cc: [ 'f' ]; s: 234),
2686
( cc: [ 'm' ]; s: 235),
2688
( cc: [ 'n' ]; s: 236),
2690
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2691
( cc: [ 'n' ]; s: 237),
2693
( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63),
2694
( cc: [ 'L' ]; s: 238),
2696
( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63),
2697
( cc: [ 'R' ]; s: 239),
2699
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2701
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2702
( cc: [ 'A' ]; s: 240),
2704
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2706
( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63),
2707
( cc: [ 'L' ]; s: 241),
2709
( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63),
2710
( cc: [ 'D' ]; s: 242),
2712
( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63),
2713
( cc: [ 'I' ]; s: 243),
2715
( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63),
2716
( cc: [ 'I' ]; s: 244),
2718
( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 63),
2719
( cc: [ 'T' ]; s: 245),
2721
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2723
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2725
( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63),
2726
( cc: [ 'n' ]; s: 246),
2728
( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63),
2729
( cc: [ 't' ]; s: 247),
2731
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2733
( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63),
2734
( cc: [ 'd' ]; s: 248),
2736
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2737
( cc: [ 'e' ]; s: 249),
2739
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2741
( cc: [ ' ' ]; s: 250),
2743
( cc: [ 'd' ]; s: 251),
2748
( cc: [ 'a' ]; s: 252),
2750
( cc: [ 'e' ]; s: 253),
2752
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2754
( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63),
2755
( cc: [ 'L' ]; s: 254),
2757
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2758
( cc: [ 'A' ]; s: 255),
2760
( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63),
2761
( cc: [ 'C' ]; s: 256),
2763
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2765
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2767
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2769
( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63),
2770
( cc: [ 'A' ]; s: 257),
2772
( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63),
2773
( cc: [ 'R' ]; s: 258),
2775
( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63),
2776
( cc: [ 'e' ]; s: 259),
2778
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2780
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2782
( cc: [ '0'..'9','A'..'Z','_','a'..'e','g'..'z' ]; s: 63),
2783
( cc: [ 'f' ]; s: 260),
2785
( cc: [ '_' ]; s: 261),
2787
( cc: [ 'e' ]; s: 262),
2791
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2793
( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63),
2794
( cc: [ 'P' ]; s: 263),
2796
( cc: [ '0'..'9','A'..'J','L'..'Z','_','a'..'z' ]; s: 63),
2797
( cc: [ 'K' ]; s: 264),
2799
( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63),
2800
( cc: [ 'P' ]; s: 265),
2802
( cc: [ '0'..'9','A'..'X','Z','_','a'..'z' ]; s: 63),
2803
( cc: [ 'Y' ]; s: 266),
2805
( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63),
2806
( cc: [ 'd' ]; s: 267),
2808
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2810
( cc: [ '_' ]; s: 268),
2813
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2815
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2817
( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63),
2818
( cc: [ 'I' ]; s: 269),
2820
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2822
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2824
( cc: [ 'c' ]; s: 270),
2826
( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63),
2828
( cc: [ 'p' ]; s: 271),
2830
( cc: [ 'l' ]; s: 272),
2832
( cc: [ 'u' ]; s: 273),
2834
( cc: [ 's' ]; s: 274),
2836
( cc: [ 'p' ]; s: 275),
2838
( cc: [ 'l' ]; s: 276),
2840
( cc: [ 'u' ]; s: 277),
2842
( cc: [ 's' ]; s: 278),
2844
( cc: [ #9,' ' ]; s: 278),
2845
( cc: [ #10 ]; s: 279),
2847
( cc: [ 'e' ]; s: 280),
2848
( cc: [ '}' ]; s: 281),
2850
( cc: [ 'x' ]; s: 282),
2852
( cc: [ #10 ]; s: 283),
2854
( cc: [ 't' ]; s: 284),
2856
( cc: [ '#' ]; s: 285),
2858
( cc: [ 'e' ]; s: 286),
2860
( cc: [ 'e' ]; s: 287),
2862
( cc: [ 'r' ]; s: 288),
2864
( cc: [ 'n' ]; s: 289),
2866
( cc: [ 'n' ]; s: 290),
2868
( cc: [ 'd' ]; s: 291),
2870
( cc: [ ' ' ]; s: 292),
2872
( cc: [ 'i' ]; s: 293),
2874
( cc: [ '"' ]; s: 294),
2876
( cc: [ 'f' ]; s: 295),
2878
( cc: [ 'C' ]; s: 296),
2881
( cc: [ '"' ]; s: 297),
2883
( cc: [ ' ' ]; s: 298),
2885
( cc: [ '{' ]; s: 299),
2887
( cc: [ #10 ]; s: 300),
2889
( cc: [ '#' ]; s: 301),
2891
( cc: [ 'e' ]; s: 302),
2893
( cc: [ 'n' ]; s: 303),
2895
( cc: [ 'd' ]; s: 304),
2897
( cc: [ 'i' ]; s: 305),
2899
( cc: [ 'f' ]; s: 306)
2903
yykl : array [0..yynstates-1] of Integer = (
3213
yykh : array [0..yynstates-1] of Integer = (
3523
yyml : array [0..yynstates-1] of Integer = (
3833
yymh : array [0..yynstates-1] of Integer = (
4143
yytl : array [0..yynstates-1] of Integer = (
4453
yyth : array [0..yynstates-1] of Integer = (
4766
label start, scan, action;
4778
(* mark positions and matches: *)
4780
for yyn := yykl[yystate] to yykh[yystate] do yymark(yyk[yyn]);
4781
for yyn := yymh[yystate] downto yyml[yystate] do yymatch(yym[yyn]);
4783
if yytl[yystate]>yyth[yystate] then goto action; (* dead state *)
4785
(* get next character: *)
4789
(* determine action: *)
4791
yyn := yytl[yystate];
4792
while (yyn<=yyth[yystate]) and not (yyactchar in yyt[yyn].cc) do inc(yyn);
4793
if yyn>yyth[yystate] then goto action;
4794
(* no transition on yyactchar in this state *)
4796
(* switch to new state: *)
4798
yystate := yyt[yyn].s;
4804
(* execute action: *)
4806
if yyfind(yyrule) then
4809
if yyreject then goto action;
4811
else if not yydefault and yywrap then
4817
if not yydone then goto start;
4826
function act_token : string;