home *** CD-ROM | disk | FTP | other *** search
-
- (* lexical analyzer template (TP Lex V3.0), V1.0 3-2-91 AG *)
-
- (* global definitions: *)
- %%
-
- function yylex : Integer;
-
- procedure yyaction ( yyruleno : Integer );
- (* local definitions: *)
- %%
- begin
- (* actions: *)
- case yyruleno of
- %%
- end;
- end(*yyaction*);
-
- (* DFA table: *)
- %%
-
- var yyn : Integer;
-
- label start, scan, action;
-
- begin
-
- start:
-
- (* initialize: *)
-
- yynew;
-
- scan:
-
- (* mark positions and matches: *)
-
- for yyn := yykl[yystate] to yykh[yystate] do yymark(yyk[yyn]);
- for yyn := yymh[yystate] downto yyml[yystate] do yymatch(yym[yyn]);
-
- if yytl[yystate]>yyth[yystate] then goto action; (* dead state *)
-
- (* get next character: *)
-
- yyscan;
-
- (* determine action: *)
-
- yyn := yytl[yystate];
- while (yyn<=yyth[yystate]) and not (yyactchar in yyt[yyn].cc) do inc(yyn);
- if yyn>yyth[yystate] then goto action;
- (* no transition on yyactchar in this state *)
-
- (* switch to new state: *)
-
- yystate := yyt[yyn].s;
-
- goto scan;
-
- action:
-
- (* execute action: *)
-
- if yyfind(yyrule) then
- begin
- yyaction(yyrule);
- if yyreject then goto action;
- end
- else if not yydefault and yywrap then
- begin
- yyclear;
- return(0);
- end;
-
- if not yydone then goto start;
-
- yylex := yyretval;
-
- end(*yylex*);
-
-