GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::base_parser Class Reference

#include "parse.h"

Inheritance diagram for octave::base_parser:
Collaboration diagram for octave::base_parser:

Classes

class  parent_scope_info
 

Public Member Functions

 base_parser (base_lexer &lxr)
 
 base_parser (const base_parser &)=delete
 
 ~base_parser (void)
 
tree_statement_listappend_statement_list (tree_statement_list *list, char sep, tree_statement *stmt, bool warn_missing_semi)
 
void bison_error (const std::string &s, int l=-1, int c=-1)
 
void end_token_error (token *tok, token::end_tok_type expected)
 
bool end_token_ok (token *tok, token::end_tok_type expected)
 
tree_expressionfinish_array_list (tree_array_list *a)
 
tree_expressionfinish_cell (tree_cell *c)
 
tree_function_deffinish_classdef_external_method (octave_user_function *fcn, tree_parameter_list *ret_list, comment_list *cl)
 
void finish_classdef_file (tree_classdef *cls, tree_statement_list *local_fcns)
 
tree_function_deffinish_function (tree_parameter_list *ret_list, octave_user_function *fcn, comment_list *lc, int l, int c)
 
tree_if_commandfinish_if_command (token *if_tok, tree_if_command_list *list, token *end_tok, comment_list *lc)
 
tree_expressionfinish_matrix (tree_matrix *m)
 
tree_switch_commandfinish_switch_command (token *switch_tok, tree_expression *expr, tree_switch_case_list *list, token *end_tok, comment_list *lc)
 
octave_user_functionfrob_function (tree_identifier *id, octave_user_function *fcn)
 
tree_anon_fcn_handlemake_anon_fcn_handle (tree_parameter_list *param_list, tree_expression *expr)
 
tree_expressionmake_assign_op (int op, tree_argument_list *lhs, token *eq_tok, tree_expression *rhs)
 
tree_expressionmake_binary_op (int op, tree_expression *op1, token *tok_val, tree_expression *op2)
 
tree_expressionmake_boolean_op (int op, tree_expression *op1, token *tok_val, tree_expression *op2)
 
tree_commandmake_break_command (token *break_tok)
 
tree_classdefmake_classdef (token *tok_val, tree_classdef_attribute_list *a, tree_identifier *id, tree_classdef_superclass_list *sc, tree_classdef_body *body, token *end_tok, comment_list *lc)
 
tree_classdef_enum_blockmake_classdef_enum_block (token *tok_val, tree_classdef_attribute_list *a, tree_classdef_enum_list *elist, token *end_tok, comment_list *lc)
 
tree_classdef_events_blockmake_classdef_events_block (token *tok_val, tree_classdef_attribute_list *a, tree_classdef_events_list *elist, token *end_tok, comment_list *lc)
 
tree_classdef_methods_blockmake_classdef_methods_block (token *tok_val, tree_classdef_attribute_list *a, tree_classdef_methods_list *mlist, token *end_tok, comment_list *lc)
 
tree_classdef_properties_blockmake_classdef_properties_block (token *tok_val, tree_classdef_attribute_list *a, tree_classdef_property_list *plist, token *end_tok, comment_list *lc)
 
tree_expressionmake_colon_expression (tree_expression *base, tree_expression *limit, tree_expression *incr=nullptr)
 
tree_constantmake_constant (int op, token *tok_val)
 
tree_commandmake_continue_command (token *continue_tok)
 
tree_decl_commandmake_decl_command (int tok, token *tok_val, tree_decl_init_list *lst)
 
tree_commandmake_do_until_command (token *until_tok, tree_statement_list *body, tree_expression *expr, comment_list *lc)
 
tree_if_clausemake_elseif_clause (token *elseif_tok, tree_expression *expr, tree_statement_list *list, comment_list *lc)
 
tree_statementmake_end (const std::string &type, bool eof, int l, int c)
 
tree_fcn_handlemake_fcn_handle (token *tok_val)
 
tree_commandmake_for_command (int tok_id, token *for_tok, tree_argument_list *lhs, tree_expression *expr, tree_expression *maxproc, tree_statement_list *body, token *end_tok, comment_list *lc)
 
tree_function_defmake_function (token *fcn_tok, tree_parameter_list *ret_list, tree_identifier *id, tree_parameter_list *param_list, tree_statement_list *body, tree_statement *end_fcn_stmt, comment_list *lc)
 
tree_index_expressionmake_index_expression (tree_expression *expr, tree_argument_list *args, char type)
 
tree_index_expressionmake_indirect_ref (tree_expression *expr, const std::string &)
 
tree_index_expressionmake_indirect_ref (tree_expression *expr, tree_expression *field)
 
