diff --git a/parse.y b/parse.y index 032a53f37..2d1273b37 100644 --- a/parse.y +++ b/parse.y @@ -2398,8 +2398,9 @@ config_rule_statement ; opt_config - : /* The use clause takse an optional :config. */ + : /* The use clause takes an optional :config. */ | ':' K_config + ; lib_cell_id : IDENTIFIER @@ -2412,6 +2413,7 @@ list_of_libraries : /* A NULL library means use the parents cell library. */ | list_of_libraries IDENTIFIER { delete[] $2; } + ; drive_strength : '(' dr_strength0 ',' dr_strength1 ')' @@ -4297,7 +4299,7 @@ module_item { pform_set_timeprecision($2, true, true); } ; -generate_if : K_if '(' expression ')' { pform_start_generate_if(@1, $3); } +generate_if : K_if '(' expression ')' { pform_start_generate_if(@1, $3); } ; generate_case_items : generate_case_items generate_case_item @@ -4828,8 +4830,9 @@ range_opt ; dimensions_opt - : { $$ = 0; } - | dimensions { $$ = $1; } + : { $$ = 0; } + | dimensions { $$ = $1; } + ; dimensions : variable_dimension diff --git a/vpi/sdf_parse.y b/vpi/sdf_parse.y index 8901f241d..68a1c3dec 100644 --- a/vpi/sdf_parse.y +++ b/vpi/sdf_parse.y @@ -127,7 +127,7 @@ vendor sdf_parse_path, @2.first_line, $3); free($3); } -; + ; program_name : '(' K_PROGRAM QSTRING ')' diff --git a/vpi/table_mod_parse.y b/vpi/table_mod_parse.y index 8e309b110..fb1ff4f18 100644 --- a/vpi/table_mod_parse.y +++ b/vpi/table_mod_parse.y @@ -121,6 +121,7 @@ static void process_point() */ table : point | table point + ; /* * An individual point is just a bunch of columns followed by one or more @@ -156,6 +157,7 @@ point : columns END_LINE } } } + ; /* * Each column is a real value. We only save the columns we care about. @@ -179,6 +181,7 @@ columns : REAL } else if (cur_columns == dep_column) values[indep_values] = $2; cur_columns += 1; } + ; %% diff --git a/vvp/parse.y b/vvp/parse.y index a7bfc7a12..05ed935a9 100644 --- a/vvp/parse.y +++ b/vvp/parse.y @@ -153,6 +153,7 @@ header_line footer_lines : K_file_names T_NUMBER ';' { file_names.reserve($2); } name_strings + ; name_strings : T_STRING ';'