1 %{ 2 #include <math.h> 3 #include "ou.h" 4 5 int reserverd_word(char *s); 6 extern int yylineno; 7 #define YY_NO_UNPUT 8 %} 9 10 %option noyywrap 11 12 DIGIT [0-9] 13 TEXT [a-z_\-:/0-9.]* 14 15 %% 16 17 border return BORDER; 18 atmospheres return ATMOSPHERES; 19 splash return SPLASHBITMAP; 20 filter return FILTER; 21 shading return SHADING; 22 date return SIM_DATE; 23 pause return PAUSE; 24 realtime return REALTIME; 25 demo return DEMO; 26 demostep return DEMOSTEP; 27 planets_labels return PLANETS_LABELS; 28 stars_labels return STARS_LABELS; 29 info return INFO; 30 star_brightness_factor return STAR_BRIGHT; 31 star_size return STAR_SIZE; 32 camera_speed return CAM_SPEED; 33 camera_mode return CAM_MODE; 34 target return TARGET; 35 source return SOURCE; 36 slices return SLICES; 37 stacks return STACKS; 38 jpeg_quality return JPEG_QUALITY; 39 mipmap return MIPMAP; 40 mipmap_filter return MIPMAP_FILTER; 41 sun return SUN; 42 planet return PLANET; 43 satellite return SATELLITE; 44 orbiter return ORBITER; 45 spaceship return SPACESHIP; 46 asteroid return ASTEROID; 47 comet return COMET; 48 atmosphere return ATMOSPHERE; 49 ring return RING; 50 font return FONT; 51 LOD return LEVELOFDETAIL; 52 texture_compression return TEXTURECOMPRESSION; 53 color_depth return COLORDEPTH; 54 logo return LOGO; 55 milky_way return MILKYWAY; 56 messier return MESSIER; 57 58 {DIGIT}+ { cfglval.ival = atoi(yytext); return INTEGER_NUM; } 59 60 {DIGIT}+"."{DIGIT}*"E"*{DIGIT}* { cfglval.dval = atof(yytext); return DOUBLE_NUM; } 61 62 {TEXT} { strcpy(cfglval.name, yytext); return NAME; } 63 64 65 "\#"(.)*"\n" yylineno++; 66 "/*" { 67 register int c; 68 69 for (;;) { 70 while ((c = yyinput()) != '*' && c != EOF); /* eat up text of comment */ 71 72 if (c == '*') { 73 while ((c = yyinput()) == '*'); 74 if (c == '/') 75 break; /* found the end */ 76 } 77 78 if (c == EOF) { 79 error("EOF in comment"); 80 break; 81 } 82 } 83 } 84 85 [\t]+ 86 \n { yylineno++; } 87 "{" return ('{'); 88 "}" return ('}'); 89 "=" return ('='); 90 ";" return (';'); 91 . 92 93 %% 94