bug-bison
[Top][All Lists]
Advanced

[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!

Attachment: VParseBisonBad.y
Description: Binary data

Attachment: VParseBisonGood.y
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]