GNU Octave 10.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
base_parser Class Referenceabstract

#include "parse.h"

Inheritance diagram for base_parser:
parser push_parser

Public Member Functions

 base_parser (base_lexer &lxr)
 
virtual ~base_parser ()
 
tree_args_block_validation_listappend_args_validation_list (tree_args_block_validation_list *list, tree_arg_validation *arg_validation)
 
tree_argument_listappend_argument_list (tree_argument_list *list, token *sep_tok, tree_expression *expr)
 
tree_argument_listappend_argument_list (tree_argument_list *list, tree_expression *expr)
 
tree_cellappend_cell_row (tree_cell *cell, token *sep_tok, tree_argument_list *row)
 
tree_classdef_attribute_listappend_classdef_attribute (tree_classdef_attribute_list *list, token *sep_tok, tree_classdef_attribute *elt)
 
tree_classdef_enum_listappend_classdef_enum (tree_classdef_enum_list *list, tree_classdef_enum *elt)
 
tree_classdef_bodyappend_classdef_enum_block (tree_classdef_body *body, tree_classdef_enum_block *block)
 
tree_classdef_event_listappend_classdef_event (tree_classdef_event_list *list, tree_classdef_event *elt)
 
tree_classdef_bodyappend_classdef_events_block (tree_classdef_body *body, tree_classdef_events_block *block)
 
tree_classdef_method_listappend_classdef_method (tree_classdef_method_list *list, tree_function_def *fcn_def)
 
tree_classdef_bodyappend_classdef_methods_block (tree_classdef_body *body, tree_classdef_methods_block *block)
 
tree_classdef_bodyappend_classdef_properties_block (tree_classdef_body *body, tree_classdef_properties_block *block)
 
tree_classdef_property_listappend_classdef_property (tree_classdef_property_list *list, tree_classdef_property *elt)
 
tree_classdef_superclass_listappend_classdef_superclass (tree_classdef_superclass_list *list, token *and_tok, tree_classdef_superclass *elt)
 
tree_decl_init_listappend_decl_init_list (tree_decl_init_list *list, tree_decl_elt *elt)
 
tree_statement_listappend_function_body (tree_statement_list *body, tree_statement_list *list)
 
tree_statement_listappend_function_def_list (tree_statement_list *list, separator_list *sep_list, tree_function_def *fcn_def)
 
tree_if_command_listappend_if_clause (tree_if_command_list *list, tree_if_clause *clause)
 
tree_matrixappend_matrix_row (tree_matrix *matrix, token *sep_tok, tree_argument_list *row)
 
tree_parameter_listappend_parameter_list (tree_parameter_list *list, token *sep_tok, tree_decl_elt *t)
 
tree_parameter_listappend_parameter_list (tree_parameter_list *list, token *sep_tok, tree_identifier *id)
 
tree_statement_listappend_statement_list (tree_statement_list *list, int sep_char, tree_statement *stmt, bool warn_missing_semi)
 
tree_statement_listappend_statement_list (tree_statement_list *list, separator_list *sep_list, tree_statement *stmt, bool warn_missing_semi)
 
tree_statement_listappend_statement_list (tree_statement_list *list, token *sep_tok, tree_statement *stmt, bool warn_missing_semi)
 
tree_switch_case_listappend_switch_case (tree_switch_case_list *list, tree_switch_case *elt)
 
bool at_end_of_input () const
 
void bison_error (const parse_exception &pe)
 
void bison_error (const std::list< parse_exception > &pe)
 
void bison_error (const std::string &s)
 
void bison_error (const std::string &s, const filepos &pos)
 
std::shared_ptr< tree_classdefclassdef_object () const
 
void classdef_object (const std::shared_ptr< tree_classdef > &obj)
 
int curr_fcn_depth () const
 
void disallow_command_syntax ()
 
void end_token_error (token *tok, token::end_tok_type expected)
 
bool end_token_ok (token *tok, token::end_tok_type expected)
 
bool endfunction_found () const
 
void endfunction_found (bool flag)
 
tree_expressionfinish_array_list (token *open_delim, tree_array_list *a, token *close_delim)
 
tree_expressionfinish_cell (token *open_delim, tree_cell *c, token *close_delim)
 
tree_function_deffinish_classdef_external_method (octave_user_function *fcn, tree_parameter_list *ret_list=nullptr, token *eq_tok=nullptr)
 
bool finish_classdef_file (tree_classdef *cls, tree_statement_list *local_fcns, token *eof_tok)
 
tree_function_deffinish_function (token *fcn_tok, tree_parameter_list *ret_list, token *eq_tok, octave_user_function *fcn)
 
tree_if_commandfinish_if_command (tree_if_command_list *list, tree_if_clause *else_clause, token *end_tok)
 
bool finish_input (tree_statement_list *lst, bool at_eof=false)
 
tree_expressionfinish_matrix (token *open_delim, tree_matrix *m, token *close_delim)
 
tree_switch_commandfinish_switch_command (token *switch_tok, tree_expression *expr, tree_switch_case_list *list, token *end_tok)
 
octave_user_functionfrob_function (tree_identifier *id, octave_user_function *fcn)
 
base_lexerget_lexer () const
 
tree_anon_fcn_handlemake_anon_fcn_handle (token *at_tok, tree_parameter_list *param_list, tree_expression *expr)
 
tree_arg_size_specmake_arg_size_spec (tree_argument_list *size_args)
 
