|
Pol
Revision:cb584c9
|
#include <compiler.h>
Inheritance diagram for Pol::Bscript::Compiler:Static Public Member Functions | |
| static void | setCheckFileCase (bool check) |
| static void | setVerbosityLevel (int vlev) |
Static Public Member Functions inherited from Pol::Bscript::Parser | |
| static void | write_words (std::ostream &os) |
Static Public Attributes | |
| static bool | check_filecase_ |
| static int | verbosity_level_ |
Private Types | |
| typedef std::map< std::string, Token > | Constants |
| typedef std::set< std::string, Clib::ci_cmp_pred > | INCLUDES |
| typedef std::map< std::string, UserFunction, Clib::ci_cmp_pred > | UserFunctions |
Private Member Functions | |
| void | convert_variables (Expression &expr) const |
| void | emit_leaveblock () |
| void | enterblock (eb_label_ok eblabel, eb_break_ok ebbreak, eb_continue_ok ebcontinue) |
| void | enterblock (eb_label_ok et) |
| int | enterLabel (Token &tok) |
| int | findLabel (Token &tok, unsigned &posn) |
| bool | globalexists (const std::string &varname, unsigned &idx, CompilerContext *atctx=NULL) const |
| bool | inGlobalScope () const |
| void | inject (Expression &expr) |
| int | insertBreak (const std::string &label) |
| void | leaveblock (unsigned breakPC, unsigned continuePC) |
| void | patchblock_breaks (unsigned breakPC) |
| void | patchblock_continues (unsigned continuePC) |
| int | readblock (CompilerContext &ctx, int level, BTokenId endtokenid, BTokenId *last_statement_id=NULL, Token *block_end=NULL) |
| int | readexpr (Expression &expr, CompilerContext &ctx, unsigned flags) |
| void | rollback (EScriptProgram &prog, const EScriptProgramCheckpoint &checkpoint) |
| bool | substitute_constant (Token *tkn) const |
| void | substitute_constants (Expression &expr) const |
| int | validate (const Expression &expr, CompilerContext &ctx) const |
| bool | varexists (const std::string &varname) const |
Private Attributes | |
| bool | compiling_include |
| Constants | constants |
| char | curLine [80] |
| std::string | current_file_path |
| int | curSourceFile |
| std::vector< char * > | delete_these_arrays |
| Variables | globals_ |
| bool | haveProgram |
| INCLUDES | included |
| int | inExpr |
| int | inFunction |
| std::string | latest_label |
| Scope | localscope |
| unsigned | nProgramArgs |
| ref_ptr< EScriptProgram > | program |
| CompilerContext | program_ctx |
| char * | program_source |
| unsigned | programPos |
| std::vector< std::string > | referencedPathnames |
| UserFunctions | userFunctions |
Additional Inherited Members | |
Public Attributes inherited from Pol::Bscript::Parser | |
| char | buffer [51] |
| bool | contains_tabs |
| ParseError | err |
| char | ext_err [50] |
| int | quiet |
Protected Member Functions inherited from Pol::Bscript::SmartParser | |
| virtual int | tryLiteral (Token &tok, CompilerContext &ctx) POL_OVERRIDE |
Protected Attributes inherited from Pol::Bscript::SmartParser | |
| class ModuleFunction * | modfunc_ |
| UserFunction * | userfunc_ |
Definition at line 120 of file compiler.h.
|
private |
Definition at line 157 of file compiler.h.
|
private |
Definition at line 145 of file compiler.h.
|
private |
Definition at line 151 of file compiler.h.
| Pol::Bscript::Compiler::Compiler | ( | ) |
Definition at line 841 of file compiler.cpp.
References Pol::Bscript::Parser::err, Pol::Bscript::PERR_NONE, and Pol::Bscript::Parser::setQuiet().
| Pol::Bscript::Compiler::~Compiler | ( | ) |
Definition at line 861 of file compiler.cpp.
References delete_these_arrays.
| int Pol::Bscript::Compiler::_getStatement | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 3987 of file compiler.cpp.
References Pol::Bscript::StoredTokenContainer::atGet1(), Pol::Bscript::compilercfg, Pol::Bscript::StoredTokenContainer::count(), Pol::Bscript::CTRL_JSR_USERFUNC, Pol::Bscript::CTRL_STATEMENTBEGIN, curLine, curSourceFile, Pol::Bscript::Token::deprecated, Pol::Bscript::CompilerConfig::DisplayWarnings, emitFileLineIfFileChanged(), Pol::Bscript::CompilerConfig::ErrorOnWarning, Pol::Bscript::EXPR_FLAG_CONSUME_RESULT, Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, Pol::Bscript::CompilerContext::filename, getExpr(), Pol::Bscript::SmartParser::getToken(), handleBracketedFunction2(), handleBracketedIf(), handleBracketedWhile(), handleBreak(), handleConstDeclare(), handleContinue(), handleDeclare(), handleDoClause(), handleEnumDeclare(), handleExit(), handleFor(), handleForEach(), handleInclude(), handleProgram(), handleRepeatUntil(), handleReturn(), handleSwitch(), handleUse(), handleVarDeclare(), Pol::Bscript::StoredToken::id, Pol::Bscript::Token::id, INFO_PRINT, inGlobalScope(), Pol::Bscript::INS_ASSIGN_CONSUME, Pol::Bscript::INS_ASSIGN_GLOBALVAR, Pol::Bscript::INS_ASSIGN_LOCALVAR, Pol::Bscript::INS_CALL_METHOD, Pol::Bscript::INS_CALL_METHOD_ID, 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, latest_label, Pol::Bscript::CompilerContext::line, Pol::Bscript::Mod_Basic, Pol::Bscript::DebugToken::offset, Pol::Bscript::Parser::peekToken(), program, Pol::Bscript::Parser::quiet, readCurLine(), Pol::Bscript::RSV_BREAK, Pol::Bscript::RSV_CONST, Pol::Bscript::RSV_CONTINUE, Pol::Bscript::RSV_DECLARE, Pol::Bscript::RSV_DO, Pol::Bscript::RSV_ENUM, Pol::Bscript::RSV_EXIT, Pol::Bscript::RSV_EXPORTED, Pol::Bscript::RSV_FOR, Pol::Bscript::RSV_FOREACH, Pol::Bscript::RSV_FUNCTION, Pol::Bscript::RSV_GLOBAL, Pol::Bscript::RSV_INCLUDE_FILE, Pol::Bscript::RSV_LOCAL, Pol::Bscript::RSV_OPTION_BRACKETED, Pol::Bscript::RSV_PROGRAM, Pol::Bscript::RSV_REPEAT, Pol::Bscript::RSV_RETURN, Pol::Bscript::RSV_ST_IF, Pol::Bscript::RSV_SWITCH, Pol::Bscript::RSV_USE_MODULE, Pol::Bscript::RSV_VAR, Pol::Bscript::RSV_WHILE, Pol::Bscript::CompilerContext::s, Pol::Bscript::CompilerContext::s_begin, savesourceline(), Pol::Bscript::DebugToken::sourceFile, Pol::Bscript::DebugToken::strOffset, Pol::Bscript::TOK_ADDMEMBER, Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_CONSUMER, Pol::Bscript::TOK_DELMEMBER, Pol::Bscript::TOK_DIVIDEEQUAL, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_FUNC, Pol::Bscript::TOK_MINUSEQUAL, Pol::Bscript::TOK_MODULUSEQUAL, Pol::Bscript::TOK_PLUSEQUAL, Pol::Bscript::TOK_TIMESEQUAL, Pol::Bscript::TOK_USERFUNC, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_CONTROL, Pol::Bscript::TYP_LABEL, Pol::Bscript::TYP_RESERVED, and Pol::Bscript::Token::type.
Referenced by getStatement().
| void Pol::Bscript::Compiler::addModule | ( | FunctionalityModule * | module | ) |
Definition at line 989 of file compiler.cpp.
References Pol::Bscript::FunctionalityModule::fillFunctionsByName(), and program.
Referenced by useModule().
| void Pol::Bscript::Compiler::addToken | ( | Token & | tok | ) |
| int Pol::Bscript::Compiler::compile | ( | CompilerContext & | ctx | ) |
Definition at line 4869 of file compiler.cpp.
References compileContext(), Pol::Bscript::CTRL_PROGEND, curSourceFile, Pol::Testing::dummy(), handleProgram2(), haveProgram, INFO_PRINT, Pol::Bscript::Mod_Basic, Pol::Bscript::CompilerContext::printOnShort(), program, program_ctx, Pol::Bscript::TYP_CONTROL, and useModule().
Referenced by compileFile().
| int Pol::Bscript::Compiler::compileContext | ( | CompilerContext & | ctx | ) |
Definition at line 4819 of file compiler.cpp.
References curLine, Pol::Bscript::Parser::err, Pol::Bscript::Parser::ext_err, getStatement(), INFO_PRINT, Pol::Bscript::ParseErrorStr, Pol::Bscript::PERR_NONE, and Pol::Bscript::CompilerContext::s.
Referenced by compile(), and includeModule().
| int Pol::Bscript::Compiler::compileFile | ( | const char * | in_file | ) |
Here starts the real complation. Reads the given file and process it
| in_file | Path for the file to compile, no more validity checks are done |
Definition at line 5369 of file compiler.cpp.
References compile(), current_file_path, emit_functions(), Pol::Clib::FullPath(), Pol::Bscript::getpathof(), INFO_PRINT, Pol::Bscript::is_web_script(), Pol::Bscript::preprocess_web_script(), program, read_function_declarations(), referencedPathnames, and verbosity_level_.
Referenced by Pol::ECompile::compile_file(), and Pol::ECompile::compile_inc().
|
private |
Definition at line 1620 of file compiler.cpp.
References globalexists(), localscope, Pol::Bscript::TOK_GLOBALVAR, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LOCALVAR, Pol::Bscript::Expression::tokens, and Pol::Bscript::Scope::varexists().
Referenced by readexpr().
| void Pol::Bscript::Compiler::dump | ( | std::ostream & | os | ) |
Definition at line 5445 of file compiler.cpp.
References program.
Referenced by Pol::ECompile::compile_file().
| int Pol::Bscript::Compiler::eatToken | ( | CompilerContext & | ctx, |
| BTokenId | tokenid | ||
| ) |
Definition at line 1854 of file compiler.cpp.
References Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, and Pol::Bscript::TYP_RESERVED.
Referenced by handleBracketedFor_basic(), handleForEach(), handleProgram2(), and handleSwitch().
| int Pol::Bscript::Compiler::emit_function | ( | UserFunction & | uf | ) |
Definition at line 5196 of file compiler.cpp.
References Pol::Bscript::UserFunction::ctx, handleBracketedFunction3(), INFO_PRINT, and Pol::Bscript::UserFunction::name.
Referenced by emit_functions().
| int Pol::Bscript::Compiler::emit_functions | ( | ) |
Definition at line 5216 of file compiler.cpp.
References compiling_include, emit_function(), Pol::Bscript::UserFunction::emitted, Pol::Bscript::UserFunction::exported, Pol::Bscript::UserFunction::forward_callers, patch_callers(), and userFunctions.
Referenced by compileFile().
|
private |
Definition at line 822 of file compiler.cpp.
References Pol::Bscript::CTRL_LEAVE_BLOCK, Pol::Bscript::Mod_Basic, and Pol::Bscript::TYP_CONTROL.
Referenced by handleBracketedFor_basic(), handleBracketedWhile(), handleDoClause(), handleForEach(), handleRepeatUntil(), and handleSwitch().
| void Pol::Bscript::Compiler::emitFileLine | ( | CompilerContext & | ctx | ) |
Definition at line 3962 of file compiler.cpp.
References Pol::Clib::decint(), Pol::Bscript::CompilerContext::filename, Pol::Bscript::CompilerContext::line, and program.
Referenced by emitFileLineIfFileChanged(), handleBracketedFunction3(), and handleProgram2().
| void Pol::Bscript::Compiler::emitFileLineIfFileChanged | ( | CompilerContext & | ctx | ) |
Definition at line 3969 of file compiler.cpp.
References emitFileLine(), Pol::Bscript::CompilerContext::filename, and program.
Referenced by _getStatement().
|
private |
Definition at line 777 of file compiler.cpp.
References Pol::Bscript::BlockDesc::break_ok, Pol::Bscript::CanBeLabelled, Pol::Bscript::BlockDesc::continue_ok, Pol::Bscript::BlockDesc::label, Pol::Bscript::BlockDesc::label_ok, and Pol::Bscript::BlockDesc::varcount.
Referenced by handleBlock(), handleBracketedFor_basic(), handleBracketedFor_c(), handleBracketedFunction(), handleBracketedFunction3(), handleBracketedIf(), handleBracketedWhile(), handleDoClause(), handleFor_c(), handleForEach(), handleFunction(), handleProgram2(), handleRepeatUntil(), and handleSwitch().
|
private |
Definition at line 797 of file compiler.cpp.
References Pol::Bscript::BreakNotOk, Pol::Bscript::BreakOk, Pol::Bscript::ContinueNotOk, and Pol::Bscript::ContinueOk.
|
private |
|
private |
| int Pol::Bscript::Compiler::forward_read_function | ( | CompilerContext & | ctx | ) |
Definition at line 4740 of file compiler.cpp.
References Pol::Bscript::UserFunction::ctx, curLine, Pol::Bscript::UserFunction::declaration, delete_these_arrays, Pol::Bscript::UserFunction::exported, Pol::Bscript::UserFunction::function_body, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::UserFunction::name, readFunctionDeclaration(), Pol::Bscript::RSV_ENDFUNCTION, Pol::Bscript::RSV_EXPORTED, Pol::Bscript::RSV_FUNCTION, Pol::Bscript::CompilerContext::s, Pol::Bscript::CompilerContext::s_begin, and userFunctions.
Referenced by inner_read_function_declarations().
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1013 of file compiler.cpp.
References Pol::Bscript::Expression::CA, Pol::Bscript::Expression::eat2(), Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_INSERTINTO, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_RPAREN, and Pol::Bscript::TYP_OPERATOR.
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1256 of file compiler.cpp.
References Pol::Bscript::Expression::CA, Pol::Bscript::Expression::eat2(), Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_DICTKEY_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTBRACE_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::INS_DICTIONARY_ADDMEMBER, Pol::Bscript::INS_UNINIT, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_DICTKEY, Pol::Bscript::TOK_LBRACE, Pol::Bscript::TOK_RBRACE, Pol::Bscript::TYP_OPERAND, and Pol::Bscript::TYP_OPERATOR.
| int Pol::Bscript::Compiler::getExpr | ( | CompilerContext & | ctx, |
| unsigned | expr_flags, | ||
| size_t * | exprlen = NULL, |
||
| Expression * | ex = NULL |
||
| ) |
Definition at line 1766 of file compiler.cpp.
References inject(), readexpr(), and Pol::Bscript::Expression::tokens.
Referenced by _getStatement(), getExpr2(), handleBracketedFor_basic(), handleDoClause(), handleRepeatUntil(), and handleVarDeclare().
| int Pol::Bscript::Compiler::getExpr2 | ( | CompilerContext & | ctx, |
| unsigned | expr_flags, | ||
| Expression * | ex = NULL |
||
| ) |
Definition at line 1787 of file compiler.cpp.
References getExpr(), and inExpr.
Referenced by getExprInParens(), getSimpleExpr(), handleBracketedFor_basic(), and handleReturn().
| int Pol::Bscript::Compiler::getExprInParens | ( | CompilerContext & | ctx, |
| Expression * | ex = NULL |
||
| ) |
Definition at line 1802 of file compiler.cpp.
References Pol::Bscript::Parser::err, Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, getExpr2(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, Pol::Bscript::PERR_MISSLPAREN, Pol::Bscript::PERR_MISSRPAREN, Pol::Bscript::PERR_NONE, Pol::Bscript::TOK_LPAREN, and Pol::Bscript::TOK_RPAREN.
Referenced by getSimpleExpr(), handleBracketedIf(), handleBracketedWhile(), handleIf(), and handleSwitch().
| int Pol::Bscript::Compiler::getFileContents | ( | const char * | filename, |
| char ** | contents | ||
| ) |
Definition at line 4928 of file compiler.cpp.
References Pol::Clib::FileExists(), Pol::Clib::GetFilePart(), Pol::Clib::GetTrueName(), and INFO_PRINT.
Referenced by includeModule(), read_function_declarations_in_included_file(), and useModule().
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1407 of file compiler.cpp.
References Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::TOK_FUNCREF, Pol::Bscript::TOK_USERFUNC, Pol::Bscript::TYP_OPERAND, and Pol::Bscript::Token::type.
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1355 of file compiler.cpp.
References Pol::Bscript::Expression::eat2(), Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, passert, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_LPAREN, and Pol::Bscript::TOK_RPAREN.
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1086 of file compiler.cpp.
References Pol::Bscript::Expression::CA, Pol::Bscript::Expression::eat2(), Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTBRACE_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_INSERTINTO, Pol::Bscript::TOK_RBRACE, and Pol::Bscript::TYP_OPERATOR.
| int Pol::Bscript::Compiler::getSimpleExpr | ( | CompilerContext & | ctx | ) |
Definition at line 1826 of file compiler.cpp.
References Pol::Bscript::EXPR_FLAG_SINGLE_ELEMENT, getExpr2(), getExprInParens(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Parser::peekToken(), Pol::Bscript::TOK_ARRAY, Pol::Bscript::TOK_FUNC, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LBRACE, Pol::Bscript::TOK_LPAREN, and Pol::Bscript::TOK_USERFUNC.
Referenced by handleForEach().
| int Pol::Bscript::Compiler::getStatement | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 4189 of file compiler.cpp.
References _getStatement(), INFO_PRINT, Pol::Bscript::CompilerContext::printOnShort(), program, Pol::Bscript::CompilerContext::skipcomments(), and Pol::Bscript::CompilerContext::skipws().
Referenced by compileContext(), handleBlock(), handleBracketedIf(), handleFor_c(), handleIf(), handleSwitch(), and readblock().
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1153 of file compiler.cpp.
References Pol::Bscript::Expression::CA, Pol::Bscript::Expression::eat2(), Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTBRACE_TERM_ALLOWED, Pol::Bscript::Parser::getToken(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::INS_ADDMEMBER2, Pol::Bscript::INS_ADDMEMBER_ASSIGN, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LBRACE, Pol::Bscript::TOK_RBRACE, and Pol::Bscript::TOK_STRING.
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 1446 of file compiler.cpp.
References Pol::Bscript::Expression::CA, Pol::Bscript::CTRL_JSR_USERFUNC, Pol::Bscript::CTRL_MAKELOCAL, Pol::Bscript::CompilerContext::dbg_filenum, Pol::Bscript::Expression::eat(), Pol::Bscript::Parser::err, Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, Pol::Bscript::SmartParser::IIP(), INFO_PRINT, Pol::Bscript::CompilerContext::line, Pol::Bscript::Mod_Basic, Pol::Bscript::UserFunction::name, Pol::Bscript::UserFunction::parameters, passert, Pol::Bscript::Parser::peekToken(), Pol::Bscript::PERR_MISSLPAREN, Pol::Bscript::PERR_MISSRPAREN, Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_RPAREN, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_CONTROL, and Pol::Bscript::SmartParser::userfunc_.
|
private |
Definition at line 872 of file compiler.cpp.
References globals_, name, and Pol::Clib::stringicmp().
Referenced by convert_variables(), handleVarDeclare(), and varexists().
| int Pol::Bscript::Compiler::handleBlock | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 2317 of file compiler.cpp.
References Pol::Bscript::CanNotBeLabelled, enterblock(), getStatement(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, leaveblock(), Pol::Bscript::Parser::peekToken(), Pol::Bscript::Parser::quiet, Pol::Bscript::RSV_ENDB, and Pol::Bscript::CompilerContext::s.
Referenced by handleFunction().
| int Pol::Bscript::Compiler::handleBracketedFor_basic | ( | CompilerContext & | ctx | ) |
Definition at line 3710 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::CanBeLabelled, Pol::Bscript::CanNotBeLabelled, eatToken(), emit_leaveblock(), enterblock(), Pol::Bscript::EXPR_FLAG_AUTO_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_TO_TERM_ALLOWED, getExpr(), getExpr2(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::INS_INITFOR, Pol::Bscript::INS_NEXTFOR, leaveblock(), localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchblock_breaks(), patchblock_continues(), patchoffset(), Pol::Bscript::Scope::popblock(), program, readblock(), Pol::Bscript::RSV_ENDFOR, Pol::Bscript::RSV_TO, Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_IDENT, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_RESERVED, Pol::Bscript::Scope::varexists(), and verbosity_level_.
Referenced by handleFor().
| int Pol::Bscript::Compiler::handleBracketedFor_c | ( | CompilerContext & | ctx | ) |
Definition at line 3866 of file compiler.cpp.
References Pol::Bscript::CanBeLabelled, Pol::Bscript::CanNotBeLabelled, enterblock(), Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, inject(), leaveblock(), Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchoffset(), program, readblock(), readexpr(), Pol::Bscript::RSV_ENDFOR, Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_JMPIFFALSE, Pol::Bscript::TOK_CONSUMER, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_RPAREN, Pol::Bscript::TYP_RESERVED, and Pol::Bscript::TYP_UNARY_OPERATOR.
Referenced by handleFor().
| int Pol::Bscript::Compiler::handleBracketedFunction | ( | CompilerContext & | ctx | ) |
Definition at line 4346 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::StoredTokenContainer::atGet1(), Pol::Bscript::StoredTokenContainer::atPut1(), Pol::Bscript::CanNotBeLabelled, Pol::Bscript::StoredTokenContainer::count(), enterblock(), Pol::Bscript::StoredToken::id, INFO_PRINT, inFunction, Pol::Bscript::INS_POP_PARAM, Pol::Bscript::INS_POP_PARAM_BYREF, leaveblock(), localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::UserParam::name, Pol::Bscript::UserFunction::name, Pol::Bscript::StoredTokenContainer::next(), Pol::Bscript::UserFunction::parameters, Pol::Bscript::UserParam::pass_by_reference, patchoffset(), Pol::Bscript::UserFunction::position, program, readblock(), readFunctionDeclaration(), Pol::Bscript::RSV_ENDFUNCTION, Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_RETURN, Pol::Bscript::TOK_STRING, Pol::Bscript::TOK_USERFUNC, Pol::Bscript::TYP_OPERAND, Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_RESERVED, Pol::Bscript::TYP_USERFUNC, Pol::Bscript::UserParam::unused, and userFunctions.
| int Pol::Bscript::Compiler::handleBracketedFunction2 | ( | CompilerContext & | ctx, |
| int | level, | ||
| int | tokentype | ||
| ) |
Definition at line 4464 of file compiler.cpp.
References Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, inFunction, Pol::Bscript::RSV_ENDFUNCTION, Pol::Bscript::RSV_EXPORTED, Pol::Bscript::RSV_FUNCTION, Pol::Bscript::CompilerContext::s, and Pol::Bscript::Token::tokval().
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleBracketedFunction3 | ( | UserFunction & | userfunc, |
| CompilerContext & | ctx | ||
| ) |
Definition at line 4641 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::StoredTokenContainer::atGet1(), Pol::Bscript::CanNotBeLabelled, Pol::Bscript::StoredTokenContainer::count(), Pol::Bscript::CTRL_JSR_USERFUNC, Pol::Bscript::CTRL_MAKELOCAL, Pol::Bscript::CTRL_PROGEND, Pol::Bscript::UserFunction::declaration, emitFileLine(), enterblock(), Pol::Bscript::UserFunction::exported, INFO_PRINT, inFunction, Pol::Bscript::INS_POP_PARAM, Pol::Bscript::INS_POP_PARAM_BYREF, localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::UserParam::name, Pol::Bscript::UserFunction::name, Pol::Bscript::EPExportedFunction::name, Pol::Bscript::EPExportedFunction::nargs, Pol::Bscript::UserFunction::parameters, Pol::Bscript::UserParam::pass_by_reference, Pol::Bscript::EPExportedFunction::PC, Pol::Bscript::Scope::popblock(), Pol::Bscript::UserFunction::position, program, readblock(), Pol::Bscript::RSV_ENDFUNCTION, Pol::Bscript::RSV_RETURN, Pol::Bscript::TOK_LONG, Pol::Bscript::TYP_CONTROL, Pol::Bscript::TYP_OPERAND, Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_RESERVED, and Pol::Bscript::UserParam::unused.
Referenced by emit_function().
| int Pol::Bscript::Compiler::handleBracketedIf | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 2644 of file compiler.cpp.
References Pol::Bscript::StoredTokenContainer::atGet1(), Pol::Bscript::StoredTokenContainer::atPut1(), Pol::Bscript::CanNotBeLabelled, Pol::Bscript::EScriptProgramCheckpoint::commit(), Pol::Bscript::StoredTokenContainer::count(), enterblock(), getExprInParens(), getStatement(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, leaveblock(), Pol::Bscript::mismatched_end(), Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), Pol::Bscript::StoredToken::offset, Pol::Bscript::Parser::peekToken(), program, Pol::Bscript::Parser::quiet, readCurLine(), rollback(), Pol::Bscript::RSV_ELSE, Pol::Bscript::RSV_ELSEIF, Pol::Bscript::RSV_ENDIF, Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_JMPIFFALSE, Pol::Bscript::RSV_JMPIFTRUE, Pol::Bscript::RSV_ST_IF, Pol::Bscript::RSV_THEN, Pol::Bscript::CompilerContext::s, savesourceline(), Pol::Bscript::TOK_LOG_NOT, Pol::Bscript::TOK_LONG, Pol::Bscript::Expression::tokens, and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleBracketedWhile | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 2881 of file compiler.cpp.
References Pol::Bscript::StoredTokenContainer::atPut1(), Pol::Bscript::CanBeLabelled, Pol::Bscript::StoredTokenContainer::count(), emit_leaveblock(), enterblock(), getExprInParens(), INFO_PRINT, localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchblock_breaks(), patchblock_continues(), Pol::Bscript::Scope::popblock(), program, Pol::Bscript::Parser::quiet, readblock(), Pol::Bscript::RSV_ENDWHILE, Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_JMPIFFALSE, and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleBreak | ( | CompilerContext & | ctx | ) |
Definition at line 3606 of file compiler.cpp.
References Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, insertBreak(), Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_SEMICOLON, and Pol::Bscript::Token::tokval().
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleConstDeclare | ( | CompilerContext & | ctx | ) |
Definition at line 3082 of file compiler.cpp.
References constants, Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, readexpr(), Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_IDENT, Pol::Bscript::Expression::tokens, and Pol::Bscript::Token::tokval().
Referenced by _getStatement(), inner_read_function_declarations(), and useModule().
| int Pol::Bscript::Compiler::handleContinue | ( | CompilerContext & | ctx | ) |
Definition at line 3639 of file compiler.cpp.
References Pol::Bscript::Scope::blockdescs_, Pol::Bscript::BlockDesc::continue_ok, Pol::Bscript::BlockDesc::continue_tokens, Pol::Bscript::CTRL_LEAVE_BLOCK, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::BlockDesc::label, localscope, Pol::Bscript::Mod_Basic, program, Pol::Bscript::RSV_GOTO, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_SEMICOLON, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_CONTROL, Pol::Bscript::TYP_RESERVED, and Pol::Bscript::BlockDesc::varcount.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleDeclare | ( | CompilerContext & | ctx | ) |
Definition at line 2493 of file compiler.cpp.
References curLine, Pol::Bscript::Parser::err, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Parser::peekToken(), Pol::Bscript::PERR_MISSINGDELIM, Pol::Bscript::RSV_FUNCTION, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_RPAREN, and Pol::Bscript::TOK_SEMICOLON.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleDoClause | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 1872 of file compiler.cpp.
References Pol::Bscript::CanBeLabelled, emit_leaveblock(), enterblock(), Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, getExpr(), INFO_PRINT, localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchblock_breaks(), patchblock_continues(), Pol::Bscript::Scope::popblock(), program, Pol::Bscript::Parser::quiet, readblock(), Pol::Bscript::RSV_DOWHILE, Pol::Bscript::RSV_JMPIFTRUE, and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleEnumDeclare | ( | CompilerContext & | ctx | ) |
Definition at line 3139 of file compiler.cpp.
References constants, Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_ENDENUM_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Token::lval, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::RSV_ENDENUM, Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LONG, Pol::Bscript::Expression::tokens, Pol::Bscript::Token::tokval(), and Pol::Bscript::TYP_OPERAND.
Referenced by _getStatement(), and inner_read_function_declarations().
| int Pol::Bscript::Compiler::handleExit | ( | CompilerContext & | ctx | ) |
Definition at line 2302 of file compiler.cpp.
References Pol::Bscript::Parser::err, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Mod_Basic, Pol::Bscript::PERR_MISSINGDELIM, program, Pol::Bscript::RSV_EXIT, Pol::Bscript::TOK_SEMICOLON, and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleFor | ( | CompilerContext & | ctx | ) |
Definition at line 3946 of file compiler.cpp.
References handleBracketedFor_basic(), handleBracketedFor_c(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Parser::peekToken(), and Pol::Bscript::TOK_LPAREN.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleFor_basic | ( | CompilerContext & | ctx | ) |
| int Pol::Bscript::Compiler::handleFor_c | ( | CompilerContext & | ctx | ) |
Definition at line 3790 of file compiler.cpp.
References Pol::Bscript::CanBeLabelled, enterblock(), Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, getStatement(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, inject(), insertBreak(), leaveblock(), Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchoffset(), program, readexpr(), Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_JMPIFTRUE, Pol::Bscript::TOK_CONSUMER, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_RPAREN, Pol::Bscript::TYP_RESERVED, and Pol::Bscript::TYP_UNARY_OPERATOR.
| int Pol::Bscript::Compiler::handleForEach | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 2193 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::CanBeLabelled, Pol::Bscript::CanNotBeLabelled, eatToken(), emit_leaveblock(), enterblock(), getSimpleExpr(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::INS_INITFOREACH, Pol::Bscript::INS_STEPFOREACH, leaveblock(), localscope, Pol::Bscript::Mod_Basic, patchblock_breaks(), patchblock_continues(), patchoffset(), Pol::Bscript::Scope::popblock(), program, readblock(), Pol::Bscript::RSV_ENDFOREACH, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_IN, Pol::Bscript::Token::tokval(), and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleForEach | ( | CompilerContext & | ctx | ) |
| int Pol::Bscript::Compiler::handleFunction | ( | CompilerContext & | ctx | ) |
Definition at line 4221 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::StoredTokenContainer::atGet1(), Pol::Bscript::StoredTokenContainer::atPut1(), Pol::Bscript::CanNotBeLabelled, Pol::Bscript::StoredTokenContainer::count(), enterblock(), Pol::Bscript::SmartParser::getToken(), handleBlock(), Pol::Bscript::StoredToken::id, Pol::Bscript::Token::id, INFO_PRINT, inFunction, Pol::Bscript::INS_POP_PARAM, Pol::Bscript::INS_POP_PARAM_BYREF, leaveblock(), localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::UserParam::name, Pol::Bscript::UserFunction::name, Pol::Bscript::StoredTokenContainer::next(), Pol::Bscript::UserFunction::parameters, Pol::Bscript::UserParam::pass_by_reference, patchoffset(), Pol::Bscript::UserFunction::position, program, readFunctionDeclaration(), Pol::Bscript::RSV_BEGIN, Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_RETURN, Pol::Bscript::TOK_STRING, Pol::Bscript::TOK_USERFUNC, Pol::Bscript::TYP_OPERAND, Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_RESERVED, Pol::Bscript::TYP_USERFUNC, Pol::Bscript::UserParam::unused, and userFunctions.
| int Pol::Bscript::Compiler::handleGotoGosub | ( | CompilerContext & | ctx, |
| unsigned | save_id | ||
| ) |
| int Pol::Bscript::Compiler::handleIf | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 2562 of file compiler.cpp.
References Pol::Bscript::StoredTokenContainer::atPut1(), getExprInParens(), getStatement(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), Pol::Bscript::Parser::peekToken(), program, Pol::Bscript::Parser::quiet, Pol::Bscript::RSV_ELSE, Pol::Bscript::RSV_GOTO, Pol::Bscript::RSV_JMPIFFALSE, Pol::Bscript::RSV_THEN, and Pol::Bscript::TYP_RESERVED.
| int Pol::Bscript::Compiler::handleInclude | ( | CompilerContext & | ctx | ) |
Definition at line 3531 of file compiler.cpp.
References Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, includeModule(), INFO_PRINT, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_SEMICOLON, Pol::Bscript::TOK_STRING, and Pol::Bscript::Token::tokval().
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleProgram | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 4517 of file compiler.cpp.
References curLine, delete_these_arrays, Pol::Bscript::SmartParser::getToken(), haveProgram, Pol::Bscript::Token::id, INFO_PRINT, program, program_ctx, program_source, Pol::Bscript::RSV_ENDPROGRAM, Pol::Bscript::CompilerContext::s, and Pol::Bscript::CompilerContext::s_begin.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleProgram2 | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 4554 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::CanNotBeLabelled, eatToken(), emitFileLine(), enterblock(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::INS_GET_ARG, leaveblock(), localscope, Pol::Bscript::Mod_Basic, nProgramArgs, Pol::Bscript::Parser::peekToken(), program, readblock(), Pol::Bscript::RSV_ENDPROGRAM, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_RPAREN, Pol::Bscript::TOK_UNUSED, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_OPERATOR, and Pol::Bscript::Scope::varexists().
Referenced by compile().
| int Pol::Bscript::Compiler::handleRepeatUntil | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 1913 of file compiler.cpp.
References Pol::Bscript::CanBeLabelled, emit_leaveblock(), enterblock(), Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, getExpr(), INFO_PRINT, localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchblock_breaks(), patchblock_continues(), Pol::Bscript::Scope::popblock(), program, Pol::Bscript::Parser::quiet, readblock(), Pol::Bscript::RSV_JMPIFFALSE, Pol::Bscript::RSV_UNTIL, and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleReturn | ( | CompilerContext & | ctx | ) |
Definition at line 2271 of file compiler.cpp.
References Pol::Bscript::CTRL_PROGEND, Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, getExpr2(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, inFunction, Pol::Bscript::Mod_Basic, Pol::Bscript::Parser::peekToken(), program, Pol::Bscript::RSV_RETURN, Pol::Bscript::TOK_SEMICOLON, Pol::Bscript::TOK_STRING, Pol::Bscript::TYP_CONTROL, Pol::Bscript::TYP_OPERAND, and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleSwitch | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
Definition at line 1951 of file compiler.cpp.
References Pol::Bscript::BreakOk, Pol::Bscript::CanBeLabelled, Pol::Bscript::CASE_TYPE_DEFAULT, Pol::Bscript::CASE_TYPE_LONG, Pol::Bscript::compilercfg, Pol::Bscript::ContinueNotOk, Pol::Bscript::CTRL_LABEL, curLine, Pol::Bscript::CompilerConfig::DisplayWarnings, Pol::Testing::dummy(), eatToken(), emit_leaveblock(), enterblock(), Pol::Bscript::CompilerConfig::ErrorOnWarning, getExprInParens(), getStatement(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::INS_CASEJMP, localscope, Pol::Bscript::Token::lval, Pol::Bscript::Mod_Basic, Pol::Bscript::StoredTokenContainer::next(), patchblock_breaks(), patchoffset(), Pol::Bscript::Parser::peekToken(), Pol::Bscript::Scope::popblock(), program, Pol::Bscript::RSV_COLON, Pol::Bscript::RSV_ENDSWITCH, Pol::Bscript::RSV_GOTO, Pol::Bscript::CompilerContext::s, substitute_constant(), Pol::Bscript::TOK_LONG, Pol::Bscript::TOK_STRING, Pol::Bscript::Token::tokval(), and Pol::Bscript::TYP_RESERVED.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleUse | ( | CompilerContext & | ctx | ) |
Definition at line 3367 of file compiler.cpp.
References Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_SEMICOLON, Pol::Bscript::Token::tokval(), and useModule().
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleVarDeclare | ( | CompilerContext & | ctx, |
| unsigned | save_id | ||
| ) |
Definition at line 2933 of file compiler.cpp.
References Pol::Bscript::Scope::addvar(), Pol::Bscript::compilercfg, constants, Pol::Bscript::Variable::ctx, Pol::Bscript::CompilerConfig::DisplayWarnings, Pol::Bscript::CompilerConfig::ErrorOnWarning, Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_SEMICOLON_TERM_ALLOWED, getExpr(), Pol::Bscript::SmartParser::getToken(), globalexists(), globals_, Pol::Bscript::Token::id, INFO_PRINT, inGlobalScope(), Pol::Bscript::INS_DECLARE_ARRAY, localscope, Pol::Bscript::Mod_Basic, Pol::Bscript::Variable::name, Pol::Bscript::Scope::numVariables(), Pol::Bscript::Scope::numVarsInBlock(), program, Pol::Bscript::RSV_GLOBAL, Pol::Bscript::RSV_LOCAL, Pol::Bscript::TOK_ARRAY, Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_CONSUMER, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_SEMICOLON, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_RESERVED, Pol::Bscript::TYP_UNARY_OPERATOR, and Pol::Bscript::Variable::used.
Referenced by _getStatement().
| int Pol::Bscript::Compiler::handleWhile | ( | CompilerContext & | ctx, |
| int | level | ||
| ) |
| int Pol::Bscript::Compiler::includeModule | ( | const std::string & | modulename | ) |
Definition at line 3405 of file compiler.cpp.
References compileContext(), Pol::Bscript::compilercfg, current_file_path, Pol::Plib::Package::dir(), Pol::Clib::FileExists(), Pol::Clib::FullPath(), getFileContents(), Pol::Bscript::getpathof(), included, Pol::Bscript::CompilerConfig::IncludeDirectory, INFO_PRINT, Pol::Plib::pkgdef_split(), Pol::Bscript::CompilerConfig::PolScriptRoot, program, referencedPathnames, and verbosity_level_.
Referenced by handleInclude().
|
inlineprivate |
Definition at line 177 of file compiler.h.
References Pol::Bscript::Scope::inblock().
Referenced by _getStatement(), and handleVarDeclare().
|
private |
Definition at line 1757 of file compiler.cpp.
References addToken(), and Pol::Bscript::Expression::tokens.
Referenced by getExpr(), handleBracketedFor_c(), and handleFor_c().
| bool Pol::Bscript::Compiler::inner_read_function_declarations | ( | const CompilerContext & | ctx | ) |
Definition at line 5120 of file compiler.cpp.
References forward_read_function(), Pol::Bscript::SmartParser::getToken(), handleConstDeclare(), handleEnumDeclare(), Pol::Bscript::Token::id, INFO_PRINT, read_function_declarations_in_included_file(), readCurLine(), Pol::Bscript::RSV_CONST, Pol::Bscript::RSV_ENUM, Pol::Bscript::RSV_EXPORTED, Pol::Bscript::RSV_FUNCTION, Pol::Bscript::RSV_INCLUDE_FILE, Pol::Bscript::RSV_USE_MODULE, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_STRING, Pol::Bscript::Token::tokval(), and useModule().
Referenced by read_function_declarations(), and read_function_declarations_in_included_file().
|
private |
Definition at line 3564 of file compiler.cpp.
References Pol::Bscript::Scope::blockdescs_, Pol::Bscript::BlockDesc::break_ok, Pol::Bscript::BlockDesc::break_tokens, Pol::Bscript::CTRL_LEAVE_BLOCK, INFO_PRINT, Pol::Bscript::BlockDesc::label, localscope, Pol::Bscript::Mod_Basic, program, Pol::Bscript::RSV_GOTO, Pol::Bscript::TYP_CONTROL, Pol::Bscript::TYP_RESERVED, and Pol::Bscript::BlockDesc::varcount.
Referenced by handleBreak(), and handleFor_c().
|
virtual |
Implements Pol::Bscript::SmartParser.
Definition at line 923 of file compiler.cpp.
References Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Token::lval, Pol::Bscript::Token::module, program, Pol::Bscript::TOK_FUNC, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_FUNC, Pol::Bscript::Token::type, and Pol::Bscript::Token::userfunc.
|
virtual |
Reimplemented from Pol::Bscript::SmartParser.
Definition at line 899 of file compiler.cpp.
References Pol::Bscript::compilercfg, curLine, Pol::Bscript::CompilerConfig::ErrorOnWarning, Pol::Bscript::Token::id, inExpr, INFO_PRINT, Pol::Bscript::TOK_ASSIGN, and verbosity_level_.
|
virtual |
Reimplemented from Pol::Bscript::SmartParser.
Definition at line 995 of file compiler.cpp.
References Pol::Bscript::Token::id, Pol::Bscript::Mod_Basic, Pol::Bscript::Token::module, passert, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_USERFUNC, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_USERFUNC, Pol::Bscript::Token::type, Pol::Bscript::Token::userfunc, and userFunctions.
|
private |
Definition at line 831 of file compiler.cpp.
Referenced by handleBlock(), handleBracketedFor_basic(), handleBracketedFor_c(), handleBracketedFunction(), handleBracketedIf(), handleFor_c(), handleForEach(), handleFunction(), and handleProgram2().
| void Pol::Bscript::Compiler::patch_callers | ( | UserFunction & | uf | ) |
Definition at line 5208 of file compiler.cpp.
References Pol::Bscript::UserFunction::forward_callers, patchoffset(), and Pol::Bscript::UserFunction::position.
Referenced by emit_functions().
|
private |
Definition at line 802 of file compiler.cpp.
References Pol::Bscript::BlockDesc::break_tokens.
Referenced by handleBracketedFor_basic(), handleBracketedWhile(), handleDoClause(), handleForEach(), handleRepeatUntil(), and handleSwitch().
|
private |
Definition at line 813 of file compiler.cpp.
References Pol::Bscript::BlockDesc::continue_tokens.
Referenced by handleBracketedFor_basic(), handleBracketedWhile(), handleDoClause(), handleForEach(), and handleRepeatUntil().
| void Pol::Bscript::Compiler::patchoffset | ( | unsigned | instruc, |
| unsigned | newoffset | ||
| ) |
Definition at line 4809 of file compiler.cpp.
References Pol::Bscript::StoredToken::offset, and program.
Referenced by handleBracketedFor_basic(), handleBracketedFor_c(), handleBracketedFunction(), handleFor_c(), handleForEach(), handleFunction(), handleSwitch(), and patch_callers().
| bool Pol::Bscript::Compiler::read_function_declarations | ( | const CompilerContext & | ctx | ) |
Definition at line 5187 of file compiler.cpp.
References constants, included, inner_read_function_declarations(), and program.
Referenced by compileFile().
| bool Pol::Bscript::Compiler::read_function_declarations_in_included_file | ( | const char * | modulename | ) |
Definition at line 4992 of file compiler.cpp.
References Pol::Bscript::compilercfg, current_file_path, Pol::Plib::Package::dir(), Pol::Clib::FileExists(), Pol::Clib::FullPath(), getFileContents(), Pol::Bscript::getpathof(), included, Pol::Bscript::CompilerConfig::IncludeDirectory, INFO_PRINT, inner_read_function_declarations(), Pol::Plib::pkgdef_split(), Pol::Bscript::CompilerConfig::PolScriptRoot, program, and verbosity_level_.
Referenced by inner_read_function_declarations().
|
private |
Definition at line 2851 of file compiler.cpp.
References getStatement(), Pol::Bscript::SmartParser::getToken(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::Mod_Basic, Pol::Bscript::Parser::peekToken(), Pol::Bscript::CompilerContext::s, and Pol::Bscript::TYP_RESERVED.
Referenced by handleBracketedFor_basic(), handleBracketedFor_c(), handleBracketedFunction(), handleBracketedFunction3(), handleBracketedWhile(), handleDoClause(), handleForEach(), handleProgram2(), and handleRepeatUntil().
| void Pol::Bscript::Compiler::readCurLine | ( | CompilerContext & | ctx | ) |
Definition at line 5104 of file compiler.cpp.
References curLine, Pol::Bscript::CompilerContext::s, Pol::Bscript::CompilerContext::skipcomments(), Pol::Bscript::CompilerContext::skipws(), and Pol::Clib::stracpy().
Referenced by _getStatement(), handleBracketedIf(), and inner_read_function_declarations().
|
private |
Definition at line 1730 of file compiler.cpp.
References Pol::Bscript::Expression::CA, convert_variables(), Pol::Bscript::EXPR_FLAG_CONSUME_RESULT, Pol::Bscript::SmartParser::IIP(), Pol::Bscript::Expression::optimize(), Pol::Bscript::Parser::reinit(), substitute_constants(), Pol::Bscript::TOK_CONSUMER, Pol::Bscript::Expression::tokens, Pol::Bscript::TYP_UNARY_OPERATOR, and validate().
Referenced by getArrayElements(), getDictionaryMembers(), getExpr(), getMethodArguments(), getNewArrayElements(), getStructMembers(), handleBracketedFor_c(), handleConstDeclare(), handleEnumDeclare(), handleFor_c(), and readFunctionDeclaration().
| int Pol::Bscript::Compiler::readFunctionDeclaration | ( | CompilerContext & | ctx, |
| UserFunction & | userfunc | ||
| ) |
Definition at line 2350 of file compiler.cpp.
References Pol::Bscript::UserFunction::ctx, curLine, Pol::Bscript::UserParam::dflt_value, Pol::Bscript::EXPR_FLAG_COMMA_TERM_ALLOWED, Pol::Bscript::EXPR_FLAG_RIGHTPAREN_TERM_ALLOWED, Pol::Bscript::SmartParser::getToken(), Pol::Bscript::UserParam::have_default, Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::UserParam::name, Pol::Bscript::UserFunction::name, Pol::Bscript::UserFunction::parameters, Pol::Bscript::UserParam::pass_by_reference, Pol::Bscript::Parser::peekToken(), readexpr(), Pol::Bscript::TOK_ASSIGN, Pol::Bscript::TOK_COMMA, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_FUNC, Pol::Bscript::TOK_IDENT, Pol::Bscript::TOK_LPAREN, Pol::Bscript::TOK_REFTO, Pol::Bscript::TOK_RPAREN, Pol::Bscript::TOK_UNUSED, Pol::Bscript::Expression::tokens, Pol::Bscript::Token::tokval(), Pol::Bscript::TYP_OPERAND, Pol::Bscript::Token::type, and Pol::Bscript::UserParam::unused.
Referenced by forward_read_function(), handleBracketedFunction(), handleFunction(), and useModule().
|
private |
Definition at line 5250 of file compiler.cpp.
References Pol::Bscript::EScriptProgram::dbg_filenum, Pol::Bscript::EScriptProgram::dbg_ins_blocks, Pol::Bscript::EScriptProgram::dbg_ins_statementbegin, Pol::Bscript::EScriptProgram::dbg_linenum, Pol::Bscript::EScriptProgram::fileline, Pol::Bscript::EScriptProgramCheckpoint::fileline_count, Pol::Bscript::UserFunction::forward_callers, Pol::Bscript::EScriptProgramCheckpoint::module_count, Pol::Bscript::EScriptProgram::modules, Pol::Bscript::StoredTokenContainer::setcount(), Pol::Bscript::SymbolContainer::setlength(), Pol::Bscript::EScriptProgram::sourcelines, Pol::Bscript::EScriptProgramCheckpoint::sourcelines_count, Pol::Bscript::EScriptProgram::statementbegin, Pol::Bscript::EScriptProgram::symbols, Pol::Bscript::EScriptProgramCheckpoint::symbols_length, Pol::Bscript::EScriptProgram::tokens, Pol::Bscript::EScriptProgramCheckpoint::tokens_count, and userFunctions.
Referenced by handleBracketedIf().
| void Pol::Bscript::Compiler::savesourceline | ( | ) |
Definition at line 3981 of file compiler.cpp.
References curLine, and program.
Referenced by _getStatement(), and handleBracketedIf().
|
inlinestatic |
Definition at line 125 of file compiler.h.
|
inline |
Definition at line 209 of file compiler.h.
References POL_OVERRIDE.
Referenced by Pol::ECompile::compile_inc().
|
inlinestatic |
Definition at line 126 of file compiler.h.
Referenced by Pol::ECompile::readargs().
|
private |
Definition at line 1703 of file compiler.cpp.
References constants, Pol::Bscript::Token::dbg_filenum, Pol::Bscript::Token::dbg_linenum, and Pol::Bscript::Token::tokval().
Referenced by handleSwitch(), and substitute_constants().
|
private |
Definition at line 1721 of file compiler.cpp.
References substitute_constant(), Pol::Bscript::TOK_IDENT, and Pol::Bscript::Expression::tokens.
Referenced by readexpr().
| int Pol::Bscript::Compiler::useModule | ( | const char * | modulename | ) |
Definition at line 3243 of file compiler.cpp.
References addModule(), Pol::Bscript::compilercfg, current_file_path, Pol::Clib::FileExists(), getFileContents(), Pol::Bscript::getpathof(), Pol::Bscript::SmartParser::getToken(), handleConstDeclare(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::CompilerConfig::ModuleDirectory, Pol::Bscript::UserFunction::name, Pol::Bscript::UserFunction::parameters, Pol::Bscript::Parser::peekToken(), program, readFunctionDeclaration(), Pol::Bscript::RSV_CONST, Pol::Bscript::TOK_SEMICOLON, and verbosity_level_.
Referenced by compile(), handleUse(), and inner_read_function_declarations().
|
private |
Definition at line 1642 of file compiler.cpp.
References Pol::Bscript::compilercfg, Pol::Bscript::Token::deprecated, Pol::Bscript::CompilerConfig::DisplayWarnings, Pol::Bscript::CompilerConfig::ErrorOnWarning, Pol::Bscript::CompilerContext::filename, Pol::Bscript::Expression::get_num_tokens(), Pol::Bscript::Token::id, INFO_PRINT, Pol::Bscript::CompilerContext::line, Pol::Bscript::TOK_EQUAL1, Pol::Bscript::TOK_IDENT, Pol::Bscript::Expression::tokens, Pol::Bscript::Token::tokval(), Pol::Clib::tostring(), Pol::Bscript::TYP_OPERATOR, Pol::Bscript::TYP_UNARY_OPERATOR, Pol::Bscript::Token::type, and varexists().
Referenced by readexpr().
|
private |
Definition at line 887 of file compiler.cpp.
References globalexists(), localscope, and Pol::Bscript::Scope::varexists().
Referenced by validate().
| int Pol::Bscript::Compiler::write | ( | const char * | fname | ) |
Definition at line 5425 of file compiler.cpp.
References program.
Referenced by Pol::ECompile::compile_file().
| int Pol::Bscript::Compiler::write_dbg | ( | const char * | fname, |
| bool | generate_txtfile | ||
| ) |
Definition at line 5430 of file compiler.cpp.
References program.
Referenced by Pol::ECompile::compile_file().
| void Pol::Bscript::Compiler::writeIncludedFilenames | ( | const char * | fname | ) | const |
Definition at line 5435 of file compiler.cpp.
References referencedPathnames.
Referenced by Pol::ECompile::compile_file().
|
static |
Definition at line 123 of file compiler.h.
|
private |
Definition at line 138 of file compiler.h.
Referenced by emit_functions().
|
private |
Definition at line 158 of file compiler.h.
Referenced by handleConstDeclare(), handleEnumDeclare(), handleVarDeclare(), read_function_declarations(), and substitute_constant().
|
private |
Part of the content of the line being read, only for info/debug output, limited to 80 chars
Definition at line 134 of file compiler.h.
Referenced by _getStatement(), compileContext(), forward_read_function(), handleDeclare(), handleProgram(), handleSwitch(), isLegal(), readCurLine(), readFunctionDeclaration(), and savesourceline().
|
private |
Definition at line 129 of file compiler.h.
Referenced by compileFile(), includeModule(), read_function_declarations_in_included_file(), and useModule().
|
private |
Definition at line 132 of file compiler.h.
Referenced by _getStatement(), and compile().
|
private |
Definition at line 304 of file compiler.h.
Referenced by forward_read_function(), handleProgram(), and ~Compiler().
|
private |
Definition at line 168 of file compiler.h.
Referenced by globalexists(), and handleVarDeclare().
|
private |
Definition at line 137 of file compiler.h.
Referenced by compile(), and handleProgram().
|
private |
Definition at line 146 of file compiler.h.
Referenced by includeModule(), read_function_declarations(), and read_function_declarations_in_included_file().
|
private |
Definition at line 135 of file compiler.h.
Referenced by getExpr2(), and isLegal().
|
private |
Definition at line 136 of file compiler.h.
Referenced by handleBracketedFunction(), handleBracketedFunction2(), handleBracketedFunction3(), handleFunction(), and handleReturn().
|
private |
Definition at line 185 of file compiler.h.
Referenced by _getStatement().
|
private |
Definition at line 173 of file compiler.h.
Referenced by convert_variables(), handleBracketedFor_basic(), handleBracketedFunction(), handleBracketedFunction3(), handleBracketedWhile(), handleContinue(), handleDoClause(), handleForEach(), handleFunction(), handleProgram2(), handleRepeatUntil(), handleSwitch(), handleVarDeclare(), insertBreak(), and varexists().
|
private |
Definition at line 140 of file compiler.h.
Referenced by handleProgram2().
|
private |
Definition at line 150 of file compiler.h.
Referenced by _getStatement(), addModule(), addToken(), compile(), compileFile(), dump(), emitFileLine(), emitFileLineIfFileChanged(), getStatement(), handleBracketedFor_basic(), handleBracketedFor_c(), handleBracketedFunction(), handleBracketedFunction3(), handleBracketedIf(), handleBracketedWhile(), handleContinue(), handleDoClause(), handleExit(), handleFor_c(), handleForEach(), handleFunction(), handleIf(), handleProgram(), handleProgram2(), handleRepeatUntil(), handleReturn(), handleSwitch(), handleVarDeclare(), includeModule(), insertBreak(), isFunc(), patchoffset(), read_function_declarations(), read_function_declarations_in_included_file(), savesourceline(), useModule(), write(), and write_dbg().
|
private |
Definition at line 142 of file compiler.h.
Referenced by compile(), and handleProgram().
|
private |
Definition at line 143 of file compiler.h.
Referenced by handleProgram().
|
private |
Definition at line 139 of file compiler.h.
|
private |
Definition at line 148 of file compiler.h.
Referenced by compileFile(), includeModule(), and writeIncludedFilenames().
|
private |
Definition at line 152 of file compiler.h.
Referenced by emit_functions(), forward_read_function(), handleBracketedFunction(), handleFunction(), isUserFunc(), and rollback().
|
static |
Definition at line 124 of file compiler.h.
Referenced by compileFile(), handleBracketedFor_basic(), includeModule(), isLegal(), read_function_declarations_in_included_file(), and useModule().