tree_funcallmake_meta_class_query (const std::string &class_nm)
 
tree_expressionmake_postfix_op (int op, tree_expression *op1, token *tok_val)
 
tree_expressionmake_prefix_op (int op, tree_expression *op1, token *tok_val)
 
tree_commandmake_return_command (token *return_tok)
 
void make_script (tree_statement_list *cmds, tree_statement *end_script)
 
template<typename T >
tree_statementmake_statement (T *arg)
 
tree_statement_listmake_statement_list (tree_statement *stmt)
 
tree_funcallmake_superclass_ref (const std::string &method_nm, const std::string &class_nm)
 
tree_switch_casemake_switch_case (token *case_tok, tree_expression *expr, tree_statement_list *list, comment_list *lc)
 
tree_commandmake_try_command (token *try_tok, tree_statement_list *body, char catch_sep, tree_statement_list *cleanup, token *end_tok, comment_list *lc, comment_list *mc)
 
tree_commandmake_unwind_command (token *unwind_tok, tree_statement_list *body, tree_statement_list *cleanup, token *end_tok, comment_list *lc, comment_list *mc)
 
tree_commandmake_while_command (token *while_tok, tree_expression *expr, tree_statement_list *body, token *end_tok, comment_list *lc)
 
void maybe_warn_assign_as_truth_value (tree_expression *expr)
 
void maybe_warn_missing_semi (tree_statement_list *)
 
void maybe_warn_variable_switch_label (tree_expression *expr)
 
base_parseroperator= (const base_parser &)=delete
 
void recover_from_parsing_function (void)
 
void reset (void)
 
tree_statement_listset_stmt_print_flag (tree_statement_list *, char, bool)
 
octave_user_functionstart_classdef_external_method (tree_identifier *id, tree_parameter_list *pl)
 
octave_user_functionstart_function (tree_identifier *id, tree_parameter_list *param_list, tree_statement_list *body, tree_statement *end_function)
 
tree_if_command_liststart_if_command (tree_expression *expr, tree_statement_list *list)
 
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)
 

Public Attributes

bool m_autoloading
 
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_functionm_primary_fcn_ptr
 
symbol_scope m_primary_fcn_scope
 
tree_statement_listm_stmt_list
 
std::list< std::stringm_subfunction_names
 

Detailed Description

Definition at line 96 of file parse.h.

Constructor & Destructor Documentation

◆ base_parser() [1/2]

octave::base_parser::base_parser ( base_lexer lxr)

◆ base_parser() [2/2]

octave::base_parser::base_parser ( const base_parser )
delete

◆ ~base_parser()

octave::base_parser::~base_parser ( void  )

Member Function Documentation

◆ append_statement_list()

tree_statement_list* octave::base_parser::append_statement_list ( tree_statement_list list,
char  sep,
tree_statement stmt,
bool  warn_missing_semi 
)

◆ bison_error()

void octave::base_parser::bison_error ( const std::string s,
int  l = -1,
int  c = -1 
)

◆ end_token_error()

void octave::base_parser::end_token_error ( token tok,
token::end_tok_type  expected 
)

◆ end_token_ok()

bool octave::base_parser::end_token_ok ( token tok,
token::end_tok_type  expected 
)

◆ finish_array_list()

tree_expression* octave::base_parser::finish_array_list ( tree_array_list a)

◆ finish_cell()

tree_expression* octave::base_parser::finish_cell ( tree_cell c)

◆ finish_classdef_external_method()

tree_function_def* octave::base_parser::finish_classdef_external_method ( octave_user_function fcn,
tree_parameter_list ret_list,
comment_list cl 
)

◆ finish_classdef_file()

void octave::base_parser::finish_classdef_file ( tree_classdef cls,
tree_statement_list local_fcns 
)

◆ finish_function()

tree_function_def* octave::base_parser::finish_function ( tree_parameter_list ret_list,
octave_user_function fcn,
comment_list lc,
int  l,
int  c 
)

◆ finish_if_command()

tree_if_command* octave::base_parser::finish_if_command ( token if_tok,
tree_if_command_list list,
token end_tok,
comment_list lc 
)

◆ finish_matrix()

tree_expression* octave::base_parser::finish_matrix ( tree_matrix m)

◆ finish_switch_command()

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

◆ frob_function()

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

◆ make_anon_fcn_handle()

tree_anon_fcn_handle* octave::base_parser::make_anon_fcn_handle ( tree_parameter_list param_list,
tree_expression expr 
)

◆ make_assign_op()

tree_expression* octave::base_parser::make_assign_op ( int  op,
tree_argument_list lhs,
token eq_tok,
tree_expression rhs 
)

