Changeset 31809 in webkit for trunk/JavaScriptCore/kjs/lexer.cpp
- Timestamp:
- Apr 11, 2008, 1:14:45 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/lexer.cpp
r31147 r31809 48 48 #include "lexer.lut.h" 49 49 50 extern YYLTYPE kjsyylloc; // global bison variable holding token info51 52 50 // a bridge for yacc from the C world to C++ 53 int kjsyylex( )54 { 55 return lexer().lex();51 int kjsyylex(YYSTYPE* lvalp, YYLTYPE* llocp, void* lexer) 52 { 53 return static_cast<Lexer*>(lexer)->lex(lvalp, llocp); 56 54 } 57 55 … … 144 142 } 145 143 146 int Lexer::lex( )144 int Lexer::lex(YYSTYPE* lvalp, YYLTYPE* llocp) 147 145 { 148 146 int token = 0; … … 529 527 restrKeyword = false; 530 528 delimited = false; 531 kjsyylloc.first_line = yylineno; // ???532 kjsyylloc.last_line = yylineno;529 llocp->first_line = yylineno; // ??? 530 llocp->last_line = yylineno; 533 531 534 532 switch (state) { … … 544 542 if (eatNextIdentifier) { 545 543 eatNextIdentifier = false; 546 token = lex( );544 token = lex(lvalp, llocp); 547 545 break; 548 546 } 549 kjsyylval.ident = makeIdentifier(m_buffer16);547 lvalp->ident = makeIdentifier(m_buffer16); 550 548 token = IDENT; 551 549 break; 552 550 case IdentifierOrKeyword: 553 kjsyylval.ident = makeIdentifier(m_buffer16);554 if ((token = mainTable.value(* kjsyylval.ident)) < 0) {551 lvalp->ident = makeIdentifier(m_buffer16); 552 if ((token = mainTable.value(*lvalp->ident)) < 0) { 555 553 // Lookup for keyword failed, means this is an identifier. 556 554 token = IDENT; … … 563 561 break; 564 562 case String: 565 kjsyylval.string = makeUString(m_buffer16);563 lvalp->string = makeUString(m_buffer16); 566 564 token = STRING; 567 565 break; 568 566 case Number: 569 kjsyylval.doubleValue = dval;567 lvalp->doubleValue = dval; 570 568 token = NUMBER; 571 569 break;
Note:
See TracChangeset
for help on using the changeset viewer.