23 #if !defined (octave_parse_h)
24 #define octave_parse_h 1
77 class tree_statement_listtree_statement;
106 const std::string& dir_name = std::string (),
107 const std::string& dispatch_type = std::string (),
108 const std::string& package_name = std::string (),
109 const std::string& fcn_name = std::string (),
110 bool autoload =
false);
114 const std::string&
context = std::string (),
115 bool verbose =
false,
bool require_file =
true,
116 const std::string& warn_for = std::string ());
119 feval (
const std::string& name,
132 eval_string (
const std::string&,
bool silent,
int& parse_status,
int hargout);
135 eval_string (
const std::string&,
bool silent,
int& parse_status);
149 : endfunction_found (false),
150 autoloading (false), fcn_file_from_relative_lookup (false),
151 parsing_subfunctions (false), max_fcn_depth (0),
152 curr_fcn_depth (0), primary_fcn_scope (-1),
153 curr_class_name (), curr_package_name (), function_scopes (),
154 primary_fcn_ptr (0), subfunction_names (), classdef_object (0),
155 stmt_list (0),
lexer (lxr)
299 recover_from_parsing_function (
void);
302 make_superclass_ref (
const std::string& method_nm,
303 const std::string& class_nm);
306 make_meta_class_query (
const std::string& class_nm);
315 make_classdef_properties_block (
token *tok_val,
321 make_classdef_methods_block (
token *tok_val,
327 make_classdef_events_block (
token *tok_val,
333 make_classdef_enum_block (
token *tok_val,
400 void bison_error (
const char *s);
519 int run (
const std::string&
input,
bool eof);
std::list< std::string > subfunction_names
octave_parser(const std::string &eval_string)
std::string curr_package_name
bool reading_startup_message_printed
tree_switch_command & operator=(const tree_switch_command &)
std::string curr_class_name
octave_base_lexer * LEXER
OCTINTERP_API octave_value_list feval(const std::string &name, const octave_value_list &args=octave_value_list(), int nargout=0)
octave_parser(FILE *file)
OCTINTERP_API octave_function * load_fcn_from_file(const std::string &file_name, const std::string &dir_name=std::string(), const std::string &dispatch_type=std::string(), const std::string &package_name=std::string(), const std::string &fcn_name=std::string(), bool autoload=false)
OCTINTERP_API std::string get_help_from_file(const std::string &nm, bool &symbol_found, std::string &file)
tree_classdef * classdef_object
OCTINTERP_API string_vector reverse_lookup_autoload(const std::string &nm)
tree_switch_case_list * list
octave_parser(octave_lexer &lxr)
static llvm::LLVMContext & context
OCTINTERP_API std::string lookup_autoload(const std::string &nm)
OCTINTERP_API string_vector autoloaded_functions(void)
octave_function * primary_fcn_ptr
OCTINTERP_API octave_value_list eval_string(const std::string &, bool silent, int &parse_status, int hargout)
bool parsing_subfunctions
octave_base_parser(octave_base_lexer &lxr)
octave_base_lexer & lexer
symbol_table::scope_id primary_fcn_scope
std::vector< symbol_table::scope_id > function_scopes
static octave_value make_fcn_handle(octave_builtin::fcn ff, const std::string &nm)
OCTINTERP_API void source_file(const std::string &file_name, const std::string &context=std::string(), bool verbose=false, bool require_file=true, const std::string &warn_for=std::string())
tree_statement_list * stmt_list
bool fcn_file_from_relative_lookup
static int input(yyscan_t yyscanner)
OCTINTERP_API void cleanup_statement_list(tree_statement_list **lst)