tree_arg_validationmake_arg_validation (tree_arg_size_spec *size_spec, tree_identifier *class_name, tree_arg_validation_fcns *validation_fcns, token *eq_tok=nullptr, tree_expression *default_value=nullptr)
 
tree_arg_validation_fcnsmake_arg_validation_fcns (tree_argument_list *fcn_args)
 
tree_args_block_attribute_listmake_args_attribute_list (tree_identifier *attribute_name)
 
tree_args_block_validation_listmake_args_validation_list (tree_arg_validation *arg_validation)
 
tree_argument_listmake_argument_list (tree_expression *expr)
 
tree_arguments_blockmake_arguments_block (token *arguments_tok, tree_args_block_attribute_list *attr_list, tree_args_block_validation_list *validation_list, token *end_tok)
 
tree_expressionmake_assign_op (tree_argument_list *lhs, token *eq_tok, tree_expression *rhs)
 
tree_expressionmake_binary_op (tree_expression *op1, token *op_tok, tree_expression *op2)
 
tree_black_holemake_black_hole (token *tilde)
 
tree_expressionmake_boolean_op (tree_expression *op1, token *op_tok, tree_expression *op2)
 
tree_commandmake_break_command (token *break_tok)
 
tree_cellmake_cell (tree_argument_list *row)
 
tree_classdefmake_classdef (token *tok, tree_classdef_attribute_list *a, tree_identifier *id, tree_classdef_superclass_list *sc, tree_classdef_body *body, token *end_tok)
 
tree_classdef_attributemake_classdef_attribute (tree_identifier *id)
 
tree_classdef_attributemake_classdef_attribute (tree_identifier *id, token *eq_tok, tree_expression *expr)
 
tree_classdef_attribute_listmake_classdef_attribute_list (tree_classdef_attribute *attr)
 
tree_classdef_bodymake_classdef_body (tree_classdef_enum_block *enb)
 
tree_classdef_bodymake_classdef_body (tree_classdef_events_block *evb)
 
tree_classdef_bodymake_classdef_body (tree_classdef_methods_block *mb)
 
tree_classdef_bodymake_classdef_body (tree_classdef_properties_block *pb)
 
tree_classdef_enummake_classdef_enum (tree_identifier *id, token *open_paren, tree_expression *expr, token *close_paren)
 
tree_classdef_enum_blockmake_classdef_enum_block (token *tok, tree_classdef_attribute_list *a, tree_classdef_enum_list *elist, token *end_tok)
 
tree_classdef_enum_listmake_classdef_enum_list (tree_classdef_enum *e)
 
tree_classdef_eventmake_classdef_event (tree_identifier *id)
 
tree_classdef_event_listmake_classdef_event_list (tree_classdef_event *e)
 
tree_classdef_events_blockmake_classdef_events_block (token *tok, tree_classdef_attribute_list *a, tree_classdef_event_list *elist, token *end_tok)
 
tree_classdef_method_listmake_classdef_method_list (tree_function_def *fcn_def)
 
tree_classdef_methods_blockmake_classdef_methods_block (token *tok, tree_classdef_attribute_list *a, tree_classdef_method_list *mlist, token *end_tok)
 
tree_classdef_properties_blockmake_classdef_properties_block (token *tok, tree_classdef_attribute_list *a, tree_classdef_property_list *plist, token *end_tok)
 
tree_classdef_propertymake_classdef_property (tree_identifier *id, tree_arg_validation *av)
 
tree_classdef_property_listmake_classdef_property_list (tree_classdef_property *prop)
 
tree_classdef_superclassmake_classdef_superclass (token *fqident)
 
tree_classdef_superclass_listmake_classdef_superclass_list (token *lt_tok, tree_classdef_superclass *sc)
 
tree_expressionmake_colon_expression (tree_expression *base, token *colon_1_tok, tree_expression *incr, token *colon_2_tok, tree_expression *limit)
 
tree_expressionmake_colon_expression (tree_expression *base, token *colon_tok, tree_expression *limit)
 
tree_constantmake_constant (token *tok)
 
tree_commandmake_continue_command (token *continue_tok)
 
tree_decl_commandmake_decl_command (token *tok, tree_decl_init_list *lst)
 
tree_decl_eltmake_decl_elt (tree_identifier *id, token *eq_op=nullptr, tree_expression *expr=nullptr)
 
tree_decl_init_listmake_decl_init_list (tree_decl_elt *elt)
 
tree_switch_casemake_default_switch_case (token *default_tok, tree_statement_list *list)
 
tree_commandmake_do_until_command (token *do_tok, tree_statement_list *body, token *until_tok, tree_expression *expr)
 
tree_statementmake_end (const std::string &type, bool eof, token *tok)
 
tree_fcn_handlemake_fcn_handle (token *tok)
 
tree_identifiermake_fcn_name (tree_identifier *id)
 
tree_commandmake_for_command (token *for_tok, token *open_paren, tree_argument_list *lhs, token *eq_tok, tree_expression *expr, token *sep_tok, tree_expression *maxproc, token *close_paren, tree_statement_list *body, token *end_tok)
 
tree_function_defmake_function (token *fcn_tok, tree_parameter_list *ret_list, token *eq_tok, tree_identifier *id, tree_parameter_list *param_list, tree_statement_list *body, tree_statement *end_fcn_stmt)
 
tree_statement_listmake_function_def_list (tree_function_def *fcn_def)
 
tree_identifiermake_identifier (token *ident)
 
tree_if_clausemake_if_clause (token *if_tok, separator_list *if_sep_list, tree_expression *expr, tree_statement_list *list)
 
