diff --git a/lexor_keyword.gperf b/lexor_keyword.gperf index 9602f952a..1951493b6 100644 --- a/lexor_keyword.gperf +++ b/lexor_keyword.gperf @@ -16,6 +16,7 @@ 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 +alias, GN_KEYWORDS_1800_2005, K_alias 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 @@ -26,25 +27,44 @@ asin, GN_KEYWORDS_VAMS_2_3, K_asin asinh, GN_KEYWORDS_VAMS_2_3, K_asinh assert, GN_KEYWORDS_1800_2005, K_assert assign, GN_KEYWORDS_1364_1995, K_assign +assume, GN_KEYWORDS_1800_2005, K_assume atan, GN_KEYWORDS_VAMS_2_3, K_atan atan2, GN_KEYWORDS_VAMS_2_3, K_atan2 atanh, GN_KEYWORDS_VAMS_2_3, K_atanh automatic, GN_KEYWORDS_1364_2001, K_automatic +before, GN_KEYWORDS_1800_2005, K_before begin, GN_KEYWORDS_1364_1995, K_begin +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 +break, GN_KEYWORDS_1800_2005, K_break bool, GN_KEYWORDS_ICARUS, K_bool buf, GN_KEYWORDS_1364_1995, K_buf bufif0, GN_KEYWORDS_1364_1995, K_bufif0 bufif1, GN_KEYWORDS_1364_1995, K_bufif1 +byte, GN_KEYWORDS_1800_2005, K_byte case, GN_KEYWORDS_1364_1995, K_case casex, GN_KEYWORDS_1364_1995, K_casex casez, GN_KEYWORDS_1364_1995, K_casez ceil, GN_KEYWORDS_VAMS_2_3, K_ceil cell, GN_KEYWORDS_1364_2001_CONFIG, K_cell +chandle, GN_KEYWORDS_1800_2005, K_chandle +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 +const, GN_KEYWORDS_1800_2005, K_const +constraint, GN_KEYWORDS_1800_2005, K_constraint +context, GN_KEYWORDS_1800_2005, K_context +continue, GN_KEYWORDS_1800_2005, K_continue continuous, GN_KEYWORDS_VAMS_2_3, K_continuous cos, GN_KEYWORDS_VAMS_2_3, K_cos cosh, GN_KEYWORDS_VAMS_2_3, K_cosh +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_nature, GN_KEYWORDS_VAMS_2_3, K_ddt_nature deassign, GN_KEYWORDS_1364_1995, K_deassign default, GN_KEYWORDS_1364_1995, K_default @@ -53,30 +73,49 @@ design, GN_KEYWORDS_1364_2001_CONFIG, K_design disable, GN_KEYWORDS_1364_1995, K_disable discipline, GN_KEYWORDS_VAMS_2_3, K_discipline 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 edge, GN_KEYWORDS_1364_1995, K_edge else, GN_KEYWORDS_1364_1995, K_else end, GN_KEYWORDS_1364_1995, K_end 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 enddiscipline, GN_KEYWORDS_VAMS_2_3, K_enddiscipline endfunction, GN_KEYWORDS_1364_1995, K_endfunction endgenerate, GN_KEYWORDS_1364_2001, K_endgenerate +endgroup, GN_KEYWORDS_1800_2005, K_endgroup +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 endprimitive, GN_KEYWORDS_1364_1995, K_endprimitive +endprogram, GN_KEYWORDS_1800_2005, K_endprogram +endproperty, GN_KEYWORDS_1800_2005, K_endproperty endspecify, GN_KEYWORDS_1364_1995, K_endspecify +endsequence, GN_KEYWORDS_1800_2005, K_endsequence endtable, GN_KEYWORDS_1364_1995, K_endtable endtask, GN_KEYWORDS_1364_1995, K_endtask +enum, GN_KEYWORDS_1800_2005, K_enum event, GN_KEYWORDS_1364_1995, K_event exclude, GN_KEYWORDS_VAMS_2_3, K_exclude exp, GN_KEYWORDS_VAMS_2_3, K_exp +expect, GN_KEYWORDS_1800_2005, K_expect +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 +first_match, GN_KEYWORDS_1800_2005, K_first_match floor, GN_KEYWORDS_VAMS_2_3, K_floor flow, GN_KEYWORDS_VAMS_2_3, K_flow for, GN_KEYWORDS_1364_1995, K_for +foreach, GN_KEYWORDS_1800_2005, K_foreach force, GN_KEYWORDS_1364_1995, K_force forever, GN_KEYWORDS_1364_1995, K_forever fork, GN_KEYWORDS_1364_1995, K_fork +forkjoin, GN_KEYWORDS_1800_2005, K_forkjoin from, GN_KEYWORDS_VAMS_2_3, K_from function, GN_KEYWORDS_1364_1995, K_function generate, GN_KEYWORDS_1364_2001, K_generate @@ -87,83 +126,124 @@ highz1, GN_KEYWORDS_1364_1995, K_highz1 hypot, GN_KEYWORDS_VAMS_2_3, K_hypot idt_nature, GN_KEYWORDS_VAMS_2_3, K_idt_nature if, GN_KEYWORDS_1364_1995, K_if +iff, GN_KEYWORDS_1800_2005, K_iff ifnone, GN_KEYWORDS_1364_1995, K_ifnone +ignore_bins, GN_KEYWORDS_1800_2005, K_ignore_bins +illegal_bins, GN_KEYWORDS_1800_2005, K_illegal_bins +import, GN_KEYWORDS_1800_2005, K_import 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 inout, GN_KEYWORDS_1364_1995, K_inout input, GN_KEYWORDS_1364_1995, K_input +inside, GN_KEYWORDS_1800_2005, K_inside instance, GN_KEYWORDS_1364_2001_CONFIG, K_instance +int, GN_KEYWORDS_1800_2005, K_int integer, GN_KEYWORDS_1364_1995, K_integer +interface, GN_KEYWORDS_1800_2005, K_interface +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 large, GN_KEYWORDS_1364_1995, K_large liblist, GN_KEYWORDS_1364_2001_CONFIG, K_liblist library, GN_KEYWORDS_1364_2001_CONFIG, K_library ln, GN_KEYWORDS_VAMS_2_3, K_ln +local, GN_KEYWORDS_1800_2005, K_local localparam, GN_KEYWORDS_1364_2001, K_localparam log, GN_KEYWORDS_VAMS_2_3, K_log -logic, GN_KEYWORDS_ICARUS, K_logic +# This is defined by SystemVerilog 1800-2005 and as an Icarus extension. +logic, GN_KEYWORDS_1800_2005|GN_KEYWORDS_ICARUS, K_logic +longint, GN_KEYWORDS_1800_2005, K_longint 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 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 +new, GN_KEYWORDS_1800_2005, K_new nmos, GN_KEYWORDS_1364_1995, K_nmos nor, GN_KEYWORDS_1364_1995, K_nor noshowcancelled, GN_KEYWORDS_1364_2001, K_noshowcancelled not, GN_KEYWORDS_1364_1995, K_not notif0, GN_KEYWORDS_1364_1995, K_notif0 notif1, GN_KEYWORDS_1364_1995, K_notif1 +null, GN_KEYWORDS_1800_2005, K_null or, GN_KEYWORDS_1364_1995, K_or 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 pmos, GN_KEYWORDS_1364_1995, K_pmos posedge, GN_KEYWORDS_1364_1995, K_posedge potential, GN_KEYWORDS_VAMS_2_3, K_potential pow, GN_KEYWORDS_VAMS_2_3, K_pow primitive, GN_KEYWORDS_1364_1995, K_primitive +priority, GN_KEYWORDS_1800_2005, K_priority +program, GN_KEYWORDS_1800_2005, K_program +property, GN_KEYWORDS_1800_2005, K_property +protected, GN_KEYWORDS_1800_2005, K_protected pull0, GN_KEYWORDS_1364_1995, K_pull0 pull1, GN_KEYWORDS_1364_1995, K_pull1 pulldown, GN_KEYWORDS_1364_1995, K_pulldown pullup, GN_KEYWORDS_1364_1995, K_pullup pulsestyle_onevent, GN_KEYWORDS_1364_2001, K_pulsestyle_onevent pulsestyle_ondetect, GN_KEYWORDS_1364_2001, K_pulsestyle_ondetect +pure, GN_KEYWORDS_1800_2005, K_pure +rand, GN_KEYWORDS_1800_2005, K_rand +randc, GN_KEYWORDS_1800_2005, K_randc +randcase, GN_KEYWORDS_1800_2005, K_randcase +randsequence, GN_KEYWORDS_1800_2005, K_randsequence rcmos, GN_KEYWORDS_1364_1995, K_rcmos real, GN_KEYWORDS_1364_1995, K_real realtime, GN_KEYWORDS_1364_1995, K_realtime +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 +return, GN_KEYWORDS_1800_2005, K_return rnmos, GN_KEYWORDS_1364_1995, K_rnmos rpmos, GN_KEYWORDS_1364_1995, K_rpmos rtran, GN_KEYWORDS_1364_1995, K_rtran rtranif0, GN_KEYWORDS_1364_1995, K_rtranif0 rtranif1, GN_KEYWORDS_1364_1995, K_rtranif1 scalared, GN_KEYWORDS_1364_1995, K_scalared +sequence, GN_KEYWORDS_1800_2005, K_sequence +shortint, GN_KEYWORDS_1800_2005, K_shortint +shortreal, GN_KEYWORDS_1800_2005, K_shortreal 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 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 sqrt, GN_KEYWORDS_VAMS_2_3, K_sqrt -string, GN_KEYWORDS_VAMS_2_3, K_string +static, GN_KEYWORDS_1800_2005, K_static +# This is defined by both SystemVerilog 1800-2005 and Verilog-AMS 2.3 +string, GN_KEYWORDS_1800_2005|GN_KEYWORDS_VAMS_2_3, K_string strong0, GN_KEYWORDS_1364_1995, K_strong0 strong1, GN_KEYWORDS_1364_1995, K_strong1 +struct, GN_KEYWORDS_1800_2005, K_struct +super, GN_KEYWORDS_1800_2005, K_super supply0, GN_KEYWORDS_1364_1995, K_supply0 supply1, GN_KEYWORDS_1364_1995, K_supply1 table, GN_KEYWORDS_1364_1995, K_table +tagged, GN_KEYWORDS_1800_2005, K_tagged tan, GN_KEYWORDS_VAMS_2_3, K_tan tanh, GN_KEYWORDS_VAMS_2_3, K_tanh task, GN_KEYWORDS_1364_1995, K_task +this, GN_KEYWORDS_1800_2005, K_this +throughout, GN_KEYWORDS_1800_2005, K_throughout time, GN_KEYWORDS_1364_1995, K_time -timeprecision, GN_KEYWORDS_1364_1995, K_timeprecision -timeunit, GN_KEYWORDS_1364_1995, K_timeunit +timeprecision, GN_KEYWORDS_1800_2005, K_timeprecision +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 @@ -173,18 +253,29 @@ tri1, GN_KEYWORDS_1364_1995, K_tri1 triand, GN_KEYWORDS_1364_1995, K_triand trior, GN_KEYWORDS_1364_1995, K_trior trireg, GN_KEYWORDS_1364_1995, K_trireg +type, GN_KEYWORDS_1800_2005, K_type +typedef, GN_KEYWORDS_1800_2005, K_typedef +union, GN_KEYWORDS_1800_2005, K_union +unique, GN_KEYWORDS_1800_2005, K_unique units, GN_KEYWORDS_VAMS_2_3, K_units # Reserved for future use! unsigned, GN_KEYWORDS_1364_2001, K_unsigned use, GN_KEYWORDS_1364_2001_CONFIG, K_use uwire, GN_KEYWORDS_1364_2005, K_uwire +var, GN_KEYWORDS_1800_2005, K_var vectored, GN_KEYWORDS_1364_1995, K_vectored +virtual, GN_KEYWORDS_1800_2005, K_virtual +void, GN_KEYWORDS_1800_2005, K_void wait, GN_KEYWORDS_1364_1995, K_wait +wait_order, GN_KEYWORDS_1800_2005, K_wait_order 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 +wildcard, GN_KEYWORDS_1800_2005, K_wildcard wire, GN_KEYWORDS_1364_1995, K_wire +with, GN_KEYWORDS_1800_2005, K_with +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 diff --git a/parse.y b/parse.y index 05200d6f3..d742b4344 100644 --- a/parse.y +++ b/parse.y @@ -1,7 +1,7 @@ %{ /* - * Copyright (c) 1998-2009 Stephen Williams (steve@icarus.com) + * Copyright (c) 1998-2010 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -279,8 +279,24 @@ static PECallFunction*make_call_function(perm_string tn, PExpr*arg1, PExpr*arg2) %token K_wone K_uwire /* The new tokens from 1800-2005. */ -%token K_always_comb K_always_ff K_always_latch K_assert -%token K_timeprecision K_timeunit +%token K_alias K_always_comb K_always_ff K_always_latch K_assert +%token K_assume K_before K_bind K_bins K_binsof K_bit K_break K_byte +%token K_chandle K_class K_clocking K_const K_constraint K_context +%token K_continue K_cover K_covergroup K_coverpoint K_cross K_dist K_do +%token K_endclass K_endclocking K_endgroup K_endinterface K_endpackage +%token K_endprogram K_endproperty K_endsequence K_enum K_expect K_export +%token K_extends K_extern K_final K_first_match K_foreach K_forkjoin +%token K_iff K_ignore_bins K_illegal_bins K_import K_inside K_int + /* Icarus already has defined "logic" above! */ +%token K_interface K_intersect K_join_any K_join_none K_local +%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_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 /* Fake tokens that are passed once we have an initial token. */ %token K_timeprecision_check K_timeunit_check