[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Incorrect(?) useless nonterminal
From: |
Wilson Snyder |
Subject: |
Incorrect(?) useless nonterminal |
Date: |
Tue, 6 Nov 2007 11:02:51 -0500 (EST) |
User-agent: |
SquirrelMail/1.4.9a |
Hello,
I'm using
$ bison --version
bison (GNU Bison) 1.875
Running bison on the attached good file works fine:
$ bison -d -v --debug --verbose -d -k VParseBisonGood.y -pVParseBisonGood
-o VParseBisonGood.c
While the bad file gives:
$ bison -d -v --debug --verbose -d -k VParseBisonBad.y -pVParseBisonBad -o
VParseBisonBad.c
VParseBisonBad.y: warning: 2 useless nonterminals and 3 useless rules
VParseBisonBad.y:445.17-28: warning: useless nonterminal: sequenceDecl
VParseBisonBad.y:882.63-74: warning: useless nonterminal: sequenceExpr
VParseBisonBad.y:445.17-59: warning: useless rule: modItem: sequenceDecl
VParseBisonBad.y:882.17-107: warning: useless rule: sequenceDecl:
"sequence" "IDENTIFIER" sequenceArgsE ';' funcVarListE sequenceExpr
"endsequence" endLabelE
VParseBisonBad.y:893.17-74: warning: useless rule: sequenceExpr:
"first_match" '(' sequenceExpr ')'
The only difference is line 893:
sequenceExpr: yFIRST_MATCH '(' ')' { $<fl>$=$<fl>1; }
versus the bad version:
sequenceExpr: yFIRST_MATCH '(' sequenceExpr ')' { $<fl>$=$<fl>1; }
While the rule is recursive, it doesn't seem significantly different from
other rules with parenthesis handling.
Thanks!
VParseBisonBad.y
Description: Binary data
VParseBisonGood.y
Description: Binary data
- Incorrect(?) useless nonterminal,
Wilson Snyder <=