Title: [124099] trunk/Source/WebCore
Revision
124099
Author
alexis.men...@openbossa.org
Date
2012-07-30 15:18:20 -0700 (Mon, 30 Jul 2012)

Log Message

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.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (124098 => 124099)


--- trunk/Source/WebCore/ChangeLog	2012-07-30 22:13:17 UTC (rev 124098)
+++ trunk/Source/WebCore/ChangeLog	2012-07-30 22:18:20 UTC (rev 124099)
@@ -1,3 +1,28 @@
+2012-07-30  Alexis Menard  <alexis.men...@openbossa.org>
+
+        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  <sad...@chromium.org>
 
         Propagate gesture events to plugins.

Modified: trunk/Source/WebCore/css/CSSGrammar.y (124098 => 124099)


--- trunk/Source/WebCore/css/CSSGrammar.y	2012-07-30 22:13:17 UTC (rev 124098)
+++ trunk/Source/WebCore/css/CSSGrammar.y	2012-07-30 22:18:20 UTC (rev 124099)
@@ -53,14 +53,13 @@
 #define YYMAXDEPTH 10000
 #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 {
     bool boolean;
     char character;
@@ -89,7 +88,7 @@
 
 %{
 
-static inline int cssyyerror(const char*)
+static inline int cssyyerror(void*, const char*)
 {
     return 1;
 }

Modified: trunk/Source/WebCore/css/CSSParser.cpp (124098 => 124099)


--- trunk/Source/WebCore/css/CSSParser.cpp	2012-07-30 22:13:17 UTC (rev 124098)
+++ trunk/Source/WebCore/css/CSSParser.cpp	2012-07-30 22:18:20 UTC (rev 124099)
@@ -114,7 +114,7 @@
 extern int cssyydebug;
 #endif
 
-extern int cssyyparse(void* parser);
+extern int cssyyparse(WebCore::CSSParser*);
 
 using namespace std;
 using namespace WTF;

Modified: trunk/Source/WebCore/xml/XPathGrammar.y (124098 => 124099)


--- trunk/Source/WebCore/xml/XPathGrammar.y	2012-07-30 22:13:17 UTC (rev 124098)
+++ trunk/Source/WebCore/xml/XPathGrammar.y	2012-07-30 22:18:20 UTC (rev 124099)
@@ -34,6 +34,7 @@
 #include "XPathParser.h"
 #include "XPathPath.h"
 #include "XPathPredicate.h"
+#include "XPathStep.h"
 #include "XPathVariableReference.h"
 #include <wtf/FastMalloc.h>
 
@@ -44,8 +45,6 @@
 #define YYLTYPE_IS_TRIVIAL 1
 #define YYDEBUG 0
 #define YYMAXDEPTH 10000
-#define YYPARSE_PARAM parserParameter
-#define PARSER static_cast<Parser*>(parserParameter)
 
 using namespace WebCore;
 using namespace XPath;
@@ -53,6 +52,7 @@
 %}
 
 %pure_parser
+%parse-param { WebCore::XPath::Parser* parser }
 
 %union
 {
@@ -71,7 +71,7 @@
 %{
 
 static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }
-static void xpathyyerror(const char*) { }
+static void xpathyyerror(void*, const char*) { }
     
 %}
 
@@ -118,7 +118,7 @@
 Expr:
     OrExpr
     {
-        PARSER->m_topExpr = $1;
+        parser->m_topExpr = $1;
     }
     ;
 
@@ -138,7 +138,7 @@
     '/'
     {
         $$ = new LocationPath;
-        PARSER->registerParseNode($$);
+        parser->registerParseNode($$);
     }
     |
     '/' RelativeLocationPath
@@ -150,7 +150,7 @@
     {
         $$ = $2;
         $$->insertFirstStep($1);
-        PARSER->unregisterParseNode($1);
+        parser->unregisterParseNode($1);
     }
     ;
 