◆ make_binary_op()

tree_expression* octave::base_parser::make_binary_op ( int  op,
tree_expression op1,
token tok_val,
tree_expression op2 
)

◆ make_boolean_op()

tree_expression* octave::base_parser::make_boolean_op ( int  op,
tree_expression op1,
token tok_val,
tree_expression op2 
)

◆ make_break_command()

tree_command* octave::base_parser::make_break_command ( token break_tok)

◆ make_classdef()

tree_classdef* octave::base_parser::make_classdef ( token tok_val,
tree_classdef_attribute_list a,
tree_identifier id,
tree_classdef_superclass_list sc,
tree_classdef_body body,
token end_tok,
comment_list lc 
)

◆ make_classdef_enum_block()

tree_classdef_enum_block* octave::base_parser::make_classdef_enum_block ( token tok_val,
tree_classdef_attribute_list a,
tree_classdef_enum_list elist,
token end_tok,
comment_list lc 
)

◆ make_classdef_events_block()

tree_classdef_events_block* octave::base_parser::make_classdef_events_block ( token tok_val,
tree_classdef_attribute_list a,
tree_classdef_events_list elist,
token end_tok,
comment_list lc 
)

◆ make_classdef_methods_block()

tree_classdef_methods_block* octave::base_parser::make_classdef_methods_block ( token tok_val,
tree_classdef_attribute_list a,
tree_classdef_methods_list mlist,
token end_tok,
comment_list lc 
)

◆ make_classdef_properties_block()

tree_classdef_properties_block* octave::base_parser::make_classdef_properties_block ( token tok_val,
tree_classdef_attribute_list a,
tree_classdef_property_list plist,
token end_tok,
comment_list lc 
)

◆ make_colon_expression()

tree_expression* octave::base_parser::make_colon_expression ( tree_expression base,
tree_expression limit,
tree_expression incr = nullptr 
)

◆ make_constant()

tree_constant* octave::base_parser::make_constant ( int  op,
token tok_val 
)

◆ make_continue_command()

tree_command* octave::base_parser::make_continue_command ( token continue_tok)

◆ make_decl_command()

tree_decl_command* octave::base_parser::make_decl_command ( int  tok,
token tok_val,
tree_decl_init_list lst 
)

◆ make_do_until_command()

tree_command* octave::base_parser::make_do_until_command ( token until_tok,
tree_statement_list body,
tree_expression expr,
comment_list lc 
)

◆ make_elseif_clause()

tree_if_clause* octave::base_parser::make_elseif_clause ( token elseif_tok,
tree_expression expr,
tree_statement_list list,
comment_list lc 
)

◆ make_end()

tree_statement* octave::base_parser::make_end ( const std::string type,
bool  eof,
int  l,
int  c 
)

◆ make_fcn_handle()

tree_fcn_handle* octave::base_parser::make_fcn_handle ( token tok_val)

◆ make_for_command()

tree_command* octave::base_parser::make_for_command ( int  tok_id,
token for_tok,
tree_argument_list lhs,
tree_expression expr,
tree_expression maxproc,
tree_statement_list body,
token end_tok,
comment_list lc 
)

◆ make_function()

tree_function_def* octave::base_parser::make_function ( token fcn_tok,
tree_parameter_list ret_list,
tree_identifier id,
tree_parameter_list param_list,
tree_statement_list body,
tree_statement end_fcn_stmt,
comment_list lc 
)

◆ make_index_expression()

tree_index_expression* octave::base_parser::make_index_expression ( tree_expression expr,
tree_argument_list args,
char  type 
)

◆ make_indirect_ref() [1/2]

tree_index_expression* octave::base_parser::make_indirect_ref ( tree_expression expr,
const std::string  
)

◆ make_indirect_ref() [2/2]

tree_index_expression* octave::base_parser::make_indirect_ref ( tree_expression expr,
tree_expression field 
)

◆ make_meta_class_query()

tree_funcall* octave::base_parser::make_meta_class_query ( const std::string class_nm)

◆ make_postfix_op()

tree_expression* octave::base_parser::make_postfix_op ( int  op,
tree_expression op1,
token tok_val 
)

◆ make_prefix_op()

tree_expression* octave::base_parser::make_prefix_op ( int  op,
tree_expression op1,
token tok_val 
)

◆ make_return_command()

tree_command* octave::base_parser::make_return_command ( token return_tok)

◆ make_script()

void octave::base_parser::make_script ( tree_statement_list cmds,
tree_statement end_script 
)

◆ make_statement()

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

◆ make_statement_list()

