siegel@hc.DSPO.GOV (josh Siegel) (09/13/88)
(I have only tested this under SunOS 4.0 and BSD4.3)
The following code makes lex produce C code with a syntax error in it:
-----
W [ \t]+
%%
^{W}% { }
%%
same for:
-----
W [ \t]+
%%
^{W}\% { }
%%
but not for:
-----
%%
^[ \t]+% { }
%%
Comments?
--Josh Siegel
--
Josh Siegel (siegel@hc.dspo.gov)
I like using a C-47A "puff dragon" to go shooting beer cans with.ejp@ausmelb.oz (Esmond Pitt) (09/14/88)
In article <14373@hc.DSPO.GOV> siegel@hc.DSPO.GOV (josh Siegel) writes: > (I have only tested this under SunOS 4.0 and BSD4.3) > > The following code makes lex produce C code with a syntax error in it: > ----- > W [ \t]+ > %% > ^{W}% { } > %% This also happens on a Pyramid under both att & bsd universes (i.e. both lex's), probably because '%' is a special character to lex. ^{W}"%" also fails. However the example works correctly & is in somewhat better (safer) style if the definition of W is written as: W ([ \t]+) Lex definitions should _always_ be parenthesised, for the same reason that #defines which yield expressions should always parenthesise them: to ensure that the apparent and real precedences are the same. -- Esmond Pitt, Austec International Ltd ...!uunet.UU.NET!munnari!ausmelb!ejp,ejp@ausmelb.oz