tree_index_expressionmake_index_expression (tree_expression *expr, token *open_paren, tree_argument_list *args, token *close_paren, char type)
 
tree_index_expressionmake_indirect_ref (tree_expression *expr, token *dot_tok, token *open_paren, tree_expression *field, token *close_paren)
 
tree_index_expressionmake_indirect_ref (tree_expression *expr, token *dot_tok, token *struct_elt_tok)
 
tree_matrixmake_matrix (tree_argument_list *row)
 
tree_metaclass_querymake_metaclass_query (token *metaquery)
 
tree_classdef_attributemake_not_classdef_attribute (token *not_tok, tree_identifier *id)
 
tree_parameter_listmake_parameter_list (tree_parameter_list::in_or_out io)
 
tree_parameter_listmake_parameter_list (tree_parameter_list::in_or_out io, tree_decl_elt *t)
 
tree_parameter_listmake_parameter_list (tree_parameter_list::in_or_out io, tree_identifier *id)
 
tree_expressionmake_postfix_op (tree_expression *op1, token *op_tok)
 
tree_expressionmake_prefix_op (token *op_tok, tree_expression *op1)
 
tree_commandmake_return_command (token *return_tok)
 
void make_script (tree_statement_list *cmds, tree_statement *end_script)
 
tree_spmd_commandmake_spmd_command (token *spmd_tok, tree_statement_list *body, token *end_tok)
 
template<typename T >
tree_statementmake_statement (T *arg)
 
tree_statement_listmake_statement_list (tree_statement *stmt)
 
tree_superclass_refmake_superclass_ref (token *superclassref)
 
tree_switch_casemake_switch_case (token *case_tok, tree_expression *expr, tree_statement_list *list)
 
tree_switch_case_listmake_switch_case_list (tree_switch_case *switch_case)
 
tree_commandmake_try_command (token *try_tok, tree_statement_list *body, token *catch_tok, separator_list *catch_sep_list, tree_statement_list *cleanup, token *end_tok)
 
tree_commandmake_unwind_command (token *unwind_tok, tree_statement_list *body, token *cleanup_tok, tree_statement_list *cleanup, token *end_tok)
 
tree_commandmake_while_command (token *while_tok, tree_expression *expr, tree_statement_list *body, token *end_tok)
 
tree_index_expressionmake_word_list_command (tree_expression *expr, tree_argument_list *args)
 
void maybe_convert_to_braindead_shortcircuit (tree_expression *&expr)
 
bool parsing_local_functions () const
 
void parsing_local_functions (bool flag)
 
bool parsing_subfunctions () const
 
void parsing_subfunctions (bool flag)
 
bool push_fcn_symtab ()
 
void recover_from_parsing_function ()
 
void reset ()
 
virtual int run ()=0
 
tree_statement_listset_stmt_print_flag (tree_statement_list *list, const token &sep_tok, bool warn_missing_semi)
 
tree_statement_listset_stmt_print_flag (tree_statement_list *list, int sep_char, bool warn_missing_semi)
 
tree_statement_listset_stmt_print_flag (tree_statement_list *list, separator_list *sep_list, bool warn_missing_semi)
 
octave_user_functionstart_classdef_external_method (tree_identifier *id, tree_parameter_list *pl=nullptr)
 
octave_user_functionstart_function (tree_identifier *id, tree_parameter_list *param_list, tree_statement_list *body, tree_statement *end_function, const std::string &doc_string)
 
tree_if_command_liststart_if_command (tree_if_clause *clause)
 
std::shared_ptr< tree_statement_liststatement_list () const
 
void statement_list (std::shared_ptr< tree_statement_list > &lst)
 
bool validate_array_list (tree_expression *e)
 
tree_argument_listvalidate_matrix_for_assignment (tree_expression *e)
 
bool validate_param_list (tree_parameter_list *lst, tree_parameter_list::in_or_out type)
 
bool validate_primary_fcn ()
 

Protected Attributes

bool m_autoloading
 
std::shared_ptr< tree_classdefm_classdef_object
 
std::string m_curr_class_name
 
int m_curr_fcn_depth
 
std::string m_curr_package_name
 
bool m_endfunction_found
 
bool m_fcn_file_from_relative_lookup
 
parent_scope_info m_function_scopes
 
base_lexerm_lexer
 
int m_max_fcn_depth
 
std::string m_parse_error_msg
 
void * m_parser_state
 
bool m_parsing_local_functions
 
bool m_parsing_subfunctions
 
octave_value m_primary_fcn
 
symbol_scope m_primary_fcn_scope
 
std::shared_ptr< tree_statement_listm_stmt_list
 
std::list< std::string > m_subfunction_names
 

Friends

octave_value parse_fcn_file (interpreter &interp, const std::string &full_file, const std::string &file, const std::string &dir_name, const std::string &dispatch_type, const std::string &package_name, bool require_file, bool force_script, bool autoload, bool relative_lookup)
 

Detailed Description

Definition at line 109 of file parse.h.

Constructor & Destructor Documentation

◆ base_parser()

base_parser::base_parser ( base_lexer lxr)

Definition at line 6444 of file oct-parse.cc.

◆ ~base_parser()

base_parser::~base_parser ( )
virtual

Definition at line 6455 of file oct-parse.cc.

References m_lexer, m_parser_state, yypstate, and yypstate_delete.

Member Function Documentation

◆ append_args_validation_list()

tree_args_block_validation_list * base_parser::append_args_validation_list ( tree_args_block_validation_list list,
tree_arg_validation arg_validation 
)

