Subject: | [PATCH] Fails to build with recent Parse::RecDescent |
Typos in the grammar result in the following warnings/errors:
./generate_precompiled_parser.pl
precompiling grammar from file 'PrecompiledParser.pm'
to class PrecompiledParser in module file 'PrecompiledParser.pm'
Warning: Undefined (sub)rule "block_identifer" used in a
production.
ERROR: Production edge_sensitive_path_declaration for
"_alternation_1_of_production_1_of_rule_path_declaratio
n" will never be reached (preceding empty production
will always match first).
Hint: Set $::RD_HINT (or -RD_HINT if you're using "perl
-s")
for hints on fixing these problems. Use
$::RD_HINT = 0
to disable this message.
Can't compile bad grammar at ./generate_precompiled_parser.pl line 2755.
Attached patch fixes these.
Subject: | Hardware-Verilog-Parser-0.13-grammar.patch |
--- generate_precompiled_parser.pl
+++ generate_precompiled_parser.pl
@@ -1407,7 +1407,7 @@
disable_statement :
'disable'
<commit>
- ( task_identifier | block_identifer )
+ ( task_identifier | block_identifier )
';'
| <error?> <reject>
@@ -1744,8 +1744,8 @@
path_declaration :
(
- simple_path_declaration |
- | edge_sensitive_path_declaration |
+ simple_path_declaration
+ | edge_sensitive_path_declaration
| state_dependent_path_declaration
)
';'
@@ -2747,6 +2747,9 @@
use Parse::RecDescent;
+# Get some hints if grammar compilation fails
+$::RD_HINT = 1;
+
system ('rm -f PrecompiledParser.pm');
system ('rm -f PrecompiledParserIn.pm');