1 /****************************************************************************/
3 /* Chaine de CAO & VLSI AVERTEC */
5 /* Produit : BEG_GEN Version 1.00 */
6 /* Fichier : beg_gen.l */
8 /* (c) copyright 2002 AVERTEC */
9 /* Tous droits reserves */
11 /* Auteur(s) : Antony PINTO */
13 /****************************************************************************/
17 #include "beg_gen.tab.h"
21 #define ECHO // fprintf(stderr,"\n-=<{oo}>=- %s\n",yytext)
23 /* static YY_BUFFER_STATE yy_current_buffer = 0; */
25 extern char *BEG_GEN_STR ;
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 ;
37 OctNum ([0-7]|{SpeNum})
38 HexNum ({Num}|[a-fA-F]|{SpeNum})
39 Alpha ({Upalpha}|{Lowalpha})
40 AlphaNum ({Alpha}|{Num})
41 Variable {Alpha}({AlphaNum}|[_/.@])*
43 LogicAnd ([aA][nN][dD])
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])
54 DownTo ([Dd][Oo][Ww][Nn][Tt][Oo])
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 ;}
92 {BaseBin}([ ]?{BinNum}(_?{BinNum})*) {
93 ECHO ; beg_genlval.text = beg_genBitStr(yytext);
95 {BaseOct}([ ]?{OctNum}(_?{OctNum})*) {
96 ECHO ; beg_genlval.text = beg_genBitStr(yytext);
98 {BaseHex}([ ]?{HexNum}(_?{HexNum})*) {
99 ECHO ; beg_genlval.text = beg_genBitStr(yytext);
101 {Variable} {ECHO ; beg_genlval.text = mbkstrdup(yytext); return _NAME ;}
102 {Num} {ECHO ; beg_genlval.text = mbkstrdup(yytext); return _NUMBER;}
104 \+ {ECHO ; return _PLUS ;}
105 \* {ECHO ; return _MULT ;}
106 \- {ECHO ; return _MINUS ;}
107 \/ {ECHO ; return _DIV ;}
111 int yywrap () { return (1) ; }