|
Pol
Revision:cb584c9
|
#include <parser.h>
Public Types | |
| typedef std::vector< Token * > | Tokens |
Public Member Functions | |
| ~Expression () | |
| void | eat (Expression &expr) |
| void | eat2 (Expression &expr) |
| int | get_num_tokens (int idx) const |
| void | optimize () |
| void | optimize_assignments () |
| void | optimize_binary_operations () |
| bool | optimize_token (int i) |
| void | optimize_unary_operations () |
Public Attributes | |
| std::queue< Token * > | CA |
| Tokens | tokens |
| std::stack< Token * > | TX |
| typedef std::vector<Token*> Pol::Bscript::Expression::Tokens |
| Pol::Bscript::Expression::~Expression | ( | ) |
Definition at line 154 of file compiler.cpp.
| void Pol::Bscript::Expression::eat | ( | Expression & | expr | ) |
Definition at line 180 of file compiler.cpp.
References CA.
Referenced by Pol::Bscript::Compiler::getUserArgs().
| void Pol::Bscript::Expression::eat2 | ( | Expression & | expr | ) |
Definition at line 189 of file compiler.cpp.
References tokens.
Referenced by Pol::Bscript::Compiler::getArrayElements(), Pol::Bscript::Compiler::getDictionaryMembers(), Pol::Bscript::Compiler::getMethodArguments(), Pol::Bscript::Compiler::getNewArrayElements(), and Pol::Bscript::Compiler::getStructMembers().
| int Pol::Bscript::Expression::get_num_tokens | ( | int | idx | ) | const |
Definition at line 467 of file compiler.cpp.
References Pol::Bscript::CTRL_JSR_USERFUNC, Pol::Bscript::CTRL_MAKELOCAL, Pol::Bscript::Token::id, Pol::Bscript::INS_ADDMEMBER2, Pol::Bscript::INS_ADDMEMBER_ASSIGN, Pol::Bscript::INS_DICTIONARY_ADDMEMBER, Pol::Bscript::INS_MULTISUBSCRIPT, Pol::Bscript::INS_MULTISUBSCRIPT_ASSIGN, Pol::Bscript::Token::lval, Pol::Bscript::UserFunction::parameters, passert_always, Pol::Bscript::TYP_FUNC, Pol::Bscript::TYP_METHOD, Pol::Bscript::TYP_OPERAND, Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_UNARY_OPERATOR, Pol::Bscript::TYP_USERFUNC, Pol::Bscript::Token::type, and Pol::Bscript::Token::userfunc.
Referenced by Pol::Bscript::Compiler::validate().
| void Pol::Bscript::Expression::optimize | ( | ) |
Definition at line 764 of file compiler.cpp.
Referenced by Pol::Bscript::Compiler::readexpr().
| void Pol::Bscript::Expression::optimize_assignments | ( | ) |
Definition at line 726 of file compiler.cpp.
| void Pol::Bscript::Expression::optimize_binary_operations | ( | ) |
Definition at line 365 of file compiler.cpp.
References Pol::Bscript::Token::id, Pol::Bscript::optimize_double_operation(), Pol::Bscript::optimize_long_operation(), Pol::Bscript::optimize_string_operation(), Pol::Bscript::TOK_DOUBLE, Pol::Bscript::TOK_LONG, Pol::Bscript::TOK_STRING, Pol::Clib::tostring(), Pol::Bscript::TYP_OPERATOR, and Pol::Bscript::Token::type.
| bool Pol::Bscript::Expression::optimize_token | ( | int | i | ) |
Definition at line 541 of file compiler.cpp.
References Pol::Bscript::compilercfg, Pol::Bscript::Token::copyStr(), Pol::Bscript::getKnownObjMember(), Pol::Bscript::Token::id, Pol::Bscript::ObjMember::id, Pol::Bscript::INS_ASSIGN_CONSUME, Pol::Bscript::INS_ASSIGN_GLOBALVAR, Pol::Bscript::INS_ASSIGN_LOCALVAR, Pol::Bscript::INS_GET_MEMBER, Pol::Bscript::INS_GET_MEMBER_ID, Pol::Bscript::INS_MULTISUBSCRIPT, Pol::Bscript::INS_MULTISUBSCRIPT_ASSIGN, Pol::Bscript::INS_SET_MEMBER, Pol::Bscript::INS_SET_MEMBER_CONSUME, Pol::Bscript::INS_SET_MEMBER_ID, Pol::Bscript::INS_SET_MEMBER_ID_CONSUME, Pol::Bscript::INS_SET_MEMBER_ID_CONSUME_DIVIDEEQUAL, Pol::Bscript::INS_SET_MEMBER_ID_CONSUME_MINUSEQUAL, Pol::Bscript::INS_SET_MEMBER_ID_CONSUME_MODULUSEQUAL, Pol::Bscript::INS_SET_MEMBER_ID_CONSUME_PLUSEQUAL, Pol::Bscript::INS_SET_MEMBER_ID_CONSUME_TIMESEQUAL, Pol::Bscript::INS_SUBSCRIPT_ASSIGN, Pol::Bscript::INS_SUBSCRIPT_ASSIGN_CONSUME, Pol::Bscript::Token::lval, Pol::Bscript::CompilerConfig::OptimizeObjectMembers, OSTRINGSTREAM, OSTRINGSTREAM_STR, Pol::Bscript::TOK_ARRAY_SUBSCRIPT, Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_CONSUMER, Pol::Bscript::TOK_DIVIDEEQUAL, Pol::Bscript::TOK_GLOBALVAR, Pol::Bscript::TOK_LOCALVAR, Pol::Bscript::TOK_MEMBER, Pol::Bscript::TOK_MINUSEQUAL, Pol::Bscript::TOK_MODULUSEQUAL, Pol::Bscript::TOK_PLUSEQUAL, Pol::Bscript::TOK_STRING, Pol::Bscript::TOK_TIMESEQUAL, Pol::Bscript::Token::tokval(), Pol::Clib::tostring(), Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_UNARY_OPERATOR, and Pol::Bscript::Token::type.
| void Pol::Bscript::Expression::optimize_unary_operations | ( | ) |
Definition at line 417 of file compiler.cpp.
References Pol::Bscript::Token::id, Pol::Bscript::optimize_double_operation(), Pol::Bscript::optimize_long_operation(), Pol::Bscript::optimize_string_operation(), Pol::Bscript::TOK_DOUBLE, Pol::Bscript::TOK_LONG, Pol::Bscript::TOK_STRING, Pol::Bscript::TOK_UNPLUS, Pol::Clib::tostring(), Pol::Bscript::TYP_UNARY_OPERATOR, and Pol::Bscript::Token::type.
| std::queue<Token*> Pol::Bscript::Expression::CA |
Definition at line 91 of file parser.h.
Referenced by eat(), Pol::Bscript::Compiler::getArrayElements(), Pol::Bscript::Compiler::getDictionaryMembers(), Pol::Bscript::Compiler::getNewArrayElements(), Pol::Bscript::Compiler::getStructMembers(), Pol::Bscript::Compiler::getUserArgs(), Pol::Bscript::SmartParser::IIP(), Pol::Bscript::SmartParser::parseToken(), Pol::Bscript::Compiler::readexpr(), and Pol::Bscript::Parser::reinit().
| Tokens Pol::Bscript::Expression::tokens |
Definition at line 87 of file parser.h.
Referenced by Pol::Bscript::Compiler::convert_variables(), eat2(), Pol::Bscript::Compiler::getExpr(), Pol::Bscript::Compiler::handleBracketedIf(), Pol::Bscript::Compiler::handleConstDeclare(), Pol::Bscript::Compiler::handleEnumDeclare(), Pol::Bscript::Compiler::inject(), Pol::Bscript::Compiler::readexpr(), Pol::Bscript::Compiler::readFunctionDeclaration(), Pol::Bscript::Compiler::substitute_constants(), and Pol::Bscript::Compiler::validate().
| std::stack<Token*> Pol::Bscript::Expression::TX |
Definition at line 90 of file parser.h.
Referenced by Pol::Bscript::SmartParser::getToken(), Pol::Bscript::SmartParser::IIP(), Pol::Bscript::SmartParser::parseToken(), and Pol::Bscript::Parser::reinit().