Definition at line 7967 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_argument_list() [1/2]

tree_argument_list * base_parser::append_argument_list ( tree_argument_list list,
token sep_tok,
tree_expression expr 
)

Definition at line 9066 of file oct-parse.cc.

◆ append_argument_list() [2/2]

tree_argument_list * base_parser::append_argument_list ( tree_argument_list list,
tree_expression expr 
)

Definition at line 9060 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_cell_row()

tree_cell * base_parser::append_cell_row ( tree_cell cell,
token sep_tok,
tree_argument_list row 
)

Definition at line 8903 of file oct-parse.cc.

References make_cell().

Referenced by octave_push_parse().

◆ append_classdef_attribute()

tree_classdef_attribute_list * base_parser::append_classdef_attribute ( tree_classdef_attribute_list list,
token sep_tok,
tree_classdef_attribute elt 
)

Definition at line 8283 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_classdef_enum()

tree_classdef_enum_list * base_parser::append_classdef_enum ( tree_classdef_enum_list list,
tree_classdef_enum elt 
)

Definition at line 8231 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_classdef_enum_block()

tree_classdef_body * base_parser::append_classdef_enum_block ( tree_classdef_body body,
tree_classdef_enum_block block 
)

Definition at line 8331 of file oct-parse.cc.

References tree_classdef_body::append().

Referenced by octave_push_parse().

◆ append_classdef_event()

tree_classdef_event_list * base_parser::append_classdef_event ( tree_classdef_event_list list,
tree_classdef_event elt 
)

Definition at line 8225 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_classdef_events_block()

tree_classdef_body * base_parser::append_classdef_events_block ( tree_classdef_body body,
tree_classdef_events_block block 
)

Definition at line 8325 of file oct-parse.cc.

References tree_classdef_body::append().

Referenced by octave_push_parse().

◆ append_classdef_method()

tree_classdef_method_list * base_parser::append_classdef_method ( tree_classdef_method_list list,
tree_function_def fcn_def 
)

Definition at line 8399 of file oct-parse.cc.

References tree_function_def::function().

Referenced by octave_push_parse().

◆ append_classdef_methods_block()

tree_classdef_body * base_parser::append_classdef_methods_block ( tree_classdef_body body,
tree_classdef_methods_block block 
)

Definition at line 8319 of file oct-parse.cc.

References tree_classdef_body::append().

Referenced by octave_push_parse().

◆ append_classdef_properties_block()

tree_classdef_body * base_parser::append_classdef_properties_block ( tree_classdef_body body,
tree_classdef_properties_block block 
)

Definition at line 8313 of file oct-parse.cc.

References tree_classdef_body::append().

Referenced by octave_push_parse().

◆ append_classdef_property()

tree_classdef_property_list * base_parser::append_classdef_property ( tree_classdef_property_list list,
tree_classdef_property elt 
)

Definition at line 8219 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_classdef_superclass()

tree_classdef_superclass_list * base_parser::append_classdef_superclass ( tree_classdef_superclass_list list,
token and_tok,
tree_classdef_superclass elt 
)

Definition at line 8251 of file oct-parse.cc.

References tree_classdef_superclass::set_separator().

Referenced by octave_push_parse().

◆ append_decl_init_list()

tree_decl_init_list * base_parser::append_decl_init_list ( tree_decl_init_list list,
tree_decl_elt elt 
)

Definition at line 8630 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_function_body()

tree_statement_list * base_parser::append_function_body ( tree_statement_list body,
tree_statement_list list 
)

Definition at line 7910 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_function_def_list()

tree_statement_list * base_parser::append_function_def_list ( tree_statement_list list,
separator_list sep_list,
tree_function_def fcn_def 
)

Definition at line 9042 of file oct-parse.cc.

References make_statement().

Referenced by octave_push_parse().

◆ append_if_clause()

tree_if_command_list * base_parser::append_if_clause ( tree_if_command_list list,
tree_if_clause clause 
)

Definition at line 7381 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_matrix_row()

tree_matrix * base_parser::append_matrix_row ( tree_matrix matrix,
token sep_tok,
tree_argument_list row 
)

Definition at line 8872 of file oct-parse.cc.

References make_matrix().

Referenced by octave_push_parse().

◆ append_parameter_list() [1/2]

tree_parameter_list * base_parser::append_parameter_list ( tree_parameter_list list,
token sep_tok,
tree_decl_elt t 
)

Definition at line 9090 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ append_parameter_list() [2/2]

tree_parameter_list * base_parser::append_parameter_list ( tree_parameter_list list,
token sep_tok,
tree_identifier id 
)

Definition at line 9096 of file oct-parse.cc.

◆ append_statement_list() [1/3]

tree_statement_list * base_parser::append_statement_list ( tree_statement_list list,
int  sep_char,
tree_statement stmt,
bool  warn_missing_semi 
)

Definition at line 9001 of file oct-parse.cc.

References set_stmt_print_flag().

Referenced by octave_push_parse().

◆ append_statement_list() [2/3]

tree_statement_list * base_parser::append_statement_list ( tree_statement_list list,
separator_list sep_list,
tree_statement stmt,
bool  warn_missing_semi 
)

Definition at line 9022 of file oct-parse.cc.

References set_stmt_print_flag().

◆ append_statement_list() [3/3]

tree_statement_list * base_parser::append_statement_list ( tree_statement_list list,
token sep_tok,
tree_statement stmt,
bool  warn_missing_semi 
)

