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