Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / lib / lib.l
1 %{
2 #include <string.h>
3 #include "lib.tab.h"
4 #include MUT_H
5
6 #define YY_NO_UNPUT
7 #define ECHO /*fprintf(stdout,"\ntoken %s\n",yytext)*/
8 int LIB_LINE = 1 ;
9
10
11 %}
12 %x COMMENT
13 %x LEFTPAR
14 operateur [+\*/\^\-]
15 number [-+]?[0-9]*\.?[0-9]*([Ee][-+]?[0-9]+)?
16 string \"[^"\\]*((\\\")+[^\\]+(\\\")+[^"]*)*\"
17 string2 [A-Za-z!@#$%^&_+=\|~\?][A-Za-z0-9!@#$%^&_+=\|~\?]*[\<\{\[\(][-0-9:]+[\]\}\>\)]
18 ident [-a-zA-Z0-9!@#$%^&_+=|~?<>.]+
19
20
21 %%
22 \n {LIB_LINE++ ; }
23 {operateur} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_OPE); }
24 {number} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_NUMBER) ; }
25 {string} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_STRING) ; }
26 {string2} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_STRING) ; }
27 {ident} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_IDENT) ; }
28 \, {ECHO; return (_COMMA) ; }
29 \; {ECHO; return (_SEMI) ; }
30 \( {ECHO; BEGIN(LEFTPAR) ; return (_LPAR) ; }
31 \{ {ECHO; return (_LCURLY); }
32 \} {ECHO; return (_RCURLY); }
33 \: {ECHO; return (_COLON) ; }
34 [ \t] { }
35 \r { }
36 "/*" {ECHO; BEGIN(COMMENT) ; }
37 <COMMENT>[^*\n]* { }
38 <COMMENT>"*"+[^*/\n]* { }
39 <COMMENT>\n {LIB_LINE++ ; }
40 <COMMENT>"*"+"/" {ECHO; BEGIN(INITIAL); }
41 <LEFTPAR>{operateur} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_OPE); }
42 <LEFTPAR>{number} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_NUMBER) ; }
43 <LEFTPAR>{string} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_STRING) ; }
44 <LEFTPAR>{string2} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_STRING) ; }
45 <LEFTPAR>{ident} {ECHO; liblval.stringtype = mbkstrdup(yytext); return (_IDENT) ; }
46 <LEFTPAR>\, {ECHO; return (_COMMA) ; }
47 <LEFTPAR>\) {ECHO; BEGIN(INITIAL); return (_RPAR) ; }
48 %%
49
50 int libwrap() { return 1 ; }