Definition at line 9010 of file oct-parse.cc.

References set_stmt_print_flag().

◆ append_switch_case()

tree_switch_case_list * base_parser::append_switch_case ( tree_switch_case_list list,
tree_switch_case elt 
)

Definition at line 7429 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ at_end_of_input()

bool base_parser::at_end_of_input ( ) const
inline

Definition at line 170 of file parse.h.

Referenced by tree_evaluator::eval_string().

◆ bison_error() [1/4]

void base_parser::bison_error ( const parse_exception &  pe)

Definition at line 9163 of file oct-parse.cc.

References bison_error().

◆ bison_error() [2/4]

void base_parser::bison_error ( const std::list< parse_exception > &  pe)

Definition at line 9169 of file oct-parse.cc.

References bison_error().

◆ bison_error() [3/4]

◆ bison_error() [4/4]

◆ classdef_object() [1/2]

std::shared_ptr< tree_classdef > base_parser::classdef_object ( ) const
inline

Definition at line 179 of file parse.h.

◆ classdef_object() [2/2]

void base_parser::classdef_object ( const std::shared_ptr< tree_classdef > &  obj)
inline

Definition at line 174 of file parse.h.

◆ curr_fcn_depth()

int base_parser::curr_fcn_depth ( ) const
inline

Definition at line 211 of file parse.h.

◆ disallow_command_syntax()

void base_parser::disallow_command_syntax ( )

Definition at line 9102 of file oct-parse.cc.

References lexical_feedback::m_allow_command_syntax, and m_lexer.

Referenced by tree_evaluator::eval_string().

◆ end_token_error()

◆ end_token_ok()

◆ endfunction_found() [1/2]

bool base_parser::endfunction_found ( ) const
inline

Definition at line 221 of file parse.h.

◆ endfunction_found() [2/2]

void base_parser::endfunction_found ( bool  flag)
inline

Definition at line 216 of file parse.h.

Referenced by octave_push_parse().

◆ finish_array_list()

◆ finish_cell()

tree_expression * base_parser::finish_cell ( token open_delim,
tree_cell c,
token close_delim 
)

Definition at line 8883 of file oct-parse.cc.

References token::beg_pos(), CONSTANT, token::end_pos(), and finish_array_list().

Referenced by octave_push_parse().

◆ finish_classdef_external_method()

tree_function_def * base_parser::finish_classdef_external_method ( octave_user_function fcn,
tree_parameter_list ret_list = nullptr,
token eq_tok = nullptr 
)

◆ finish_classdef_file()

◆ finish_function()

◆ finish_if_command()

tree_if_command * base_parser::finish_if_command ( tree_if_command_list list,
tree_if_clause else_clause,
token end_tok 
)

◆ finish_input()

bool base_parser::finish_input ( tree_statement_list lst,
bool  at_eof = false 
)

◆ finish_matrix()

tree_expression * base_parser::finish_matrix ( token open_delim,
tree_matrix m,
token close_delim 
)

◆ finish_switch_command()

tree_switch_command * base_parser::finish_switch_command ( token switch_tok,
tree_expression expr,
tree_switch_case_list list,
token end_tok 
)

Definition at line 7389 of file oct-parse.cc.

References end_token_error(), end_token_ok(), and token::switch_end.

Referenced by octave_push_parse().

◆ frob_function()

octave_user_function * base_parser::frob_function ( tree_identifier id,
octave_user_function fcn 
)

◆ get_lexer()

base_lexer & base_parser::get_lexer ( ) const
inline

Definition at line 168 of file parse.h.

◆ make_anon_fcn_handle()

◆ make_arg_size_spec()

tree_arg_size_spec * base_parser::make_arg_size_spec ( tree_argument_list size_args)

Definition at line 7973 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_arg_validation()

tree_arg_validation * base_parser::make_arg_validation ( tree_arg_size_spec size_spec,
tree_identifier class_name,
tree_arg_validation_fcns validation_fcns,
token eq_tok = nullptr,
tree_expression default_value = nullptr 
)

Definition at line 7941 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_arg_validation_fcns()

tree_arg_validation_fcns * base_parser::make_arg_validation_fcns ( tree_argument_list fcn_args)

Definition at line 7981 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_args_attribute_list()

tree_args_block_attribute_list * base_parser::make_args_attribute_list ( tree_identifier attribute_name)

Definition at line 7952 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_args_validation_list()

tree_args_block_validation_list * base_parser::make_args_validation_list ( tree_arg_validation arg_validation)

Definition at line 7961 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_argument_list()

tree_argument_list * base_parser::make_argument_list ( tree_expression expr)

Definition at line 9054 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_arguments_block()

tree_arguments_block * base_parser::make_arguments_block ( token arguments_tok,
tree_args_block_attribute_list attr_list,
tree_args_block_validation_list validation_list,
token end_tok 
)

Definition at line 7925 of file oct-parse.cc.

References token::arguments_end, and end_token_ok().

Referenced by octave_push_parse().

◆ make_assign_op()

◆ make_binary_op()

◆ make_black_hole()

tree_black_hole * base_parser::make_black_hole ( token tilde)

Definition at line 6702 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_boolean_op()

tree_expression * base_parser::make_boolean_op ( tree_expression op1,
token op_tok,
tree_expression op2 
)

◆ make_break_command()

tree_command * base_parser::make_break_command ( token break_tok)

Definition at line 7274 of file oct-parse.cc.

References bison_error(), m_lexer, and lexical_feedback::m_looping.

