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().