@@ -159,22 +159,22 @@
     {
         $$ = new LocationPath;
         $$->appendStep($1);
-        PARSER->unregisterParseNode($1);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->registerParseNode($$);
     }
     |
     RelativeLocationPath '/' Step
     {
         $$->appendStep($3);
-        PARSER->unregisterParseNode($3);
+        parser->unregisterParseNode($3);
     }
     |
     RelativeLocationPath DescendantOrSelf Step
     {
         $$->appendStep($2);
         $$->appendStep($3);
-        PARSER->unregisterParseNode($2);
-        PARSER->unregisterParseNode($3);
+        parser->unregisterParseNode($2);
+        parser->unregisterParseNode($3);
     }
     ;
 
@@ -183,58 +183,58 @@
     {
         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($$);
     }
     |
     NAMETEST OptionalPredicateList
     {
         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;
         }
         
         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($$);
     }
     |
     AxisSpecifier NodeTest OptionalPredicateList
     {
         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($$);
     }
     |
     AxisSpecifier NAMETEST OptionalPredicateList
     {
         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;
         }
 
         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($$);
     }
     |
     AbbreviatedStep
@@ -259,23 +259,23 @@
         else if (*$1 == "comment")
             $$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest);
 
-        PARSER->deleteString($1);
-        PARSER->registerNodeTest($$);
+        parser->deleteString($1);
+        parser->registerNodeTest($$);
     }
     |
     PI '(' ')'
     {
         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);
-        PARSER->deleteString($1);        
-        PARSER->registerNodeTest($$);
+        parser->deleteString($1);
+        parser->registerNodeTest($$);
     }
     |
     PI '(' LITERAL ')'
     {
         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace());
-        PARSER->deleteString($1);        
-        PARSER->deleteString($3);
-        PARSER->registerNodeTest($$);
+        parser->deleteString($1);
+        parser->deleteString($3);
+        parser->registerNodeTest($$);
     }
     ;
 
@@ -293,14 +293,14 @@
     {
         $$ = new Vector<Predicate*>;
         $$->append(new Predicate($1));
-        PARSER->unregisterParseNode($1);
-        PARSER->registerPredicateVector($$);
+        parser->unregisterParseNode($1);
+        parser->registerPredicateVector($$);
     }
     |
     PredicateList Predicate
     {
         $$->append(new Predicate($2));
-        PARSER->unregisterParseNode($2);
+        parser->unregisterParseNode($2);
     }
     ;
 
