Index: /trunk/Source/WebCore/ChangeLog =================================================================== --- /trunk/Source/WebCore/ChangeLog (revision 124098) +++ /trunk/Source/WebCore/ChangeLog (revision 124099) @@ -1,2 +1,27 @@ +2012-07-30 Alexis Menard + + Build fix with newer bison 2.6. + https://bugs.webkit.org/show_bug.cgi?id=92264 + + Reviewed by Adam Barth. + + As stated in http://www.gnu.org/software/bison/manual/html_node/Table-of-Symbols.html + YYLEX_PARAM and YYPARSE_PARAM are depecreated since version 1.875. So far all Mac OS + version I had access to as well as recent Linux runs at least version 2.3 so it's safe + to use the replacement of these deprecated macros in favor of %lex-param and %parse-param. + As announced http://lists.gnu.org/archive/html/info-gnu/2012-07/msg00011.html with the release + of version 2.6 YYLEX_PARAM and YYPARSE_PARAM are not supported anymore. + + No new tests : build fix and the patch should not trigger any regressions + + * css/CSSGrammar.y: + * css/CSSParser.cpp: + * xml/XPathGrammar.y: Refactored a bit to not use an intermediate PARSER define. + * xml/XPathParser.cpp: bison 2.6 declare xpathyyparse in the .h file now, i.e. XPathGrammar.h + therefore including this file within the namespace {} declarations leads to xpathyyparse being + defined part of WebCore::XPath namespaces but the actual implementation of xpathyyparse is in XPathGrammar.cpp + (generated) and not implemented within the WebCore::XPath so it lead to linking issues. Last, XPathGrammar.h needs + to be included after the other includes as it uses some XPath types. It breaks the style but CSSParser.cpp is doing the same. + 2012-07-30 Sadrul Habib Chowdhury Index: /trunk/Source/WebCore/css/CSSParser.cpp =================================================================== --- /trunk/Source/WebCore/css/CSSParser.cpp (revision 124098) +++ /trunk/Source/WebCore/css/CSSParser.cpp (revision 124099) @@ -115,5 +115,5 @@ #endif -extern int cssyyparse(void* parser); +extern int cssyyparse(WebCore::CSSParser*); using namespace std; Index: /trunk/Source/WebCore/css/CSSGrammar.y =================================================================== --- /trunk/Source/WebCore/css/CSSGrammar.y (revision 124098) +++ /trunk/Source/WebCore/css/CSSGrammar.y (revision 124099) @@ -54,11 +54,10 @@ #define YYDEBUG 0 -// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x -#define YYPARSE_PARAM parser -#define YYLEX_PARAM parser - %} %pure_parser + +%parse-param { CSSParser* parser } +%lex-param { CSSParser* parser } %union { @@ -90,5 +89,5 @@ %{ -static inline int cssyyerror(const char*) +static inline int cssyyerror(void*, const char*) { return 1; Index: /trunk/Source/WebCore/xml/XPathParser.cpp =================================================================== --- /trunk/Source/WebCore/xml/XPathParser.cpp (revision 124098) +++ /trunk/Source/WebCore/xml/XPathParser.cpp (revision 124099) @@ -33,22 +33,19 @@ #include "XPathException.h" #include "XPathNSResolver.h" +#include "XPathPath.h" #include "XPathStep.h" #include #include -int xpathyyparse(void*); - +using namespace WebCore; using namespace WTF; using namespace Unicode; - -namespace WebCore { -namespace XPath { - -class LocationPath; - -#include "XPathGrammar.h" +using namespace XPath; + +extern int xpathyyparse(WebCore::XPath::Parser*); +#include "XPathGrammar.h" Parser* Parser::currentParser = 0; - + enum XMLCat { NameStart, NameCont, NotPartOfName }; @@ -631,4 +628,2 @@ } -} -} Index: /trunk/Source/WebCore/xml/XPathGrammar.y =================================================================== --- /trunk/Source/WebCore/xml/XPathGrammar.y (revision 124098) +++ /trunk/Source/WebCore/xml/XPathGrammar.y (revision 124099) @@ -35,4 +35,5 @@ #include "XPathPath.h" #include "XPathPredicate.h" +#include "XPathStep.h" #include "XPathVariableReference.h" #include @@ -45,6 +46,4 @@ #define YYDEBUG 0 #define YYMAXDEPTH 10000 -#define YYPARSE_PARAM parserParameter -#define PARSER static_cast(parserParameter) using namespace WebCore; @@ -54,4 +53,5 @@ %pure_parser +%parse-param { WebCore::XPath::Parser* parser } %union @@ -72,5 +72,5 @@ static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); } -static void xpathyyerror(const char*) { } +static void xpathyyerror(void*, const char*) { } %} @@ -119,5 +119,5 @@ OrExpr { - PARSER->m_topExpr = $1; + parser->m_topExpr = $1; } ; @@ -139,5 +139,5 @@ { $$ = new LocationPath; - PARSER->registerParseNode($$); + parser->registerParseNode($$); } | @@ -151,5 +151,5 @@ $$ = $2; $$->insertFirstStep($1); - PARSER->unregisterParseNode($1); + parser->unregisterParseNode($1); } ; @@ -160,6 +160,6 @@ $$ = new LocationPath; $$->appendStep($1); - PARSER->unregisterParseNode($1); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->registerParseNode($$); } | @@ -167,5 +167,5 @@ { $$->appendStep($3); - PARSER->unregisterParseNode($3); + parser->unregisterParseNode($3); } | @@ -174,6 +174,6 @@ $$->appendStep($2); $$->appendStep($3); - PARSER->unregisterParseNode($2); - PARSER->unregisterParseNode($3); + parser->unregisterParseNode($2); + parser->unregisterParseNode($3); } ; @@ -184,9 +184,9 @@ if ($2) { $$ = new Step(Step::ChildAxis, *$1, *$2); - PARSER->deletePredicateVector($2); + parser->deletePredicateVector($2); } else $$ = new Step(Step::ChildAxis, *$1); - PARSER->deleteNodeTest($1); - PARSER->registerParseNode($$); + parser->deleteNodeTest($1); + parser->registerParseNode($$); } | @@ -195,6 +195,6 @@ String localName; String namespaceURI; - if (!PARSER->expandQName(*$1, localName, namespaceURI)) { - PARSER->m_gotNamespaceError = true; + if (!parser->expandQName(*$1, localName, namespaceURI)) { + parser->m_gotNamespaceError = true; YYABORT; } @@ -202,9 +202,9 @@ if ($2) { $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$2); - PARSER->deletePredicateVector($2); + parser->deletePredicateVector($2); } else $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI)); - PARSER->deleteString($1); - PARSER->registerParseNode($$); + parser->deleteString($1); + parser->registerParseNode($$); } | @@ -213,9 +213,9 @@ if ($3) { $$ = new Step($1, *$2, *$3); - PARSER->deletePredicateVector($3); + parser->deletePredicateVector($3); } else $$ = new Step($1, *$2); - PARSER->deleteNodeTest($2); - PARSER->registerParseNode($$); + parser->deleteNodeTest($2); + parser->registerParseNode($$); } | @@ -224,6 +224,6 @@ String localName; String namespaceURI; - if (!PARSER->expandQName(*$2, localName, namespaceURI)) { - PARSER->m_gotNamespaceError = true; + if (!parser->expandQName(*$2, localName, namespaceURI)) { + parser->m_gotNamespaceError = true; YYABORT; } @@ -231,9 +231,9 @@ if ($3) { $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$3); - PARSER->deletePredicateVector($3); + parser->deletePredicateVector($3); } else $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI)); - PARSER->deleteString($2); - PARSER->registerParseNode($$); + parser->deleteString($2); + parser->registerParseNode($$); } | @@ -260,6 +260,6 @@ $$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest); - PARSER->deleteString($1); - PARSER->registerNodeTest($$); + parser->deleteString($1); + parser->registerNodeTest($$); } | @@ -267,6 +267,6 @@ { $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest); - PARSER->deleteString($1); - PARSER->registerNodeTest($$); + parser->deleteString($1); + parser->registerNodeTest($$); } | @@ -274,7 +274,7 @@ { $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace()); - PARSER->deleteString($1); - PARSER->deleteString($3); - PARSER->registerNodeTest($$); + parser->deleteString($1); + parser->deleteString($3); + parser->registerNodeTest($$); } ; @@ -294,6 +294,6 @@ $$ = new Vector; $$->append(new Predicate($1)); - PARSER->unregisterParseNode($1); - PARSER->registerPredicateVector($$); + parser->unregisterParseNode($1); + parser->registerPredicateVector($$); } | @@ -301,5 +301,5 @@ { $$->append(new Predicate($2)); - PARSER->unregisterParseNode($2); + parser->unregisterParseNode($2); } ; @@ -316,5 +316,5 @@ { $$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); - PARSER->registerParseNode($$); + parser->registerParseNode($$); } ; @@ -324,5 +324,5 @@ { $$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); - PARSER->registerParseNode($$); + parser->registerParseNode($$); } | @@ -330,5 +330,5 @@ { $$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); - PARSER->registerParseNode($$); + parser->registerParseNode($$); } ; @@ -338,6 +338,6 @@ { $$ = new VariableReference(*$1); - PARSER->deleteString($1); - PARSER->registerParseNode($$); + parser->deleteString($1); + parser->registerParseNode($$); } | @@ -350,6 +350,6 @@ { $$ = new StringExpression(*$1); - PARSER->deleteString($1); - PARSER->registerParseNode($$); + parser->deleteString($1); + parser->registerParseNode($$); } | @@ -357,6 +357,6 @@ { $$ = new Number($1->toDouble()); - PARSER->deleteString($1); - PARSER->registerParseNode($$); + parser->deleteString($1); + parser->registerParseNode($$); } | @@ -370,6 +370,6 @@ if (!$$) YYABORT; - PARSER->deleteString($1); - PARSER->registerParseNode($$); + parser->deleteString($1); + parser->registerParseNode($$); } | @@ -379,7 +379,7 @@ if (!$$) YYABORT; - PARSER->deleteString($1); - PARSER->deleteExpressionVector($3); - PARSER->registerParseNode($$); + parser->deleteString($1); + parser->deleteExpressionVector($3); + parser->registerParseNode($$); } ; @@ -390,6 +390,6 @@ $$ = new Vector; $$->append($1); - PARSER->unregisterParseNode($1); - PARSER->registerExpressionVector($$); + parser->unregisterParseNode($1); + parser->registerExpressionVector($$); } | @@ -397,5 +397,5 @@ { $$->append($3); - PARSER->unregisterParseNode($3); + parser->unregisterParseNode($3); } ; @@ -413,7 +413,7 @@ $$->addSubExpression($1); $$->addSubExpression($3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -431,7 +431,7 @@ $3->setAbsolute(true); $$ = new Path(static_cast($1), $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } | @@ -441,8 +441,8 @@ $3->setAbsolute(true); $$ = new Path(static_cast($1), $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($2); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($2); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -454,7 +454,7 @@ { $$ = new Filter($1, *$2); - PARSER->unregisterParseNode($1); - PARSER->deletePredicateVector($2); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->deletePredicateVector($2); + parser->registerParseNode($$); } ; @@ -466,7 +466,7 @@ { $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -478,7 +478,7 @@ { $$ = new LogicalOp(LogicalOp::OP_And, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -490,7 +490,7 @@ { $$ = new EqTestOp($2, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -502,7 +502,7 @@ { $$ = new EqTestOp($2, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -514,7 +514,7 @@ { $$ = new NumericOp(NumericOp::OP_Add, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } | @@ -522,7 +522,7 @@ { $$ = new NumericOp(NumericOp::OP_Sub, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -534,7 +534,7 @@ { $$ = new NumericOp($2, $1, $3); - PARSER->unregisterParseNode($1); - PARSER->unregisterParseNode($3); - PARSER->registerParseNode($$); + parser->unregisterParseNode($1); + parser->unregisterParseNode($3); + parser->registerParseNode($$); } ; @@ -547,6 +547,6 @@ $$ = new Negative; $$->addSubExpression($2); - PARSER->unregisterParseNode($2); - PARSER->registerParseNode($$); + parser->unregisterParseNode($2); + parser->registerParseNode($$); } ;