Add all the Verilog-AMS 2.3.1 keywords.
Like I did for SystemVerilog the other day this patch adds all the Verilog-AMS 2.3.1 keywords. This necessitated adding one my byte to the gperf -k argument (byte 9) to make the laplace_?? tokens have a unique hash.
This commit is contained in:
parent
511a274b41
commit
634d47bfe8
|
|
@ -233,7 +233,7 @@ lexor.cc: $(srcdir)/lexor.lex
|
|||
lexor_keyword.o: lexor_keyword.cc parse.h
|
||||
|
||||
lexor_keyword.cc: $(srcdir)/lexor_keyword.gperf
|
||||
gperf -o -i 7 -C -k 1-4,$$ -L ANSI-C -H keyword_hash -N check_identifier -t $(srcdir)/lexor_keyword.gperf > lexor_keyword.cc || (rm -f lexor_keyword.cc ; false)
|
||||
gperf -o -i 7 -C -k 1-4,9,$$ -L ANSI-C -H keyword_hash -N check_identifier -t $(srcdir)/lexor_keyword.gperf > lexor_keyword.cc || (rm -f lexor_keyword.cc ; false)
|
||||
|
||||
iverilog-vpi.man: $(srcdir)/iverilog-vpi.man.in version.exe
|
||||
./version.exe `head -1 $(srcdir)/iverilog-vpi.man.in`'\n' > $@
|
||||
|
|
|
|||
|
|
@ -11,21 +11,27 @@
|
|||
%}
|
||||
struct lexor_keyword { const char*name; int mask; int tokenType; };
|
||||
%%
|
||||
above, GN_KEYWORDS_VAMS_2_3, K_above
|
||||
abs, GN_KEYWORDS_VAMS_2_3, K_abs
|
||||
absdelay, GN_KEYWORDS_VAMS_2_3, K_absdelay
|
||||
abstol, GN_KEYWORDS_VAMS_2_3, K_abstol
|
||||
access, GN_KEYWORDS_VAMS_2_3, K_access
|
||||
acos, GN_KEYWORDS_VAMS_2_3, K_acos
|
||||
acosh, GN_KEYWORDS_VAMS_2_3, K_acosh
|
||||
ac_stim, GN_KEYWORDS_VAMS_2_3, K_ac_stim
|
||||
alias, GN_KEYWORDS_1800_2005, K_alias
|
||||
aliasparam, GN_KEYWORDS_VAMS_2_3, K_aliasparam
|
||||
always, GN_KEYWORDS_1364_1995, K_always
|
||||
always_comb, GN_KEYWORDS_1800_2005, K_always_comb
|
||||
always_ff, GN_KEYWORDS_1800_2005, K_always_ff
|
||||
always_latch, GN_KEYWORDS_1800_2005, K_always_latch
|
||||
analog, GN_KEYWORDS_VAMS_2_3, K_analog
|
||||
analysis, GN_KEYWORDS_VAMS_2_3, K_analysis
|
||||
and, GN_KEYWORDS_1364_1995, K_and
|
||||
asin, GN_KEYWORDS_VAMS_2_3, K_asin
|
||||
asinh, GN_KEYWORDS_VAMS_2_3, K_asinh
|
||||
assert, GN_KEYWORDS_1800_2005, K_assert
|
||||
# This is defined by both SystemVerilog 1800-2005 and Verilog-AMS 2.3
|
||||
assert, GN_KEYWORDS_1800_2005|GN_KEYWORDS_VAMS_2_3, K_assert
|
||||
assign, GN_KEYWORDS_1364_1995, K_assign
|
||||
assume, GN_KEYWORDS_1800_2005, K_assume
|
||||
atan, GN_KEYWORDS_VAMS_2_3, K_atan
|
||||
|
|
@ -38,6 +44,7 @@ bind, GN_KEYWORDS_1800_2005, K_bind
|
|||
bins, GN_KEYWORDS_1800_2005, K_bins
|
||||
binsof, GN_KEYWORDS_1800_2005, K_binsof
|
||||
bit, GN_KEYWORDS_1800_2005, K_bit
|
||||
branch, GN_KEYWORDS_VAMS_2_3, K_branch
|
||||
break, GN_KEYWORDS_1800_2005, K_break
|
||||
bool, GN_KEYWORDS_ICARUS, K_bool
|
||||
buf, GN_KEYWORDS_1364_1995, K_buf
|
||||
|
|
@ -54,6 +61,9 @@ class, GN_KEYWORDS_1800_2005, K_class
|
|||
clocking, GN_KEYWORDS_1800_2005, K_clocking
|
||||
cmos, GN_KEYWORDS_1364_1995, K_cmos
|
||||
config, GN_KEYWORDS_1364_2001_CONFIG, K_config
|
||||
connect, GN_KEYWORDS_VAMS_2_3, K_connect
|
||||
connectmodule, GN_KEYWORDS_VAMS_2_3, K_connectmodule
|
||||
connectrules, GN_KEYWORDS_VAMS_2_3, K_connectrules
|
||||
const, GN_KEYWORDS_1800_2005, K_const
|
||||
constraint, GN_KEYWORDS_1800_2005, K_constraint
|
||||
context, GN_KEYWORDS_1800_2005, K_context
|
||||
|
|
@ -65,7 +75,9 @@ cover, GN_KEYWORDS_1800_2005, K_cover
|
|||
covergroup, GN_KEYWORDS_1800_2005, K_covergroup
|
||||
coverpoint, GN_KEYWORDS_1800_2005, K_coverpoint
|
||||
cross, GN_KEYWORDS_1800_2005, K_cross
|
||||
ddt, GN_KEYWORDS_VAMS_2_3, K_ddt
|
||||
ddt_nature, GN_KEYWORDS_VAMS_2_3, K_ddt_nature
|
||||
ddx, GN_KEYWORDS_VAMS_2_3, K_ddx
|
||||
deassign, GN_KEYWORDS_1364_1995, K_deassign
|
||||
default, GN_KEYWORDS_1364_1995, K_default
|
||||
defparam, GN_KEYWORDS_1364_1995, K_defparam
|
||||
|
|
@ -76,6 +88,7 @@ discrete, GN_KEYWORDS_VAMS_2_3, K_discrete
|
|||
dist, GN_KEYWORDS_1800_2005, K_dist
|
||||
do, GN_KEYWORDS_1800_2005, K_do
|
||||
domain, GN_KEYWORDS_VAMS_2_3, K_domain
|
||||
driver_update, GN_KEYWORDS_VAMS_2_3, K_driver_update
|
||||
edge, GN_KEYWORDS_1364_1995, K_edge
|
||||
else, GN_KEYWORDS_1364_1995, K_else
|
||||
end, GN_KEYWORDS_1364_1995, K_end
|
||||
|
|
@ -83,6 +96,7 @@ endcase, GN_KEYWORDS_1364_1995, K_endcase
|
|||
endconfig, GN_KEYWORDS_1364_2001_CONFIG, K_endconfig
|
||||
endclass, GN_KEYWORDS_1800_2005, K_endclass
|
||||
endclocking, GN_KEYWORDS_1800_2005, K_endclocking
|
||||
endconnectrules, GN_KEYWORDS_VAMS_2_3, K_endconnectrules
|
||||
enddiscipline, GN_KEYWORDS_VAMS_2_3, K_enddiscipline
|
||||
endfunction, GN_KEYWORDS_1364_1995, K_endfunction
|
||||
endgenerate, GN_KEYWORDS_1364_2001, K_endgenerate
|
||||
|
|
@ -91,6 +105,7 @@ endinterface, GN_KEYWORDS_1800_2005, K_endinterface
|
|||
endmodule, GN_KEYWORDS_1364_1995, K_endmodule
|
||||
endnature, GN_KEYWORDS_VAMS_2_3, K_endnature
|
||||
endpackage, GN_KEYWORDS_1800_2005, K_endpackage
|
||||
endparamset, GN_KEYWORDS_VAMS_2_3, K_endparamset
|
||||
endprimitive, GN_KEYWORDS_1364_1995, K_endprimitive
|
||||
endprogram, GN_KEYWORDS_1800_2005, K_endprogram
|
||||
endproperty, GN_KEYWORDS_1800_2005, K_endproperty
|
||||
|
|
@ -107,7 +122,9 @@ export, GN_KEYWORDS_1800_2005, K_export
|
|||
extends, GN_KEYWORDS_1800_2005, K_extends
|
||||
extern, GN_KEYWORDS_1800_2005, K_extern
|
||||
final, GN_KEYWORDS_1800_2005, K_final
|
||||
final_step, GN_KEYWORDS_VAMS_2_3, K_final_step
|
||||
first_match, GN_KEYWORDS_1800_2005, K_first_match
|
||||
flicker_noise, GN_KEYWORDS_VAMS_2_3, K_flicker_noise
|
||||
floor, GN_KEYWORDS_VAMS_2_3, K_floor
|
||||
flow, GN_KEYWORDS_VAMS_2_3, K_flow
|
||||
for, GN_KEYWORDS_1364_1995, K_for
|
||||
|
|
@ -124,6 +141,8 @@ ground, GN_KEYWORDS_VAMS_2_3, K_ground
|
|||
highz0, GN_KEYWORDS_1364_1995, K_highz0
|
||||
highz1, GN_KEYWORDS_1364_1995, K_highz1
|
||||
hypot, GN_KEYWORDS_VAMS_2_3, K_hypot
|
||||
idt, GN_KEYWORDS_VAMS_2_3, K_idt
|
||||
idtmod, GN_KEYWORDS_VAMS_2_3, K_idtmod
|
||||
idt_nature, GN_KEYWORDS_VAMS_2_3, K_idt_nature
|
||||
if, GN_KEYWORDS_1364_1995, K_if
|
||||
iff, GN_KEYWORDS_1800_2005, K_iff
|
||||
|
|
@ -135,6 +154,7 @@ incdir, GN_KEYWORDS_1364_2001_CONFIG, K_incdir
|
|||
include, GN_KEYWORDS_1364_2001_CONFIG, K_include
|
||||
inf, GN_KEYWORDS_VAMS_2_3, K_inf
|
||||
initial, GN_KEYWORDS_1364_1995, K_initial
|
||||
initial_step, GN_KEYWORDS_VAMS_2_3, K_initial_step
|
||||
inout, GN_KEYWORDS_1364_1995, K_inout
|
||||
input, GN_KEYWORDS_1364_1995, K_input
|
||||
inside, GN_KEYWORDS_1800_2005, K_inside
|
||||
|
|
@ -146,9 +166,15 @@ intersect, GN_KEYWORDS_1800_2005, K_intersect
|
|||
join, GN_KEYWORDS_1364_1995, K_join
|
||||
join_any, GN_KEYWORDS_1800_2005, K_join_any
|
||||
join_none, GN_KEYWORDS_1800_2005, K_join_none
|
||||
laplace_nd, GN_KEYWORDS_VAMS_2_3, K_laplace_nd
|
||||
laplace_np, GN_KEYWORDS_VAMS_2_3, K_laplace_np
|
||||
laplace_zd, GN_KEYWORDS_VAMS_2_3, K_laplace_zd
|
||||
laplace_zp, GN_KEYWORDS_VAMS_2_3, K_laplace_zp
|
||||
large, GN_KEYWORDS_1364_1995, K_large
|
||||
last_crossing, GN_KEYWORDS_VAMS_2_3, K_last_crossing
|
||||
liblist, GN_KEYWORDS_1364_2001_CONFIG, K_liblist
|
||||
library, GN_KEYWORDS_1364_2001_CONFIG, K_library
|
||||
limexp, GN_KEYWORDS_VAMS_2_3, K_limexp
|
||||
ln, GN_KEYWORDS_VAMS_2_3, K_ln
|
||||
local, GN_KEYWORDS_1800_2005, K_local
|
||||
localparam, GN_KEYWORDS_1364_2001, K_localparam
|
||||
|
|
@ -160,14 +186,17 @@ macromodule, GN_KEYWORDS_1364_1995, K_macromodule
|
|||
matches, GN_KEYWORDS_1800_2005, K_matches
|
||||
max, GN_KEYWORDS_VAMS_2_3, K_max
|
||||
medium, GN_KEYWORDS_1364_1995, K_medium
|
||||
merged, GN_KEYWORDS_VAMS_2_3, K_merged
|
||||
min, GN_KEYWORDS_VAMS_2_3, K_min
|
||||
modport, GN_KEYWORDS_1800_2005, K_modport
|
||||
module, GN_KEYWORDS_1364_1995, K_module
|
||||
nand, GN_KEYWORDS_1364_1995, K_nand
|
||||
nature, GN_KEYWORDS_VAMS_2_3, K_nature
|
||||
negedge, GN_KEYWORDS_1364_1995, K_negedge
|
||||
net_resolution, GN_KEYWORDS_VAMS_2_3, K_net_resolution
|
||||
new, GN_KEYWORDS_1800_2005, K_new
|
||||
nmos, GN_KEYWORDS_1364_1995, K_nmos
|
||||
noise_table, GN_KEYWORDS_VAMS_2_3, K_noise_table
|
||||
nor, GN_KEYWORDS_1364_1995, K_nor
|
||||
noshowcancelled, GN_KEYWORDS_1364_2001, K_noshowcancelled
|
||||
not, GN_KEYWORDS_1364_1995, K_not
|
||||
|
|
@ -179,6 +208,7 @@ output, GN_KEYWORDS_1364_1995, K_output
|
|||
package, GN_KEYWORDS_1800_2005, K_package
|
||||
packed, GN_KEYWORDS_1800_2005, K_packed
|
||||
parameter, GN_KEYWORDS_1364_1995, K_parameter
|
||||
paramset, GN_KEYWORDS_VAMS_2_3, K_paramset
|
||||
pmos, GN_KEYWORDS_1364_1995, K_pmos
|
||||
posedge, GN_KEYWORDS_1364_1995, K_posedge
|
||||
potential, GN_KEYWORDS_VAMS_2_3, K_potential
|
||||
|
|
@ -206,6 +236,7 @@ ref, GN_KEYWORDS_1800_2005, K_ref
|
|||
reg, GN_KEYWORDS_1364_1995, K_reg
|
||||
release, GN_KEYWORDS_1364_1995, K_release
|
||||
repeat, GN_KEYWORDS_1364_1995, K_repeat
|
||||
resolveto, GN_KEYWORDS_VAMS_2_3, K_resolveto
|
||||
return, GN_KEYWORDS_1800_2005, K_return
|
||||
rnmos, GN_KEYWORDS_1364_1995, K_rnmos
|
||||
rpmos, GN_KEYWORDS_1364_1995, K_rpmos
|
||||
|
|
@ -220,10 +251,12 @@ showcancelled, GN_KEYWORDS_1364_2001, K_showcancelled
|
|||
signed, GN_KEYWORDS_1364_2001, K_signed
|
||||
sin, GN_KEYWORDS_VAMS_2_3, K_sin
|
||||
sinh, GN_KEYWORDS_VAMS_2_3, K_sinh
|
||||
slew, GN_KEYWORDS_VAMS_2_3, K_slew
|
||||
small, GN_KEYWORDS_1364_1995, K_small
|
||||
solve, GN_KEYWORDS_1800_2005, K_solve
|
||||
specify, GN_KEYWORDS_1364_1995, K_specify
|
||||
specparam, GN_KEYWORDS_1364_1995, K_specparam
|
||||
split, GN_KEYWORDS_VAMS_2_3, K_split
|
||||
sqrt, GN_KEYWORDS_VAMS_2_3, K_sqrt
|
||||
static, GN_KEYWORDS_1800_2005, K_static
|
||||
# This is defined by both SystemVerilog 1800-2005 and Verilog-AMS 2.3
|
||||
|
|
@ -243,10 +276,12 @@ this, GN_KEYWORDS_1800_2005, K_this
|
|||
throughout, GN_KEYWORDS_1800_2005, K_throughout
|
||||
time, GN_KEYWORDS_1364_1995, K_time
|
||||
timeprecision, GN_KEYWORDS_1800_2005, K_timeprecision
|
||||
timer, GN_KEYWORDS_VAMS_2_3, K_timer
|
||||
timeunit, GN_KEYWORDS_1800_2005, K_timeunit
|
||||
tran, GN_KEYWORDS_1364_1995, K_tran
|
||||
tranif0, GN_KEYWORDS_1364_1995, K_tranif0
|
||||
tranif1, GN_KEYWORDS_1364_1995, K_tranif1
|
||||
transition, GN_KEYWORDS_VAMS_2_3, K_transition
|
||||
tri, GN_KEYWORDS_1364_1995, K_tri
|
||||
tri0, GN_KEYWORDS_1364_1995, K_tri0
|
||||
tri1, GN_KEYWORDS_1364_1995, K_tri1
|
||||
|
|
@ -272,6 +307,7 @@ wand, GN_KEYWORDS_1364_1995, K_wand
|
|||
weak0, GN_KEYWORDS_1364_1995, K_weak0
|
||||
weak1, GN_KEYWORDS_1364_1995, K_weak1
|
||||
while, GN_KEYWORDS_1364_1995, K_while
|
||||
white_noise, GN_KEYWORDS_VAMS_2_3, K_white_noise
|
||||
wildcard, GN_KEYWORDS_1800_2005, K_wildcard
|
||||
wire, GN_KEYWORDS_1364_1995, K_wire
|
||||
with, GN_KEYWORDS_1800_2005, K_with
|
||||
|
|
@ -279,8 +315,13 @@ within, GN_KEYWORDS_1800_2005, K_within
|
|||
# This is the name originally proposed for uwire and is deprecated!
|
||||
wone, GN_KEYWORDS_1364_2005, K_wone
|
||||
wor, GN_KEYWORDS_1364_1995, K_wor
|
||||
wreal, GN_KEYWORDS_VAMS_2_3, K_wreal
|
||||
xnor, GN_KEYWORDS_1364_1995, K_xnor
|
||||
xor, GN_KEYWORDS_1364_1995, K_xor
|
||||
zi_nd, GN_KEYWORDS_VAMS_2_3, K_zi_nd
|
||||
zi_np, GN_KEYWORDS_VAMS_2_3, K_zi_np
|
||||
zi_zd, GN_KEYWORDS_VAMS_2_3, K_zi_zd
|
||||
zi_zp, GN_KEYWORDS_VAMS_2_3, K_zi_zp
|
||||
%%
|
||||
|
||||
int lexor_keyword_mask = 0;
|
||||
|
|
|
|||
26
parse.y
26
parse.y
|
|
@ -292,8 +292,7 @@ static PECallFunction*make_call_function(perm_string tn, PExpr*arg1, PExpr*arg2)
|
|||
%token K_longint K_matches K_modport K_new K_null K_package K_packed
|
||||
%token K_priority K_program K_property K_protected K_pure K_rand K_randc
|
||||
%token K_randcase K_randsequence K_ref K_return K_sequence K_shortint
|
||||
/* Verilog-AMS 2.3 has defined "string" below! */
|
||||
%token K_shortreal K_solve K_static K_struct K_super
|
||||
%token K_shortreal K_solve K_static K_string K_struct K_super
|
||||
%token K_tagged K_this K_throughout K_timeprecision K_timeunit K_type
|
||||
%token K_typedef K_union K_unique K_var K_virtual K_void K_wait_order
|
||||
%token K_wildcard K_with K_within
|
||||
|
|
@ -301,13 +300,22 @@ static PECallFunction*make_call_function(perm_string tn, PExpr*arg1, PExpr*arg2)
|
|||
%token K_timeprecision_check K_timeunit_check
|
||||
|
||||
/* The new tokens for Verilog-AMS 2.3. */
|
||||
%token K_abs K_abstol K_access K_acos K_acosh K_analog K_asin K_asinh
|
||||
%token K_atan K_atan2 K_atanh K_ceil K_continuous K_cos K_cosh
|
||||
%token K_ddt_nature K_discipline K_discrete K_domain K_enddiscipline
|
||||
%token K_endnature K_exclude K_exp K_floor K_flow K_from K_ground
|
||||
%token K_hypot K_idt_nature K_inf K_ln K_log K_max K_min K_nature
|
||||
%token K_potential K_pow K_sin K_sinh K_sqrt K_string K_tan K_tanh
|
||||
%token K_units
|
||||
%token K_above K_abs K_absdelay K_abstol K_access K_acos K_acosh
|
||||
/* 1800-2005 has defined "assert" above! */
|
||||
%token K_ac_stim K_aliasparam K_analog K_analysis K_asin K_asinh
|
||||
%token K_atan K_atan2 K_atanh K_branch K_ceil K_connect K_connectmodule
|
||||
%token K_connectrules K_continuous K_cos K_cosh K_ddt K_ddt_nature K_ddx
|
||||
%token K_discipline K_discrete K_domain K_driver_update K_endconnectrules
|
||||
%token K_enddiscipline K_endnature K_endparamset K_exclude K_exp
|
||||
%token K_final_step K_flicker_noise K_floor K_flow K_from K_ground
|
||||
%token K_hypot K_idt K_idtmod K_idt_nature K_inf K_initial_step
|
||||
%token K_laplace_nd K_laplace_np K_laplace_zd K_laplace_zp
|
||||
%token K_last_crossing K_limexp K_ln K_log K_max K_merged K_min K_nature
|
||||
%token K_net_resolution K_noise_table K_paramset K_potential K_pow
|
||||
/* 1800-2005 has defined "string" above! */
|
||||
%token K_resolveto K_sin K_sinh K_slew K_split K_sqrt K_tan K_tanh
|
||||
%token K_timer K_transition K_units K_white_noise K_wreal
|
||||
%token K_zi_nd K_zi_np K_zi_zd K_zi_zp
|
||||
|
||||
%type <flag> from_exclude
|
||||
%type <number> number
|
||||
|
|
|
|||
Loading…
Reference in New Issue