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