diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-30 04:26:05 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-30 04:26:05 (GMT) |
commit | 191dc4857c852f1867e80cd9d03a6d1c0921dcb1 (patch) | |
tree | 4a6421d50eb6cf70924fc0ba06afccf10df00650 /lexer.l | |
parent | 6940d171812565209efe679a5d923417c3f47d4a (diff) |
header file reorg
git-svn-id: http://svn.clifford.at/openscad/trunk@365 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'lexer.l')
-rw-r--r-- | lexer.l | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/lexer.l b/lexer.l deleted file mode 100644 index c9e9332..0000000 --- a/lexer.l +++ /dev/null @@ -1,114 +0,0 @@ -/* - * OpenSCAD (www.openscad.at) - * Copyright (C) 2009 Clifford Wolf <clifford@clifford.at> - * - * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -%{ - -#include "openscad.h" -#include "printutils.h" -#include "parser_yacc.h" - -int lexerget_lineno(void); -#ifdef __GNUC__ -static void yyunput(int, char*) __attribute__((unused)); -#endif -extern const char *parser_input_buffer; - -#define YY_INPUT(buf,result,max_size) { \ - if (yyin && yyin != stdin) { \ - int c = fgetc(yyin); \ - if (c >= 0) { \ - result = 1; \ - buf[0] = c; \ - } else { \ - result = YY_NULL; \ - } \ - } else { \ - if (*parser_input_buffer) { \ - result = 1; \ - buf[0] = *(parser_input_buffer++); \ - parser_error_pos++; \ - } else { \ - result = YY_NULL; \ - } \ - } \ -} - -%} - -%option yylineno -%option noyywrap - -%x comment - -%% - -"<"[^ \t\n>]+">" { - char *filename = strdup(yytext+1); - filename[strlen(filename)-1] = 0; - handle_dep(filename); - yyin = fopen(filename, "r"); - if (!yyin) { - PRINTF("WARNING: Can't open input file `%s'.", filename); - } else { - yypush_buffer_state(yy_create_buffer( yyin, YY_BUF_SIZE )); - BEGIN(INITIAL); - } - free(filename); -} - -<<EOF>> { - if (yyin && yyin != stdin) - fclose(yyin); - yypop_buffer_state(); - if (!YY_CURRENT_BUFFER) - yyterminate(); -} - -"module" return TOK_MODULE; -"function" return TOK_FUNCTION; - -"true" return TOK_TRUE; -"false" return TOK_FALSE; -"undef" return TOK_UNDEF; - -[0-9][0-9.]* { parserlval.number = QString(yytext).toDouble(); return TOK_NUMBER; } -"$"?[a-zA-Z0-9_]+ { parserlval.text = strdup(yytext); return TOK_ID; } - -\"[^"]*\" { - parserlval.text = strdup(yytext+1); - parserlval.text[strlen(parserlval.text)-1] = 0; - return TOK_STRING; -} - -[\n\r\t ] -\/\/[^\n]*\n? -"/*" BEGIN(comment); -<comment>"*/" BEGIN(INITIAL); -<comment>.|\n - -"<=" return LE; -">=" return GE; -"==" return EQ; -"!=" return NE; -"&&" return AND; -"||" return OR; - -. { return yytext[0]; } - |