GNU Octave  9.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
parser Class Reference

#include "parse.h"

Inheritance diagram for parser:
base_parser

Public Member Functions

 parser (const std::string &eval_string, interpreter &interp)
 
 parser (FILE *file, interpreter &interp)
 
 parser (FILE *file, interpreter &interp, std::string encoding)
 
 parser (interpreter &interp)
 
 parser (lexer *lxr)
 
 ~parser ()=default
 
int run ()
 
- Public Member Functions inherited from base_parser
 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, tree_expression *expr)
 
tree_cellappend_cell_row (tree_cell *cell, tree_argument_list *row)
 
tree_classdef_attribute_listappend_classdef_attribute (tree_classdef_attribute_list *list, 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_events_listappend_classdef_event (tree_classdef_events_list *list, tree_classdef_event *elt)
 
tree_classdef_bodyappend_classdef_events_block (tree_classdef_body *body, tree_classdef_events_block *block)
 
tree_classdef_methods_listappend_classdef_method (tree_classdef_methods_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, 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_if_command_listappend_if_clause (tree_if_command_list *list, tree_if_clause *clause)
 
tree_matrixappend_matrix_row (tree_matrix *matrix, tree_argument_list *row)
 
tree_parameter_listappend_parameter_list (tree_parameter_list *list, tree_decl_elt *t)
 
tree_parameter_listappend_parameter_list (tree_parameter_list *list, tree_identifier *id)
 
tree_statement_listappend_statement_list (tree_statement_list *list, char sep, 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)
 
void bison_error (const std::string &s, int line, int column)
 
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 (tree_array_list *a, token *open_delim, token *close_delim)
 
tree_expressionfinish_cell (tree_cell *c, token *open_delim, token *close_delim)
 
tree_function_deffinish_classdef_external_method (octave_user_function *fcn, tree_parameter_list *ret_list, comment_list *cl)
 
bool 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)
 
bool finish_input (tree_statement_list *lst, bool at_eof=false)
 
tree_expressionfinish_matrix (tree_matrix *m, token *open_delim, token *close_delim)
 
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)
 
base_lexerget_lexer () const
 
tree_anon_fcn_handlemake_anon_fcn_handle (tree_parameter_list *param_list, tree_expression *expr, const filepos &at_pos)
 
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, tree_expression *default_value)
 
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, comment_list *lc, comment_list *tc)
 
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_black_holemake_black_hole ()
 
tree_expressionmake_boolean_op (int op, tree_expression *op1, token *tok_val, tree_expression *op2)
 
tree_commandmake_break_command (token *break_tok)
 
tree_cellmake_cell (tree_argument_list *row)
 
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, comment_list *bc, comment_list *tc)
 
tree_classdef_attributemake_classdef_attribute (tree_identifier *id, tree_expression *expr=nullptr)
 
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, tree_expression *expr, 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, comment_list *tc)
 
tree_classdef_enum_listmake_classdef_enum_list (tree_classdef_enum *e)
 
tree_classdef_eventmake_classdef_event (comment_list *lc, tree_identifier *id)
 
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, comment_list *tc)
 
tree_classdef_events_listmake_classdef_events_list (tree_classdef_event *e)
 
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, comment_list *tc)
 
tree_classdef_methods_listmake_classdef_methods_list (tree_function_def *fcn_def)
 
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, comment_list *tc)
 
tree_classdef_propertymake_classdef_property (comment_list *lc, 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 (tree_classdef_superclass *sc)
 
tree_expressionmake_colon_expression (tree_expression *base, tree_expression *limit, tree_expression *incr=nullptr)
 
tree_constantmake_constant (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_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, comment_list *lc, tree_statement_list *list)
 
tree_commandmake_do_until_command (token *until_tok, tree_statement_list *body, tree_expression *expr, comment_list *lc)
 
tree_if_clausemake_else_clause (token *else_tok, comment_list *lc, tree_statement_list *list)
 
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, const filepos &beg_pos, const filepos &end_pos)
 
tree_fcn_handlemake_fcn_handle (token *tok_val)
 
tree_identifiermake_fcn_name (tree_identifier *id)
 
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, comment_list *bc)
 
tree_identifiermake_identifier (token *ident)
 
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_matrixmake_matrix (tree_argument_list *row)
 
tree_metaclass_querymake_metaclass_query (token *metaquery)
 
tree_classdef_attributemake_not_classdef_attribute (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 (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)
 
tree_spmd_commandmake_spmd_command (token *spmd_tok, tree_statement_list *body, token *end_tok, comment_list *lc, comment_list *tc)
 
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, comment_list *lc)
 
tree_switch_case_listmake_switch_case_list (tree_switch_case *switch_case)
 
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_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 ()
 
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, const std::string &doc_string)
 
tree_if_command_liststart_if_command (tree_expression *expr, tree_statement_list *list)
 
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 ()
 

Additional Inherited Members

- Protected Attributes inherited from base_parser
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
 

Detailed Description

Definition at line 821 of file parse.h.

Constructor & Destructor Documentation

◆ parser() [1/5]

parser::parser ( interpreter interp)
inline

Definition at line 825 of file parse.h.

◆ parser() [2/5]

parser::parser ( FILE *  file,
interpreter interp 
)
inline

Definition at line 829 of file parse.h.

◆ parser() [3/5]

parser::parser ( FILE *  file,
interpreter interp,
std::string  encoding 
)
inline

Definition at line 833 of file parse.h.

◆ parser() [4/5]

parser::parser ( const std::string &  eval_string,
interpreter interp 
)
inline

Definition at line 837 of file parse.h.

◆ parser() [5/5]

parser::parser ( lexer lxr)
inline

Definition at line 845 of file parse.h.

◆ ~parser()

parser::~parser ( )
default

Member Function Documentation

◆ run()


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