Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / beh / beg / beg_gen.l
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI AVERTEC */
4 /* */
5 /* Produit : BEG_GEN Version 1.00 */
6 /* Fichier : beg_gen.l */
7 /* */
8 /* (c) copyright 2002 AVERTEC */
9 /* Tous droits reserves */
10 /* */
11 /* Auteur(s) : Antony PINTO */
12 /* */
13 /****************************************************************************/
14
15
16 %{
17 #include "beg_gen.tab.h"
18 #include MUT_H
19 #include "beg_gen.h"
20
21 #define ECHO // fprintf(stderr,"\n-=<{oo}>=- %s\n",yytext)
22 #define YY_NO_UNPUT
23 /* static YY_BUFFER_STATE yy_current_buffer = 0; */
24
25 extern char *BEG_GEN_STR ;
26
27 #define YY_USER_INIT yy_current_buffer = yy_scan_string (BEG_GEN_STR) ;
28 #define yyterminate() yy_delete_buffer (yy_current_buffer) ; yy_init = 1 ; return YY_NULL ;
29
30 %}
31
32 Upalpha [A-Z]
33 Lowalpha [a-z]
34 Num [0-9]*
35 SpeNum (x|X|u|U|z|Z)
36 BinNum (0|1|{SpeNum})
37 OctNum ([0-7]|{SpeNum})
38 HexNum ({Num}|[a-fA-F]|{SpeNum})
39 Alpha ({Upalpha}|{Lowalpha})
40 AlphaNum ({Alpha}|{Num})
41 Variable {Alpha}({AlphaNum}|[_/.@])*
42
43 LogicAnd ([aA][nN][dD])
44 LogicOr ([oO][rR])
45 LogicXor ([xX][oO][rR])
46 LogicNot ([nN][oO][tT])
47 LogicNor ([Nn][oO][rR])
48 LogicNand ([Nn][aA][nN][dD])
49 LogicNxor ([Nn][xX][oO][rR])
50 Event ([Ee][Vv][Ee][Nn][Tt])
51 Stable ([Ss][Tt][Aa][Bb][Ll][Ee])
52
53 To ([Tt][Oo])
54 DownTo ([Dd][Oo][Ww][Nn][Tt][Oo])
55
56 BaseBin (0[B|b])
57 BaseHex (0[X|x])
58 BaseOct (0[O|o])
59 Zero ('0')
60 One ('1')
61 Hz ('[Zz]')
62 Undef ('[Uu]')
63 Conflict ('[Xx]')
64
65 %%
66
67 [ \t] {ECHO ; }
68 = {ECHO ; return _EQUAL ;}
69 \( {ECHO ; return _LEFTPAR ;}
70 \) {ECHO ; return _RIGHPAR ;}
71 \^ {ECHO ; return _REP ;}
72 & {ECHO ; return _CAT ;}
73 ' {ECHO ; return _QUOTE ;}
74 : {ECHO ; return _COLON ;}
75 {LogicAnd} {ECHO ; return BEG_AND ;}
76 {LogicOr} {ECHO ; return _OR ;}
77 {LogicXor} {ECHO ; return _XOR ;}
78 {LogicNot} {ECHO ; return _NOT ;}
79 {LogicNand} {ECHO ; return _NAND ;}
80 {LogicNor} {ECHO ; return _NOR ;}
81 {LogicNxor} {ECHO ; return _NXOR ;}
82 {Zero} {ECHO ; return _ZERO ;}
83 {One} {ECHO ; return _ONE ;}
84 {Hz} {ECHO ; return _HZ ;}
85 {Undef} {ECHO ; return _UNDEF ;}
86 {Conflict} {ECHO ; return _CONFLICT ;}
87 {To} {ECHO ; return _TO ;}
88 {DownTo} {ECHO ; return _DOWNTO ;}
89 {Event} {ECHO ; return _EVENT ;}
90 {Stable} {ECHO ; return _STABLE ;}
91
92 {BaseBin}([ ]?{BinNum}(_?{BinNum})*) {
93 ECHO ; beg_genlval.text = beg_genBitStr(yytext);
94 return _BITSTR ;}
95 {BaseOct}([ ]?{OctNum}(_?{OctNum})*) {
96 ECHO ; beg_genlval.text = beg_genBitStr(yytext);
97 return _BITSTR ;}
98 {BaseHex}([ ]?{HexNum}(_?{HexNum})*) {
99 ECHO ; beg_genlval.text = beg_genBitStr(yytext);
100 return _BITSTR ;}
101 {Variable} {ECHO ; beg_genlval.text = mbkstrdup(yytext); return _NAME ;}
102 {Num} {ECHO ; beg_genlval.text = mbkstrdup(yytext); return _NUMBER;}
103
104 \+ {ECHO ; return _PLUS ;}
105 \* {ECHO ; return _MULT ;}
106 \- {ECHO ; return _MINUS ;}
107 \/ {ECHO ; return _DIV ;}
108
109 %%
110
111 int yywrap () { return (1) ; }
112
113