[webkit-dev] Regarding lex( ) function in WebKit

Mark Rowe bdash at webkit.org
Mon Sep 3 06:04:16 PDT 2007

On 03/09/2007, at 19:47, Shriram Bhat wrote:

> Hi All,
> In the file WebKit/WebCore/css/CSSParser.cpp, there is a function  
> with following signature.
> int CSSParser::lex(void* yylav)
> Inside this function there is call to function lex like this, int  
> token = lex();
> This lex() function is declared in header file CSSParser.h
> Header file has declaration for both the lex functions as follows.
> int lex(void* yylval);
> int lex();
> But in CSSParser.cpp, i am not finding any definition for the second  
> function lex().
> If i try to build WebKit with Gdk support, i am getting undefined  
> symbols error that says,
> ld:Undefined symbols
> __ZN7WebCore9CSSParser3lexEv
> Can anyone please give me more insight into this missing function  
> definition.

The function is generated from tokenizer.flex and ends up in  
tokenizer.cpp, which CSSParser.cpp #include's.  On the Mac build this  
file is generated to WebKitBuild/Debug/DerivedSources/WebCore/ 
tokenizer.cpp.  I'm not sure precisely where it would end up with the  
Gdk build.  If you're seeing a link error with this function missing  
it would suggest that the file is not being generated correctly due to  
an error in either flex or the WebCore/css/maketokenizer script which  
post-processes the flex output.

Kind regards,

Mark Rowe

More information about the webkit-dev mailing list