Referenced by octave_push_parse().

◆ make_cell()

tree_cell * base_parser::make_cell ( tree_argument_list row)

Definition at line 8897 of file oct-parse.cc.

Referenced by append_cell_row(), and octave_push_parse().

◆ make_classdef()

◆ make_classdef_attribute() [1/2]

tree_classdef_attribute * base_parser::make_classdef_attribute ( tree_identifier id)

Definition at line 8265 of file oct-parse.cc.

References make_classdef_attribute().

Referenced by make_classdef_attribute(), and octave_push_parse().

◆ make_classdef_attribute() [2/2]

tree_classdef_attribute * base_parser::make_classdef_attribute ( tree_identifier id,
token eq_tok,
tree_expression expr 
)

Definition at line 8271 of file oct-parse.cc.

◆ make_classdef_attribute_list()

tree_classdef_attribute_list * base_parser::make_classdef_attribute_list ( tree_classdef_attribute attr)

Definition at line 8259 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_body() [1/4]

tree_classdef_body * base_parser::make_classdef_body ( tree_classdef_enum_block enb)

Definition at line 8307 of file oct-parse.cc.

◆ make_classdef_body() [2/4]

tree_classdef_body * base_parser::make_classdef_body ( tree_classdef_events_block evb)

Definition at line 8301 of file oct-parse.cc.

◆ make_classdef_body() [3/4]

tree_classdef_body * base_parser::make_classdef_body ( tree_classdef_methods_block mb)

Definition at line 8295 of file oct-parse.cc.

◆ make_classdef_body() [4/4]

tree_classdef_body * base_parser::make_classdef_body ( tree_classdef_properties_block pb)

Definition at line 8289 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_enum()

tree_classdef_enum * base_parser::make_classdef_enum ( tree_identifier id,
token open_paren,
tree_expression expr,
token close_paren 
)

Definition at line 8213 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_enum_block()

tree_classdef_enum_block * base_parser::make_classdef_enum_block ( token tok,
tree_classdef_attribute_list a,
tree_classdef_enum_list elist,
token end_tok 
)

Definition at line 8184 of file oct-parse.cc.

References end_token_error(), end_token_ok(), and token::enumeration_end.

Referenced by octave_push_parse().

◆ make_classdef_enum_list()

tree_classdef_enum_list * base_parser::make_classdef_enum_list ( tree_classdef_enum e)

Definition at line 8207 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_event()

tree_classdef_event * base_parser::make_classdef_event ( tree_identifier id)

Definition at line 8178 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_event_list()

tree_classdef_event_list * base_parser::make_classdef_event_list ( tree_classdef_event e)

Definition at line 8172 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_events_block()

tree_classdef_events_block * base_parser::make_classdef_events_block ( token tok,
tree_classdef_attribute_list a,
tree_classdef_event_list elist,
token end_tok 
)

Definition at line 8149 of file oct-parse.cc.

References end_token_error(), end_token_ok(), and token::events_end.

Referenced by octave_push_parse().

◆ make_classdef_method_list()

tree_classdef_method_list * base_parser::make_classdef_method_list ( tree_function_def fcn_def)

Definition at line 8386 of file oct-parse.cc.

References tree_function_def::function().

Referenced by octave_push_parse().

◆ make_classdef_methods_block()

tree_classdef_methods_block * base_parser::make_classdef_methods_block ( token tok,
tree_classdef_attribute_list a,
tree_classdef_method_list mlist,
token end_tok 
)

Definition at line 8126 of file oct-parse.cc.

References end_token_error(), end_token_ok(), and token::methods_end.

Referenced by octave_push_parse().

◆ make_classdef_properties_block()

◆ make_classdef_property()

◆ make_classdef_property_list()

tree_classdef_property_list * base_parser::make_classdef_property_list ( tree_classdef_property prop)

Definition at line 8109 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_superclass()

tree_classdef_superclass * base_parser::make_classdef_superclass ( token fqident)

Definition at line 8245 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_classdef_superclass_list()

tree_classdef_superclass_list * base_parser::make_classdef_superclass_list ( token lt_tok,
tree_classdef_superclass sc 
)

Definition at line 8237 of file oct-parse.cc.

References tree_classdef_superclass::set_separator().

Referenced by octave_push_parse().

◆ make_colon_expression() [1/2]

◆ make_colon_expression() [2/2]

tree_expression * base_parser::make_colon_expression ( tree_expression base,
token colon_tok,
tree_expression limit 
)

Definition at line 6780 of file oct-parse.cc.

References make_colon_expression().

Referenced by make_colon_expression(), and octave_push_parse().

◆ make_constant()

◆ make_continue_command()

tree_command * base_parser::make_continue_command ( token continue_tok)

Definition at line 7288 of file oct-parse.cc.

References bison_error(), m_lexer, and lexical_feedback::m_looping.

Referenced by octave_push_parse().

◆ make_decl_command()

◆ make_decl_elt()

tree_decl_elt * base_parser::make_decl_elt ( tree_identifier id,
token eq_op = nullptr,
tree_expression expr = nullptr 
)

Definition at line 8636 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_decl_init_list()

tree_decl_init_list * base_parser::make_decl_init_list ( tree_decl_elt elt)

Definition at line 8624 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_default_switch_case()

tree_switch_case * base_parser::make_default_switch_case ( token default_tok,
tree_statement_list list 
)

Definition at line 7423 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_do_until_command()

tree_command * base_parser::make_do_until_command ( token do_tok,
tree_statement_list body,
token until_tok,
tree_expression expr 
)

