Changeset 560
- Timestamp:
- 06/21/08 13:16:15 (5 months ago)
- Files:
-
- trunk/rphp/compiler/parser/php.g (modified) (10 diffs)
- trunk/rphp/compiler/parser/rphp_parser.cpp (modified) (10 diffs)
- trunk/rphp/compiler/parser/rphp_parser.h (modified) (4 diffs)
- trunk/rphp/tools/kdevelop-pg/CMakeLists.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/rphp/compiler/parser/php.g
r559 r560 56 56 Info 57 57 }; 58 void reportProblem( Parser::ProblemType type, const std::string& message );58 void reportProblem( parser::ProblemType type, const std::string& message ); 59 59 std::string tokenText(qint64 begin, qint64 end); 60 60 void setDebug(bool debug); … … 72 72 bool m_debug; 73 73 74 struct ParserState {74 struct parser_state { 75 75 VarExpressionState varExpressionState; 76 76 bool varExpressionIsVariable; 77 77 }; 78 ParserState m_state;78 parser_state m_state; 79 79 :] 80 80 … … 711 711 { 712 712 713 void Parser::tokenize( const std::string& contents )713 void parser::tokenize( const std::string& contents ) 714 714 { 715 715 m_contents = contents; 716 716 Lexer lexer( this, contents ); 717 int kind = Parser::Token_EOF;717 int kind = parser::Token_EOF; 718 718 719 719 do 720 720 { 721 721 kind = lexer.nextTokenKind(); 722 while (kind == Parser::Token_WHITESPACE || kind == Parser::Token_COMMENT || kind == Parser::Token_DOC_COMMENT) {722 while (kind == parser::Token_WHITESPACE || kind == parser::Token_COMMENT || kind == parser::Token_DOC_COMMENT) { 723 723 kind = lexer.nextTokenKind(); 724 724 } 725 725 if ( !kind ) // when the lexer returns 0, the end of file is reached 726 726 { 727 kind = Parser::Token_EOF;727 kind = parser::Token_EOF; 728 728 } 729 Parser::Token &t = tokenStream->next();729 parser::Token &t = tokenStream->next(); 730 730 t.begin = lexer.tokenBegin(); 731 731 t.end = lexer.tokenEnd(); … … 733 733 //if ( m_debug ) qDebug() << kind << tokenText(t.begin,t.end) << t.begin << t.end; 734 734 } 735 while ( kind != Parser::Token_EOF );735 while ( kind != parser::Token_EOF ); 736 736 737 737 yylex(); // produce the look ahead token … … 739 739 740 740 741 std::string Parser::tokenText(qint64 begin, qint64 end)741 std::string parser::tokenText(qint64 begin, qint64 end) 742 742 { 743 743 return m_contents.mid(begin,end-begin+1); … … 745 745 746 746 747 void Parser::reportProblem( Parser::ProblemType type, const std::string& message )747 void parser::reportProblem( parser::ProblemType type, const std::string& message ) 748 748 { 749 749 if (type == Error) … … 757 757 758 758 // custom error recovery 759 void Parser::expectedToken(int /*expected*/, qint64 /*where*/, const std::string& name)759 void parser::expectedToken(int /*expected*/, qint64 /*where*/, const std::string& name) 760 760 { 761 761 // TODO port me 762 // reportProblem( Parser::Error, QString("Expected token \"%1\"").arg(name));762 // reportProblem( parser::Error, QString("Expected token \"%1\"").arg(name)); 763 763 } 764 764 765 void Parser::expectedSymbol(int /*expectedSymbol*/, const std::string& name)765 void parser::expectedSymbol(int /*expectedSymbol*/, const std::string& name) 766 766 { 767 767 qint64 line; … … 774 774 tokenStream->startPosition(index, &line, &col); 775 775 std::string tokenValue = tokenText(token.begin, token.end); 776 reportProblem( Parser::Error,776 reportProblem( parser::Error, 777 777 // TODO port me 778 778 // QString("Expected symbol \"%1\" (current token: \"%2\" [%3] at line: %4 col: %5)") … … 784 784 } 785 785 786 void Parser::setDebug( bool debug )786 void parser::setDebug( bool debug ) 787 787 { 788 788 m_debug = debug; 789 789 } 790 790 791 Parser::ParserState *Parser::copyCurrentState()792 { 793 ParserState *state = new ParserState();791 parser::parser_state *parser::copyCurrentState() 792 { 793 parser_state *state = new parser_state(); 794 794 state->varExpressionState = m_state.varExpressionState; 795 795 state->varExpressionIsVariable = m_state.varExpressionIsVariable; … … 797 797 } 798 798 799 void Parser::restoreState( Parser::ParserState* state)799 void parser::restoreState( parser::parser_state* state) 800 800 { 801 801 m_state.varExpressionState = state->varExpressionState; trunk/rphp/compiler/parser/rphp_parser.cpp
r559 r560 6 6 7 7 #include "phplexer.h" 8 #include <string> 8 9 9 10 namespace rphp 10 11 { 11 12 12 void Parser::tokenize( const std::string& contents )13 void parser::tokenize( const std::string& contents ) 13 14 { 14 15 m_contents = contents; 15 16 Lexer lexer( this, contents ); 16 int kind = Parser::Token_EOF;17 int kind = parser::Token_EOF; 17 18 18 19 do … … 20 21 kind = lexer.nextTokenKind(); 21 22 22 while (kind == Parser::Token_WHITESPACE || kind == Parser::Token_COMMENT || kind == Parser::Token_DOC_COMMENT)23 while (kind == parser::Token_WHITESPACE || kind == parser::Token_COMMENT || kind == parser::Token_DOC_COMMENT) 23 24 { 24 25 kind = lexer.nextTokenKind(); … … 27 28 if ( !kind ) // when the lexer returns 0, the end of file is reached 28 29 { 29 kind = Parser::Token_EOF;30 } 31 Parser::Token &t = tokenStream->next();30 kind = parser::Token_EOF; 31 } 32 parser::Token &t = tokenStream->next(); 32 33 t.begin = lexer.tokenBegin(); 33 34 t.end = lexer.tokenEnd(); … … 36 37 } 37 38 38 while ( kind != Parser::Token_EOF );39 while ( kind != parser::Token_EOF ); 39 40 40 41 yylex(); // produce the look ahead token … … 42 43 43 44 44 std::string Parser::tokenText(qint64 begin, qint64 end)45 std::string parser::tokenText(qint64 begin, qint64 end) 45 46 { 46 47 return m_contents.mid(begin, end - begin + 1); … … 48 49 49 50 50 void Parser::reportProblem( Parser::ProblemType type, const std::string& message )51 void parser::reportProblem( parser::ProblemType type, const std::string& message ) 51 52 { 52 53 if (type == Error) … … 60 61 61 62 // custom error recovery 62 void Parser::expectedToken(int /*expected*/, qint64 /*where*/, const std::string& name)63 void parser::expectedToken(int /*expected*/, qint64 /*where*/, const std::string& name) 63 64 { 64 65 // TODO port me 65 // reportProblem( Parser::Error, QString("Expected token \"%1\"").arg(name));66 // reportProblem( parser::Error, QString("Expected token \"%1\"").arg(name)); 66 67 } 67 68 68 void Parser::expectedSymbol(int /*expectedSymbol*/, const std::string& name)69 void parser::expectedSymbol(int /*expectedSymbol*/, const std::string& name) 69 70 { 70 71 qint64 line; … … 77 78 tokenStream->startPosition(index, &line, &col); 78 79 std::string tokenValue = tokenText(token.begin, token.end); 79 reportProblem( Parser::Error,80 reportProblem( parser::Error, 80 81 // TODO port me 81 82 // QString("Expected symbol \"%1\" (current token: \"%2\" [%3] at line: %4 col: %5)") … … 87 88 } 88 89 89 void Parser::setDebug( bool debug )90 void parser::setDebug( bool debug ) 90 91 { 91 92 m_debug = debug; 92 93 } 93 94 94 Parser::ParserState *Parser::copyCurrentState()95 parser::parser_state *parser::copyCurrentState() 95 96 { 96 ParserState *state = new ParserState();97 parser_state *state = new parser_state(); 97 98 state->varExpressionState = m_state.varExpressionState; 98 99 state->varExpressionIsVariable = m_state.varExpressionIsVariable; … … 100 101 } 101 102 102 void Parser::restoreState( Parser::ParserState* state)103 void parser::restoreState( parser::parser_state* state) 103 104 { 104 105 m_state.varExpressionState = state->varExpressionState; trunk/rphp/compiler/parser/rphp_parser.h
r559 r560 4 4 #ifndef rphp_H_INCLUDED 5 5 #define rphp_H_INCLUDED 6 6 #include <string> 7 7 #include "rphp_ast.h" 8 8 #include <kdev-pg-memory-pool.h> … … 240 240 Info 241 241 }; 242 void reportProblem( Parser::ProblemType type, const std::string& message );242 void reportProblem( parser::ProblemType type, const std::string& message ); 243 243 std::string tokenText(qint64 begin, qint64 end); 244 244 void setDebug(bool debug); … … 255 255 bool m_debug; 256 256 257 struct ParserState257 struct parser_state 258 258 { 259 259 VarExpressionState varExpressionState; … … 261 261 }; 262 262 263 ParserState m_state;263 parser_state m_state; 264 264 265 265 trunk/rphp/tools/kdevelop-pg/CMakeLists.txt
r558 r560 1 1 project(kdevelop-pg) 2 2 3 find_package(KDE4)3 #find_package(KDE4) 4 4 5 5 if(NOT KDE4_FOUND)
