1fd7d9bd3Smrg/*
2fd7d9bd3Smrg** lex file for xgc syntax
3fd7d9bd3Smrg*/
4fd7d9bd3Smrg
5fd7d9bd3Smrg/* Lots of stuff stolen from gwm's wool.lex */
6fd7d9bd3Smrg
7fd7d9bd3Smrg%{
8fd7d9bd3Smrg
9fd7d9bd3Smrg#include <X11/X.h>
10fd7d9bd3Smrg#include <stdlib.h>
11fd7d9bd3Smrg#include "gram.h"
12fd7d9bd3Smrg#include "constants.h"
13fd7d9bd3Smrg#if defined(FLEX_SCANNER) && !defined(YY_FLEX_LEX_COMPAT) && !defined(__UNIXOS2__)
14fd7d9bd3Smrgint yylineno;
15fd7d9bd3Smrg#endif
16fd7d9bd3Smrg%}
17fd7d9bd3Smrg
18fd7d9bd3Smrg%p				4000
19fd7d9bd3Smrg%a				3000
20fd7d9bd3Smrg
21fd7d9bd3Smrgnumber				[0-9]+
22fd7d9bd3Smrgword				[^\n\t ]+
23fd7d9bd3Smrgstring				\"([^"]|\\.)*\"
24fd7d9bd3Smrg
25fd7d9bd3Smrg%%
26fd7d9bd3Smrg
27fd7d9bd3Smrg[Rr]un				{ return (RUN); }
28fd7d9bd3Smrg
29fd7d9bd3Smrg[Ff]unction			{ return (FUNCTION); }
30fd7d9bd3Smrg[Cc]lear			{ yylval.num = GXclear;
31fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
32fd7d9bd3Smrg[Aa]nd				{ yylval.num = GXand;
33fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
34fd7d9bd3Smrg[Aa]ndReverse			{ yylval.num = GXandReverse;
35fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
36fd7d9bd3Smrg[Cc]opy				{ yylval.num = GXcopy;
37fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
38fd7d9bd3Smrg[Aa]ndInverted			{ yylval.num = GXandInverted;
39fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
40fd7d9bd3Smrg[Nn]oop				{ yylval.num = GXnoop;
41fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
42fd7d9bd3Smrg[Xx]or				{ yylval.num = GXxor;
43fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
44fd7d9bd3Smrg[Oo]r				{ yylval.num = GXor;
45fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
46fd7d9bd3Smrg[Nn]or				{ yylval.num = GXnor;
47fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
48fd7d9bd3Smrg[Ee]quiv			{ yylval.num = GXequiv;
49fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
50fd7d9bd3Smrg[Ii]nvert			{ yylval.num = GXinvert;
51fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
52fd7d9bd3Smrg[Oo]rReverse			{ yylval.num = GXorReverse;
53fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
54fd7d9bd3Smrg[Cc]opyInverted			{ yylval.num = GXcopyInverted;
55fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
56fd7d9bd3Smrg[Oo]rInverted			{ yylval.num = GXorInverted;
57fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
58fd7d9bd3Smrg[Nn]and				{ yylval.num = GXnand;
59fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
60fd7d9bd3Smrg[Ss]et				{ yylval.num = GXset;
61fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
62fd7d9bd3Smrg
63fd7d9bd3Smrg[Tt]est				{ return (TEST); }
64fd7d9bd3SmrgCopyArea			{ yylval.num = CopyArea;
65fd7d9bd3Smrg				  return (TESTTYPE); }
66fd7d9bd3SmrgCopyPlane			{ yylval.num = CopyPlane;
67fd7d9bd3Smrg				  return (TESTTYPE); }
68fd7d9bd3SmrgPolyPoint			{ yylval.num = PolyPoint;
69fd7d9bd3Smrg				  return (TESTTYPE); }
70fd7d9bd3SmrgPolyLine			{ yylval.num = PolyLine;
71fd7d9bd3Smrg				  return (TESTTYPE); }
72fd7d9bd3SmrgPolySegment			{ yylval.num = PolySegment;
73fd7d9bd3Smrg				  return (TESTTYPE); }
74fd7d9bd3SmrgPolyRectangle			{ yylval.num = PolyRectangle;
75fd7d9bd3Smrg				  return (TESTTYPE); }
76fd7d9bd3SmrgPolyArc				{ yylval.num = PolyArc;
77fd7d9bd3Smrg				  return (TESTTYPE); }
78fd7d9bd3SmrgFillPolygon			{ yylval.num = FillPolygon;
79fd7d9bd3Smrg				  return (TESTTYPE); }
80fd7d9bd3SmrgPolyFillRect			{ yylval.num = PolyFillRect;
81fd7d9bd3Smrg				  return (TESTTYPE); }
82fd7d9bd3SmrgPolyFillArc			{ yylval.num = PolyFillArc;
83fd7d9bd3Smrg				  return (TESTTYPE); }
84fd7d9bd3SmrgPutImage			{ yylval.num = PutImage;
85fd7d9bd3Smrg				  return (TESTTYPE); }
86fd7d9bd3SmrgGetImage			{ yylval.num = GetImage;
87fd7d9bd3Smrg				  return (TESTTYPE); }
88fd7d9bd3SmrgPolyText8			{ yylval.num = PolyText8;
89fd7d9bd3Smrg				  return (TESTTYPE); }
90fd7d9bd3SmrgImageText8			{ yylval.num = ImageText8;
91fd7d9bd3Smrg				  return (TESTTYPE); }
92fd7d9bd3SmrgPolyText16			{ yylval.num = PolyText16;
93fd7d9bd3Smrg				  return (TESTTYPE); }
94fd7d9bd3SmrgImageText16			{ yylval.num = ImageText16;
95fd7d9bd3Smrg				  return (TESTTYPE); }
96fd7d9bd3Smrg
97fd7d9bd3Smrg[Ll]inestyle			{ return (LINESTYLE); }
98fd7d9bd3SmrgOnOffDash			{ yylval.num = LineOnOffDash;
99fd7d9bd3Smrg				  return (LINESTYLETYPE); }
100fd7d9bd3SmrgDoubleDash			{ yylval.num = LineDoubleDash;
101fd7d9bd3Smrg				  return (LINESTYLETYPE); }
102fd7d9bd3Smrg
103fd7d9bd3Smrg[Cc]apstyle			{ return (CAPSTYLE); }
104fd7d9bd3SmrgNotLast				{ yylval.num = CapNotLast;
105fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
106fd7d9bd3SmrgButt				{ yylval.num = CapButt;
107fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
108fd7d9bd3SmrgProjecting			{ yylval.num = CapProjecting;
109fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
110fd7d9bd3Smrg
111fd7d9bd3Smrg[Jj]oinstyle			{ return (JOINSTYLE); }
112fd7d9bd3SmrgMiter				{ yylval.num = JoinMiter;
113fd7d9bd3Smrg				  return (JOINSTYLETYPE); }
114fd7d9bd3SmrgBevel				{ yylval.num = JoinBevel;
115fd7d9bd3Smrg				  return (JOINSTYLETYPE); }
116fd7d9bd3Smrg
117fd7d9bd3SmrgRound				{ return (ROUND); }
118fd7d9bd3Smrg
119fd7d9bd3Smrg[Ff]illstyle			{ return (FILLSTYLE); }
120fd7d9bd3SmrgTiled				{ yylval.num = FillTiled;
121fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
122fd7d9bd3SmrgStippled			{ yylval.num = FillStippled;
123fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
124fd7d9bd3SmrgOpaqueStippled			{ yylval.num = FillOpaqueStippled;
125fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
126fd7d9bd3Smrg
127fd7d9bd3SmrgSolid				{ return (SOLID); }
128fd7d9bd3Smrg
129fd7d9bd3Smrg[Ff]illrule			{ return (FILLRULE); }
130fd7d9bd3SmrgEvenOdd				{ yylval.num = EvenOddRule;
131fd7d9bd3Smrg				  return (FILLRULETYPE); }
132fd7d9bd3SmrgWinding				{ yylval.num = WindingRule;
133fd7d9bd3Smrg				  return (FILLRULETYPE); }
134fd7d9bd3Smrg
135fd7d9bd3Smrg[Aa]rcmode			{ return (ARCMODE); }
136fd7d9bd3SmrgChord				{ yylval.num = ArcChord;
137fd7d9bd3Smrg				  return (ARCMODETYPE); }
138fd7d9bd3SmrgPieSlice			{ yylval.num = ArcPieSlice;
139fd7d9bd3Smrg				  return (ARCMODETYPE); }
140fd7d9bd3Smrg
141fd7d9bd3Smrg[Ff]oreground			{ return (FOREGROUND); }
142fd7d9bd3Smrg[Bb]ackground			{ return (BACKGROUND); }
143fd7d9bd3Smrg[Ll]inewidth			{ return (LINEWIDTH); }
144fd7d9bd3Smrg[Pp]lanemask			{ return (PLANEMASK); }
145fd7d9bd3Smrg[Dd]ashlist			{ return (DASHLIST); }
146fd7d9bd3Smrg[Ff]ont				{ return (FONT); }
147fd7d9bd3Smrg[Pp]ercent			{ return (PERCENT); }
148fd7d9bd3Smrg
149fd7d9bd3Smrg{number}			{ (void) sscanf ((char *)yytext, "%d", &yylval.num);
150fd7d9bd3Smrg				  return (NUMBER); }
151fd7d9bd3Smrg{string}			{ yylval.ptr = (char *) yytext;
152fd7d9bd3Smrg				  return (STRING); }
153fd7d9bd3Smrg\#[^\n]*\n			{ ; }
154fd7d9bd3Smrg[\t ]				{ ; }
155fd7d9bd3Smrg\n				{ return ('\n'); }
156fd7d9bd3Smrg
157fd7d9bd3Smrg{word}				{ yylval.ptr = (char *) yytext;
158fd7d9bd3Smrg				  return (STRING); }
159fd7d9bd3Smrg
160fd7d9bd3Smrg.				{ fprintf(stderr,
161fd7d9bd3Smrg					"xgc: bad character `%s', line %d\n",
162fd7d9bd3Smrg					yytext, yylineno); }
163fd7d9bd3Smrg
164fd7d9bd3Smrg%%
165fd7d9bd3Smrg
166fd7d9bd3Smrg#ifndef yywrap
167350952b9Smrgint yywrap(void) { return (1); }
168fd7d9bd3Smrg#endif
169