Definition at line 7204 of file oct-parse.cc.

References m_lexer, and lexical_feedback::m_looping.

Referenced by octave_push_parse().

◆ make_end()

tree_statement * base_parser::make_end ( const std::string &  type,
bool  eof,
token tok 
)

Definition at line 7813 of file oct-parse.cc.

References make_statement().

Referenced by octave_push_parse().

◆ make_fcn_handle()

tree_fcn_handle * base_parser::make_fcn_handle ( token tok)

Definition at line 6710 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_fcn_name()

◆ make_for_command()

◆ make_function()

◆ make_function_def_list()

tree_statement_list * base_parser::make_function_def_list ( tree_function_def fcn_def)

Definition at line 9034 of file oct-parse.cc.

References make_statement().

Referenced by octave_push_parse().

◆ make_identifier()

tree_identifier * base_parser::make_identifier ( token ident)

◆ make_if_clause()

tree_if_clause * base_parser::make_if_clause ( token if_tok,
separator_list if_sep_list,
tree_expression expr,
tree_statement_list list 
)

Definition at line 7364 of file oct-parse.cc.

References maybe_convert_to_braindead_shortcircuit().

Referenced by octave_push_parse().

◆ make_index_expression()

◆ make_indirect_ref() [1/2]

◆ make_indirect_ref() [2/2]

◆ make_matrix()

tree_matrix * base_parser::make_matrix ( tree_argument_list row)

Definition at line 8866 of file oct-parse.cc.

Referenced by append_matrix_row(), and octave_push_parse().

◆ make_metaclass_query()

tree_metaclass_query * base_parser::make_metaclass_query ( token metaquery)

Definition at line 8929 of file oct-parse.cc.

References token::text().

Referenced by octave_push_parse().

◆ make_not_classdef_attribute()

tree_classdef_attribute * base_parser::make_not_classdef_attribute ( token not_tok,
tree_identifier id 
)

Definition at line 8277 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_parameter_list() [1/3]

tree_parameter_list * base_parser::make_parameter_list ( tree_parameter_list::in_or_out  io)

Definition at line 9072 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_parameter_list() [2/3]

tree_parameter_list * base_parser::make_parameter_list ( tree_parameter_list::in_or_out  io,
tree_decl_elt t 
)

Definition at line 9078 of file oct-parse.cc.

◆ make_parameter_list() [3/3]

tree_parameter_list * base_parser::make_parameter_list ( tree_parameter_list::in_or_out  io,
tree_identifier id 
)

Definition at line 9084 of file oct-parse.cc.

◆ make_postfix_op()

◆ make_prefix_op()

◆ make_return_command()

tree_command * base_parser::make_return_command ( token return_tok)

Definition at line 7302 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_script()

◆ make_spmd_command()

tree_spmd_command * base_parser::make_spmd_command ( token spmd_tok,
tree_statement_list body,
token end_tok 
)

Definition at line 7310 of file oct-parse.cc.

References end_token_error(), end_token_ok(), and token::spmd_end.

Referenced by octave_push_parse().

◆ make_statement()

template<typename T >
tree_statement * base_parser::make_statement ( T *  arg)

◆ make_statement_list()

tree_statement_list * base_parser::make_statement_list ( tree_statement stmt)

Definition at line 8995 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_superclass_ref()

tree_superclass_ref * base_parser::make_superclass_ref ( token superclassref)

Definition at line 8920 of file oct-parse.cc.

References token::superclass_class_name(), and token::superclass_method_name().

Referenced by octave_push_parse().

◆ make_switch_case()

tree_switch_case * base_parser::make_switch_case ( token case_tok,
tree_expression expr,
tree_statement_list list 
)

Definition at line 7415 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_switch_case_list()

tree_switch_case_list * base_parser::make_switch_case_list ( tree_switch_case switch_case)

Definition at line 7407 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ make_try_command()

tree_command * base_parser::make_try_command ( token try_tok,
tree_statement_list body,
token catch_tok,
separator_list catch_sep_list,
tree_statement_list cleanup,
token end_tok 
)

◆ make_unwind_command()

tree_command * base_parser::make_unwind_command ( token unwind_tok,
tree_statement_list body,
token cleanup_tok,
tree_statement_list cleanup,
token end_tok 
)

Definition at line 7082 of file oct-parse.cc.

References end_token_error(), end_token_ok(), and token::unwind_protect_end.

Referenced by octave_push_parse().

◆ make_while_command()

tree_command * base_parser::make_while_command ( token while_tok,
tree_expression expr,
tree_statement_list body,
token end_tok 
)

◆ make_word_list_command()

tree_index_expression * base_parser::make_word_list_command ( tree_expression expr,
tree_argument_list args 
)

◆ maybe_convert_to_braindead_shortcircuit()

◆ parsing_local_functions() [1/2]

bool base_parser::parsing_local_functions ( ) const
inline

Definition at line 206 of file parse.h.

◆ parsing_local_functions() [2/2]

void base_parser::parsing_local_functions ( bool  flag)
inline

Definition at line 201 of file parse.h.

Referenced by octave_push_parse().

◆ parsing_subfunctions() [1/2]

bool base_parser::parsing_subfunctions ( ) const
inline

Definition at line 196 of file parse.h.

◆ parsing_subfunctions() [2/2]

void base_parser::parsing_subfunctions ( bool  flag)
inline

Definition at line 191 of file parse.h.

◆ push_fcn_symtab()

◆ recover_from_parsing_function()

