3 $Id: lexer.l 23065 2016-03-02 09:05:50Z coelho $
5 Copyright 1989-2016 MINES ParisTech
7 This file is part of PIPS.
9 PIPS is free software: you can redistribute it and/or modify it
10 under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
14 PIPS is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with PIPS. If not, see <http://www.gnu.org/licenses/>.
31 #include "pips_config.h"
40 #include "resources.h"
48 "REFERENCE" return REFERENCE_TOK;
49 "QI_REF" return QI_REF_TOK;
50 "HI_REF" return HI_REF_TOK;
51 "SI_REF" return SI_REF_TOK;
52 "DI_REF" return DI_REF_TOK;
53 "SF_REF" return SF_REF_TOK;
54 "DF_REF" return DF_REF_TOK;
55 "SC_REF" return SC_REF_TOK;
56 "DC_REF" return DC_REF_TOK;
57 "LOG_REF" return LOG_REF_TOK;
58 "CONSTANT" return CONSTANT_TOK;
59 "=" return ASSIGN_OPERATOR_TOK;
60 "+" return PLUS_OPERATOR_TOK;
61 "-" return MINUS_OPERATOR_TOK;
62 "UNARY_MINUS" return UNARY_MINUS_OPERATOR_TOK;
63 "*" return MULTIPLY_OPERATOR_TOK;
64 "__PIPS_SAC_MULADD" return MULADD_OPERATOR_TOK;
65 "/" return DIVIDE_OPERATOR_TOK;
66 "INVERSE" return INVERSE_OPERATOR_TOK;
67 "^" return POWER_OPERATOR_TOK;
68 "%" return MODULO_OPERATOR_TOK;
69 "MIN" return MIN_OPERATOR_TOK;
70 "COS" return COS_OPERATOR_TOK;
71 "SIN" return SIN_OPERATOR_TOK;
72 "MIN0" return MIN0_OPERATOR_TOK;
73 "AMIN1" return AMIN1_OPERATOR_TOK;
74 "DMIN1" return DMIN1_OPERATOR_TOK;
75 "MAX" return MAX_OPERATOR_TOK;
76 "MAX0" return MAX0_OPERATOR_TOK;
77 "AMAX1" return AMAX1_OPERATOR_TOK;
78 "DMAX1" return DMAX1_OPERATOR_TOK;
79 "ABS" return ABS_OPERATOR_TOK;
80 "IABS" return IABS_OPERATOR_TOK;
81 "DABS" return DABS_OPERATOR_TOK;
82 "CABS" return CABS_OPERATOR_TOK;
83 "&" return AND_OPERATOR_TOK;
84 "|" return OR_OPERATOR_TOK;
85 "!" return NOT_OPERATOR_TOK;
86 "!=" return NON_EQUAL_OPERATOR_TOK;
87 "EQUIV" return EQUIV_OPERATOR_TOK;
88 "NON_EQUIV" return NON_EQUIV_OPERATOR_TOK;
89 "TRUE" return TRUE_OPERATOR_TOK;
90 "FALSE" return FALSE_OPERATOR_TOK;
91 ">=" return GREATER_OR_EQUAL_OPERATOR_TOK;
92 ">" return GREATER_THAN_OPERATOR_TOK;
93 "<=" return LESS_OR_EQUAL_OPERATOR_TOK;
94 "<" return LESS_THAN_OPERATOR_TOK;
95 "==" return EQUAL_OPERATOR_TOK;
97 [0-9.-]+ { yylval.iVal = atoi(yytext); return INTEGER_TOK; }
98 [A-Za-z][0-9A-Za-z_]* { yylval.strVal = strdup(yytext); return IDENTIFIER_TOK; }
100 [\n] { sac_lineno ++; }