8 #ifndef BSCRIPT_EPROG_H 9 #define BSCRIPT_EPROG_H 16 #include "../clib/boostutils.h" 17 #include "../clib/rawtypes.h" 18 #include "../clib/refptr.h" 31 class CompilerContext;
32 class FunctionalityModule;
81 void addToken(
const Token& token );
83 void append(
const StoredToken& stoken,
unsigned* posn );
92 std::vector<FunctionalityModule*>
modules;
96 void dump( std::ostream& os );
97 void dump_casejmp( std::ostream& os,
const Token& token );
98 int write(
const char* fname );
99 int read(
const char* fname );
101 int read_progdef_hdr( FILE* fp );
102 int read_module( FILE* fp );
103 int read_globalvarnames( FILE* fp );
105 int _readToken(
Token& token,
unsigned position )
const;
106 int create_instructions();
108 int write_dbg(
const char* fname,
bool gen_txt );
144 void setstatementbegin();
146 void enterfunction();
147 void leavefunction();
150 void addlocalvar(
const std::string& localvarname );
151 void addfunction( std::string name,
unsigned firstPC,
unsigned lastPC );
152 void update_dbg_pos(
const Token& tkn );
153 void add_ins_dbg_info();
155 int add_dbg_filename(
const std::string& filename );
156 std::string dbg_get_instruction(
size_t atPC )
const;
158 unsigned varcount(
unsigned block );
159 unsigned parentvariables(
unsigned parent );
160 size_t sizeEstimate()
const;
172 void commit(
const EScriptProgram& prog );
173 void rollback( EScriptProgram& prog )
const;
Instruction(ExecInstrFunc f)
std::vector< unsigned > dbg_ins_blocks
std::vector< bool > dbg_ins_statementbegin
std::vector< EPExportedFunction > exported_functions
boost_utils::script_name_flystring name
void(Executor::* ExecInstrFunc)(const Instruction &)
std::vector< EPDbgFunction > dbg_functions
std::vector< std::string > globalvarnames
std::vector< std::string > dbg_filenames
std::vector< std::string > fileline
std::vector< std::string > sourcelines
std::vector< Instruction > instr
std::vector< EPDbgBlock > blocks
boost::flyweight< std::string, boost::flyweights::tag< script_name_tag >, FLYWEIGHT_HASH_FACTORY > script_name_flystring
std::vector< std::string > function_decls
StoredTokenContainer tokens
Plib::Package const * pkg
std::vector< unsigned > dbg_linenum
std::vector< unsigned > dbg_filenum
std::vector< std::string > localvarnames
bool commit(const std::string &basename)
std::vector< FunctionalityModule * > modules
unsigned sourcelines_count