Changeset 642 for XIOS/trunk/src/parse_expr/lex_parser.lex
- Timestamp:
- 07/17/15 13:58:13 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/parse_expr/lex_parser.lex
r501 r642 7 7 } 8 8 #undef YY_INPUT 9 #define YY_INPUT(b, r,s) readInputForLexer(b,&r,s)9 #define YY_INPUT(b, r, s) readInputForLexer(b, &r, s) 10 10 #include <string> 11 11 12 int readInputForLexer( char *buffer, int *numBytesRead, int maxBytesToRead );12 int readInputForLexer(char* buffer, size_t* numBytesRead, size_t maxBytesToRead); 13 13 14 15 #include "simple_node_expr.hpp" 14 #include "filter_expr_node.hpp" 16 15 #include "yacc_parser.hpp" 17 16 18 17 %} 19 18 20 white [ \t]+19 white [ \t]+ 21 20 22 digit [0-9]21 digit [0-9] 23 22 integer {digit}+ 24 23 exponant [eE][+-]?{integer} 25 real {integer}("."{integer})?{exponant}? 26 id [a-zA-Z][a-zA-Z0-9_]* 27 average @{id} 28 var \${id} 24 real {integer}("."{integer})?{exponant}? 25 id [a-zA-Z][a-zA-Z0-9_]* 26 average @{id} 27 var \${id} 28 29 29 %% 30 30 31 {white} { /* We ignore white characters */ }31 {white} { /* We ignore white characters */ } 32 32 33 {real} {34 yylval.str=new std::string(yytext);35 return NUMBER;36 }33 {real} { 34 yylval.str = new std::string(yytext); 35 return NUMBER; 36 } 37 37 38 {average} 39 yylval.str=new std::string(yytext+1);40 return AVERAGE;41 38 {average} { 39 yylval.str = new std::string(yytext + 1); 40 return AVERAGE; 41 } 42 42 43 {var} 44 yylval.str=new std::string(yytext+1);45 return VAR;46 43 {var} { 44 yylval.str = new std::string(yytext + 1); 45 return VAR; 46 } 47 47 48 {id} 49 yylval.str=new std::string(yytext);50 return ID;51 48 {id} { 49 yylval.str = new std::string(yytext); 50 return ID; 51 } 52 52 53 53 54 "+" return (PLUS);55 "-" return (MINUS);54 "+" return PLUS; 55 "-" return MINUS; 56 56 57 "*" return (TIMES);58 "/" return (DIVIDE);57 "*" return TIMES; 58 "/" return DIVIDE; 59 59 60 "^" return (POWER);60 "^" return POWER; 61 61 62 "(" return (LEFT_PARENTHESIS);63 ")" return (RIGHT_PARENTHESIS);62 "(" return LEFT_PARENTHESIS; 63 ")" return RIGHT_PARENTHESIS; 64 64 65 "\0" { 66 return(END); 67 } 65 "\0" return END;
Note: See TracChangeset
for help on using the changeset viewer.