Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / stm / stm_model.l
1 %{
2 #include <string.h>
3 #include MUT_H
4
5 #define API_HIDE_TOKENS
6
7 #include API_H
8 #include "stmmodel.tab.h"
9 extern int STM_LINE;
10 static int parlevel;
11
12 #define ECHO /*fprintf(stdout,"\ntoken %s line %d\n",yytext, STM_LINE)*/
13 #define YY_NO_UNPUT
14
15 %}
16 %x DONTCARE
17 %x COMMENT
18
19 upper_alpha [A-Z]
20 lower_alpha [a-z]
21 num [0-9]
22 alpha ({upper_alpha}|{lower_alpha})
23 alphanum ({alpha}|{num})
24 number -?{num}+(\.({num}*))?
25 enumber -?{num}+(\.({num}*))?(e|E)[+|-]?{num}+
26 identifier {alpha}(([\[|\\./:$_\-|!+@{}\#\]<>]?)+{alphanum}((\[|\\\[|$){num}+(\]|\\\]|$))?)*
27 comment \/\/
28
29 %%
30 \n { ECHO; STM_LINE++; }
31 {comment}.*$ { ECHO; }
32 [ \t] { ECHO; }
33 <DONTCARE>\( { ECHO; parlevel++; }
34 <DONTCARE>[^\(\)\n]* { ECHO; }
35 <DONTCARE>\n { ECHO; STM_LINE++; }
36 <DONTCARE>\) { ECHO; parlevel--; if (!parlevel) BEGIN INITIAL; }
37 \/\* { ECHO; BEGIN COMMENT; }
38 <COMMENT>[^\*\n]* { ECHO; }
39 <COMMENT>\*+ { ECHO; }
40 <COMMENT>\n { ECHO; STM_LINE++;}
41 <COMMENT>\*+\/ { ECHO; BEGIN INITIAL; }
42 \( { ECHO; return '('; }
43 \) { ECHO; return ')'; }
44 unknown { ECHO; return (_UNKNOWN); }
45 model { ECHO; return (_MODEL); }
46 name { ECHO; return (_NAME); }
47 vdd { ECHO; return (_VDD); }
48 vth { ECHO; return (_VTH); }
49 varthmin { ECHO; return (_VARTHMIN); }
50 varthmax { ECHO; return (_VARTHMAX); }
51 vt { ECHO; return (_VT); }
52 vf { ECHO; return (_VF); }
53 tran { ECHO; return (_TRAN); }
54 spline { ECHO; return (_SPLINE); }
55 scm_dual { ECHO; return (_SCM_DUAL); }
56 scm_good { ECHO; return (_SCM_GOOD); }
57 scm_false { ECHO; return (_SCM_FALSE); }
58 scm_path { ECHO; return (_SCM_PATH); }
59 scm_cst { ECHO; return (_SCM_CST); }
60 dual { ECHO; return (_DUAL); }
61 false { ECHO; return (_FALSE); }
62 path { ECHO; return (_PATH); }
63 link_out { ECHO; return (_LINK_OUT); }
64 link_pass { ECHO; return (_LINK_PASS); }
65 link_dual { ECHO; return (_LINK_DUAL); }
66 pconf0 { ECHO; return (_PCONF0); }
67 pconf1 { ECHO; return (_PCONF1); }
68 capai { ECHO; return (_CAPAI); }
69 capai0 { ECHO; return (_CAPAI0); }
70 capai1 { ECHO; return (_CAPAI1); }
71 capai2 { ECHO; return (_CAPAI2); }
72 capai3 { ECHO; return (_CAPAI3); }
73 vt0 { ECHO; return (_VT0); }
74 vt0c { ECHO; return (_VT0C); }
75 irap { ECHO; return (_IRAP); }
76 vddin { ECHO; return (_VDDIN); }
77 threshold { ECHO; return (_THRESHOLD); }
78 ithr { ECHO; return (_INPUT_THR); }
79 rint { ECHO; return (_RINT); }
80 vint { ECHO; return (_VINT); }
81 chalf { ECHO; return (_CHALF); }
82 qinit { ECHO; return (_QINIT); }
83 rconf { ECHO; return (_RCONF); }
84 kr { ECHO; return (_KR); }
85 imax { ECHO; return (_IMAX); }
86 an { ECHO; return (_AN); }
87 bn { ECHO; return (_BN); }
88 acti { ECHO; return (_ACTI); }
89 bcti { ECHO; return (_BCTI); }
90 ci { ECHO; return (_CI); }
91 cf { ECHO; return (_CF); }
92 k3 { ECHO; return (_K3); }
93 k4 { ECHO; return (_K4); }
94 k5 { ECHO; return (_K5); }
95 rtot { ECHO; return (_RTOT); }
96 kf { ECHO; return (_KF); }
97 vddmax { ECHO; return (_VDDMAX); }
98 vf_input { ECHO; return (_VF_INPUT); }
99 rsat { ECHO; return (_RSAT); }
100 rlin { ECHO; return (_RLIN); }
101 drc { ECHO; return (_DRC); }
102 rbr { ECHO; return (_RBR); }
103 cbr { ECHO; return (_CBR); }
104 const { ECHO; return (_CST); }
105 slew { ECHO; return (_SLEW); }
106 delay { ECHO; return (_DELAY); }
107 data { ECHO; return (_DATA); }
108 clock_slew_axis { ECHO; return (_CLOCK_SLEW_AXIS); }
109 input_slew_axis { ECHO; return (_INPUT_SLEW_AXIS); }
110 clock_slope_axis { ECHO; return (_CLOCK_SLEW_AXIS); }
111 input_slope_axis { ECHO; return (_INPUT_SLEW_AXIS); }
112 slew_axis { ECHO; return (_SLEW_AXIS); }
113 load_axis { ECHO; return (_LOAD_AXIS); }
114 orders { ECHO; return (_ORDERS); }
115 coefs { ECHO; return (_COEFS); }
116 spdm { ECHO; return (_SPDM); }
117 template { ECHO; parlevel = 0; BEGIN DONTCARE; }
118 noise_scr { ECHO; return (_NOISE_SCR); }
119 energy_table { ECHO; return (_ENERGY_TABLE); }
120 energy_const { ECHO; return (_ENERGY_CONST); }
121 energy_model { ECHO; return (_ENERGY_MODEL); }
122 fct { ECHO; return (_FCT); }
123 file { ECHO; return (_FILE); }
124 instance { ECHO; return (_INSTANCE); }
125 localname { ECHO; return (_LOCALNAME); }
126 sim_model { ECHO; return (_SIM_MODEL); }
127 function { ECHO; return (_FUNCTION); }
128 iv { ECHO; return (_IV); }
129 nve { ECHO; return (_NVE); }
130 nvs { ECHO; return (_NVS); }
131 ve { ECHO; return (_VE); }
132 vs { ECHO; return (_VS); }
133 conf { ECHO; return (_CONFLICT); }
134 current { ECHO; return (_CURRENT); }
135 input { ECHO; return (_INPUT); }
136 initial { ECHO; return (_INITIAL); }
137 {identifier} { ECHO; stmmodellval.t_pchar = mbkstrdup (yytext); return (_IDENTIFIER); }
138 {number} { ECHO; stmmodellval.t_struct3.t_float = strtod (yytext, (char**)NULL); strcpy(stmmodellval.t_struct3.t_float_string, yytext); return (_NUMBER); }
139 {enumber} { ECHO; stmmodellval.t_struct3.t_float = strtod (yytext, (char**)NULL); strcpy(stmmodellval.t_struct3.t_float_string, yytext); return (_ENUMBER);}
140 '.' { ECHO; stmmodellval.t_char=yytext[1]; return (_ECHAR); }
141 %%
142
143 int yywrap() { return 1; }