@@ -315,7 +315,7 @@
     SLASHSLASH
     {
         $$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
-        PARSER->registerParseNode($$);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -323,13 +323,13 @@
     '.'
     {
         $$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
-        PARSER->registerParseNode($$);
+        parser->registerParseNode($$);
     }
     |
     DOTDOT
     {
         $$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
-        PARSER->registerParseNode($$);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -337,8 +337,8 @@
     VARIABLEREFERENCE
     {
         $$ = new VariableReference(*$1);
-        PARSER->deleteString($1);
-        PARSER->registerParseNode($$);
+        parser->deleteString($1);
+        parser->registerParseNode($$);
     }
     |
     '(' Expr ')'
@@ -349,15 +349,15 @@
     LITERAL
     {
         $$ = new StringExpression(*$1);
-        PARSER->deleteString($1);
-        PARSER->registerParseNode($$);
+        parser->deleteString($1);
+        parser->registerParseNode($$);
     }
     |
     NUMBER
     {
         $$ = new Number($1->toDouble());
-        PARSER->deleteString($1);
-        PARSER->registerParseNode($$);
+        parser->deleteString($1);
+        parser->registerParseNode($$);
     }
     |
     FunctionCall
@@ -369,8 +369,8 @@
         $$ = createFunction(*$1);
         if (!$$)
             YYABORT;
-        PARSER->deleteString($1);
-        PARSER->registerParseNode($$);
+        parser->deleteString($1);
+        parser->registerParseNode($$);
     }
     |
     FUNCTIONNAME '(' ArgumentList ')'
@@ -378,9 +378,9 @@
         $$ = createFunction(*$1, *$3);
         if (!$$)
             YYABORT;
-        PARSER->deleteString($1);
-        PARSER->deleteExpressionVector($3);
-        PARSER->registerParseNode($$);
+        parser->deleteString($1);
+        parser->deleteExpressionVector($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -389,14 +389,14 @@
     {
         $$ = new Vector<_expression_*>;
         $$->append($1);
-        PARSER->unregisterParseNode($1);
-        PARSER->registerExpressionVector($$);
+        parser->unregisterParseNode($1);
+        parser->registerExpressionVector($$);
     }
     |
     ArgumentList ',' Argument
     {
         $$->append($3);
-        PARSER->unregisterParseNode($3);
+        parser->unregisterParseNode($3);
     }
     ;
 
@@ -412,9 +412,9 @@
         $$ = new Union;
         $$->addSubExpression($1);
         $$->addSubExpression($3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -430,9 +430,9 @@
     {
         $3->setAbsolute(true);
         $$ = new Path(static_cast<Filter*>($1), $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     |
     FilterExpr DescendantOrSelf RelativeLocationPath
@@ -440,10 +440,10 @@
         $3->insertFirstStep($2);
         $3->setAbsolute(true);
         $$ = new Path(static_cast<Filter*>($1), $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($2);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($2);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -453,9 +453,9 @@
     PrimaryExpr PredicateList
     {
         $$ = new Filter($1, *$2);
-        PARSER->unregisterParseNode($1);
-        PARSER->deletePredicateVector($2);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->deletePredicateVector($2);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -465,9 +465,9 @@
     OrExpr OR AndExpr
     {
         $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -477,9 +477,9 @@
     AndExpr AND EqualityExpr
     {
         $$ = new LogicalOp(LogicalOp::OP_And, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -489,9 +489,9 @@
     EqualityExpr EQOP RelationalExpr
     {
         $$ = new EqTestOp($2, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -501,9 +501,9 @@
     RelationalExpr RELOP AdditiveExpr
     {
         $$ = new EqTestOp($2, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -513,17 +513,17 @@
     AdditiveExpr PLUS MultiplicativeExpr
     {
         $$ = new NumericOp(NumericOp::OP_Add, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     |
     AdditiveExpr MINUS MultiplicativeExpr
     {
         $$ = new NumericOp(NumericOp::OP_Sub, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -533,9 +533,9 @@
     MultiplicativeExpr MULOP UnaryExpr
     {
         $$ = new NumericOp($2, $1, $3);
-        PARSER->unregisterParseNode($1);
-        PARSER->unregisterParseNode($3);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($1);
+        parser->unregisterParseNode($3);
+        parser->registerParseNode($$);
     }
     ;
 
@@ -546,8 +546,8 @@
     {
         $$ = new Negative;
         $$->addSubExpression($2);
-        PARSER->unregisterParseNode($2);
-        PARSER->registerParseNode($$);
+        parser->unregisterParseNode($2);
+        parser->registerParseNode($$);
     }
     ;
 

Modified: trunk/Source/WebCore/xml/XPathParser.cpp (124098 => 124099)


--- trunk/Source/WebCore/xml/XPathParser.cpp	2012-07-30 22:13:17 UTC (rev 124098)
+++ trunk/Source/WebCore/xml/XPathParser.cpp	2012-07-30 22:18:20 UTC (rev 124099)
@@ -32,24 +32,21 @@
 #include "XPathEvaluator.h"
 #include "XPathException.h"
 #include "XPathNSResolver.h"
+#include "XPathPath.h"
 #include "XPathStep.h"
 #include <wtf/StdLibExtras.h>
 #include <wtf/text/StringHash.h>
 
-int xpathyyparse(void*);
-
+using namespace WebCore;
 using namespace WTF;
 using namespace Unicode;
+using namespace XPath;
 
-namespace WebCore {
-namespace XPath {
+extern int xpathyyparse(WebCore::XPath::Parser*);
+#include "XPathGrammar.h"
 
-class LocationPath;
-
-#include "XPathGrammar.h"    
-
 Parser* Parser::currentParser = 0;
-    
+
 enum XMLCat { NameStart, NameCont, NotPartOfName };
 
 typedef HashMap<String, Step::Axis> AxisNamesMap;
@@ -630,5 +627,3 @@
     delete t;
 }
 
-}
-}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to