tree_statement_list* octave::base_parser::make_statement_list ( tree_statement stmt)

◆ make_superclass_ref()

tree_funcall* octave::base_parser::make_superclass_ref ( const std::string method_nm,
const std::string class_nm 
)

◆ make_switch_case()

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

◆ make_try_command()

tree_command* octave::base_parser::make_try_command ( token try_tok,
tree_statement_list body,
char  catch_sep,
tree_statement_list cleanup,
token end_tok,
comment_list lc,
comment_list mc 
)

◆ make_unwind_command()

tree_command* octave::base_parser::make_unwind_command ( token unwind_tok,
tree_statement_list body,
tree_statement_list cleanup,
token end_tok,
comment_list lc,
comment_list mc 
)

◆ make_while_command()

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

◆ maybe_warn_assign_as_truth_value()

void octave::base_parser::maybe_warn_assign_as_truth_value ( tree_expression expr)

◆ maybe_warn_missing_semi()

void octave::base_parser::maybe_warn_missing_semi ( tree_statement_list )

◆ maybe_warn_variable_switch_label()

void octave::base_parser::maybe_warn_variable_switch_label ( tree_expression expr)

◆ operator=()

base_parser& octave::base_parser::operator= ( const base_parser )
delete

◆ recover_from_parsing_function()

void octave::base_parser::recover_from_parsing_function ( void  )

◆ reset()

void octave::base_parser::reset ( void  )

◆ set_stmt_print_flag()

tree_statement_list* octave::base_parser::set_stmt_print_flag ( tree_statement_list ,
char  ,
bool   
)

◆ start_classdef_external_method()

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

◆ start_function()

octave_user_function* octave::base_parser::start_function ( tree_identifier id,
tree_parameter_list param_list,
tree_statement_list body,
tree_statement end_function 
)

◆ start_if_command()

tree_if_command_list* octave::base_parser::start_if_command ( tree_expression expr,
tree_statement_list list 
)

◆ validate_array_list()

bool octave::base_parser::validate_array_list ( tree_expression e)

◆ validate_matrix_for_assignment()

tree_argument_list* octave::base_parser::validate_matrix_for_assignment ( tree_expression e)

◆ validate_param_list()

bool octave::base_parser::validate_param_list ( tree_parameter_list lst,
tree_parameter_list::in_or_out  type 
)

Member Data Documentation

◆ m_autoloading

bool octave::base_parser::m_autoloading

Definition at line 423 of file parse.h.

◆ m_classdef_object

tree_classdef* octave::base_parser::m_classdef_object

Definition at line 473 of file parse.h.

◆ m_curr_class_name

std::string octave::base_parser::m_curr_class_name

Definition at line 455 of file parse.h.

◆ m_curr_fcn_depth

int octave::base_parser::m_curr_fcn_depth

Definition at line 447 of file parse.h.

◆ m_curr_package_name

std::string octave::base_parser::m_curr_package_name

Definition at line 459 of file parse.h.

◆ m_endfunction_found

bool octave::base_parser::m_endfunction_found

Definition at line 420 of file parse.h.

◆ m_fcn_file_from_relative_lookup

bool octave::base_parser::m_fcn_file_from_relative_lookup

Definition at line 427 of file parse.h.

◆ m_function_scopes

parent_scope_info octave::base_parser::m_function_scopes

Definition at line 462 of file parse.h.

◆ m_lexer

base_lexer& octave::base_parser::m_lexer

Definition at line 479 of file parse.h.

◆ m_max_fcn_depth

int octave::base_parser::m_max_fcn_depth

Definition at line 440 of file parse.h.

◆ m_parse_error_msg

std::string octave::base_parser::m_parse_error_msg

Definition at line 417 of file parse.h.

◆ m_parser_state

void* octave::base_parser::m_parser_state

Definition at line 482 of file parse.h.

◆ m_parsing_local_functions

bool octave::base_parser::m_parsing_local_functions

Definition at line 436 of file parse.h.

◆ m_parsing_subfunctions

bool octave::base_parser::m_parsing_subfunctions

Definition at line 431 of file parse.h.

◆ m_primary_fcn_ptr

octave_function* octave::base_parser::m_primary_fcn_ptr

Definition at line 465 of file parse.h.

◆ m_primary_fcn_scope

symbol_scope octave::base_parser::m_primary_fcn_scope

Definition at line 451 of file parse.h.

◆ m_stmt_list

tree_statement_list* octave::base_parser::m_stmt_list

Definition at line 476 of file parse.h.

Referenced by octave::bp_table::condition_valid().

◆ m_subfunction_names

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

Definition at line 470 of file parse.h.


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