◆ reset()

◆ run()

virtual int base_parser::run ( )
pure virtual

Implemented in parser, and push_parser.

◆ set_stmt_print_flag() [1/3]

tree_statement_list * base_parser::set_stmt_print_flag ( tree_statement_list list,
const token sep_tok,
bool  warn_missing_semi 
)

Definition at line 8973 of file oct-parse.cc.

References set_stmt_print_flag(), and token::token_id().

◆ set_stmt_print_flag() [2/3]

◆ set_stmt_print_flag() [3/3]

tree_statement_list * base_parser::set_stmt_print_flag ( tree_statement_list list,
separator_list sep_list,
bool  warn_missing_semi 
)

Definition at line 8979 of file oct-parse.cc.

References set_stmt_print_flag().

◆ start_classdef_external_method()

octave_user_function * base_parser::start_classdef_external_method ( tree_identifier id,
tree_parameter_list pl = nullptr 
)

◆ start_function()

octave_user_function * base_parser::start_function ( tree_identifier id,
tree_parameter_list param_list,
tree_statement_list body,
tree_statement end_function,
const std::string &  doc_string 
)

◆ start_if_command()

tree_if_command_list * base_parser::start_if_command ( tree_if_clause clause)

Definition at line 7329 of file oct-parse.cc.

Referenced by octave_push_parse().

◆ statement_list() [1/2]

std::shared_ptr< tree_statement_list > base_parser::statement_list ( ) const
inline

Definition at line 186 of file parse.h.

Referenced by finish_input().

◆ statement_list() [2/2]

void base_parser::statement_list ( std::shared_ptr< tree_statement_list > &  lst)

Definition at line 6583 of file oct-parse.cc.

References m_stmt_list.

Referenced by bp_table::condition_valid(), and tree_evaluator::eval_string().

◆ validate_array_list()

bool base_parser::validate_array_list ( tree_expression e)

Definition at line 8706 of file oct-parse.cc.

References bison_error(), and tree_expression::is_matrix().

Referenced by octave_push_parse().

◆ validate_matrix_for_assignment()

◆ validate_param_list()

◆ validate_primary_fcn()

bool base_parser::validate_primary_fcn ( )

Friends And Related Symbol Documentation

◆ parse_fcn_file

octave_value parse_fcn_file ( interpreter interp,
const std::string &  full_file,
const std::string &  file,
const std::string &  dir_name,
const std::string &  dispatch_type,
const std::string &  package_name,
bool  require_file,
bool  force_script,
bool  autoload,
bool  relative_lookup 
)
friend

Definition at line 9334 of file oct-parse.cc.

Member Data Documentation

◆ m_autoloading

bool base_parser::m_autoloading
protected

Definition at line 687 of file parse.h.

Referenced by reset(), and start_function().

◆ m_classdef_object

std::shared_ptr<tree_classdef> base_parser::m_classdef_object
protected

Definition at line 737 of file parse.h.

Referenced by finish_classdef_file(), and reset().

◆ m_curr_class_name

std::string base_parser::m_curr_class_name
protected

Definition at line 719 of file parse.h.

Referenced by reset(), start_classdef_external_method(), and start_function().

◆ m_curr_fcn_depth

int base_parser::m_curr_fcn_depth
protected

◆ m_curr_package_name

std::string base_parser::m_curr_package_name
protected

Definition at line 723 of file parse.h.

Referenced by make_classdef(), and reset().

◆ m_endfunction_found

bool base_parser::m_endfunction_found
protected

Definition at line 684 of file parse.h.

Referenced by finish_function(), and reset().

◆ m_fcn_file_from_relative_lookup

bool base_parser::m_fcn_file_from_relative_lookup
protected

Definition at line 691 of file parse.h.

Referenced by reset(), and start_function().

◆ m_function_scopes

parent_scope_info base_parser::m_function_scopes
protected

◆ m_lexer

◆ m_max_fcn_depth

int base_parser::m_max_fcn_depth
protected

Definition at line 704 of file parse.h.

Referenced by push_fcn_symtab(), and reset().

◆ m_parse_error_msg

std::string base_parser::m_parse_error_msg
protected

Definition at line 681 of file parse.h.

Referenced by bison_error(), parser::run(), and push_parser::run().

◆ m_parser_state

void* base_parser::m_parser_state
protected

Definition at line 746 of file parse.h.

Referenced by ~base_parser(), reset(), parser::run(), and push_parser::run().

◆ m_parsing_local_functions

bool base_parser::m_parsing_local_functions
protected

Definition at line 700 of file parse.h.

Referenced by make_fcn_name(), and reset().

◆ m_parsing_subfunctions

bool base_parser::m_parsing_subfunctions
protected

◆ m_primary_fcn

octave_value base_parser::m_primary_fcn
protected

Definition at line 729 of file parse.h.

Referenced by make_script(), reset(), start_function(), and validate_primary_fcn().

◆ m_primary_fcn_scope

symbol_scope base_parser::m_primary_fcn_scope
protected

Definition at line 715 of file parse.h.

Referenced by finish_function(), push_fcn_symtab(), and reset().

◆ m_stmt_list

std::shared_ptr<tree_statement_list> base_parser::m_stmt_list
protected

Definition at line 740 of file parse.h.

Referenced by reset(), and statement_list().

◆ m_subfunction_names

std::list<std::string> base_parser::m_subfunction_names
protected

Definition at line 734 of file parse.h.

Referenced by finish_function(), and reset().


The documentation for this class was generated from the following files: