// sattool - visual satellite tracking and prediction tool. // Copyright 2000 Tom Rothamel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. /* The main input file lexer. */ %{ #include "sattool.h" #include "parser.h" %} %option noyywrap CHAR [-0-9A-Za-z._] DIGIT [-0-9.] %x qstr %% sgp4sat { return SGP4SAT; } earthsite { return EARTHSITE; } pass { return PASS; } inf { yylval.d = HUGE_VAL; return NUM; } -inf { yylval.d = -HUGE_VAL; return NUM; } {DIGIT}+ { yylval.d = atof(yytext); return NUM; } {CHAR}+ { yylval.s = strdup(yytext); return STR; } \" { BEGIN(qstr); } \\. { yymore(); } [^\"\\]+ { yymore(); } \" { BEGIN(INITIAL); yylval.s = strdup(yytext); yylval.s[yyleng-1] = 0; // DescapeString(yylval.str); return STR; } [ \t\n,]+ . { return yytext[0]; } %% void lexer_scan_string(char *s) { yy_scan_string(s); }