blob: 02eed4616202b30ed95476592e71d03b41104de7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
%option yywrap
%{
#include <ExprIntrp.tab.h>
#define YY_SKIP_YYWRAP
static YY_BUFFER_STATE ExprIntrp_bufstring;
void ExprIntrp_SetResult();
void ExprIntrp_SetDegree();
void ExprIntrp_start_string(char* str)
{
ExprIntrp_bufstring = ExprIntrp_scan_string(str);
}
void ExprIntrp_stop_string()
{
ExprIntrp_delete_buffer(ExprIntrp_bufstring);
}
int yywrap()
{
return 1;
}
%}
%%
" " {;}
"+" {return(SUMOP) ;}
"-" {return(MINUSOP) ;}
"/" {return(DIVIDEOP) ;}
"^" {return(EXPOP) ;}
"**" {return(EXPOP) ;}
"*" {return(MULTOP) ;}
"(" {return(PARENTHESIS);}
"[" {return(BRACKET);}
")" {return(ENDPARENTHESIS);}
"]" {return(ENDBRACKET);}
"," {return(COMMA);}
"@" {return(DIFFERENTIAL);}
"<-" {return(ASSIGNOP);}
"=" {return(EQUALOP);}
"Deassign" {return(DEASSIGNKEY);}
"Deriv" {return(DERIVKEY);}
"Const" {return(CONSTKEY);}
"Sum" {return(SUMKEY);}
"Prod" {return(PRODKEY);}
[0-9.]+e[+|-]?[0-9]+ {ExprIntrp_SetResult(); return(VALUE);}
[0-9.]+ {ExprIntrp_SetResult(); return(VALUE);}
[a-zA-Z][a-zA-Z0-9_]* {ExprIntrp_SetResult(); return(IDENTIFIER);}
";" {return(RELSEPARATOR);}
"'"+ {ExprIntrp_SetDegree();return(DERIVATE);}
|