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