ChaiScript
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
chaiscript::AST_Node Struct Referenceabstract

Struct that doubles as both a parser ast_node and an AST node. More...

#include <chaiscript_common.hpp>

Inheritance diagram for chaiscript::AST_Node:
chaiscript::eval::AST_Node_Impl< T > chaiscript::eval::Arg_AST_Node< T > chaiscript::eval::Arg_List_AST_Node< T > chaiscript::eval::Array_Call_AST_Node< T > chaiscript::eval::Assign_Decl_AST_Node< T > chaiscript::eval::Attr_Decl_AST_Node< T > chaiscript::eval::Binary_Operator_AST_Node< T > chaiscript::eval::Block_AST_Node< T > chaiscript::eval::Break_AST_Node< T > chaiscript::eval::Case_AST_Node< T > chaiscript::eval::Catch_AST_Node< T > chaiscript::eval::Class_AST_Node< T > chaiscript::eval::Compiled_AST_Node< T > chaiscript::eval::Constant_AST_Node< T > chaiscript::eval::Continue_AST_Node< T > chaiscript::eval::Def_AST_Node< T > chaiscript::eval::Default_AST_Node< T > chaiscript::eval::Dot_Access_AST_Node< T > chaiscript::eval::Equation_AST_Node< T > chaiscript::eval::File_AST_Node< T > chaiscript::eval::Finally_AST_Node< T > chaiscript::eval::Fold_Right_Binary_Operator_AST_Node< T > chaiscript::eval::For_AST_Node< T > chaiscript::eval::Fun_Call_AST_Node< T > chaiscript::eval::Global_Decl_AST_Node< T > chaiscript::eval::Id_AST_Node< T > chaiscript::eval::If_AST_Node< T > chaiscript::eval::Inline_Array_AST_Node< T > chaiscript::eval::Inline_Map_AST_Node< T > chaiscript::eval::Inline_Range_AST_Node< T > chaiscript::eval::Lambda_AST_Node< T > chaiscript::eval::Logical_And_AST_Node< T > chaiscript::eval::Logical_Or_AST_Node< T > chaiscript::eval::Map_Pair_AST_Node< T > chaiscript::eval::Method_AST_Node< T > chaiscript::eval::Noop_AST_Node< T > chaiscript::eval::Prefix_AST_Node< T > chaiscript::eval::Ranged_For_AST_Node< T > chaiscript::eval::Reference_AST_Node< T > chaiscript::eval::Return_AST_Node< T > chaiscript::eval::Scopeless_Block_AST_Node< T > chaiscript::eval::Switch_AST_Node< T > chaiscript::eval::Try_AST_Node< T > chaiscript::eval::Value_Range_AST_Node< T > chaiscript::eval::Var_Decl_AST_Node< T > chaiscript::eval::While_AST_Node< T >

Public Member Functions

const std::string & filename () const noexcept
 
const File_Positionstart () const noexcept
 
const File_Positionend () const noexcept
 
std::string pretty_print () const
 
virtual std::vector< std::reference_wrapper< AST_Node > > get_children () const =0
 
virtual Boxed_Value eval (const chaiscript::detail::Dispatch_State &t_e) const =0
 
std::string to_string (const std::string &t_prepend="") const
 Prints the contents of an AST node, including its children, recursively.
 
 AST_Node (AST_Node &&)=default
 
AST_Nodeoperator= (AST_Node &&)=default
 
 AST_Node (const AST_Node &)=delete
 
AST_Nodeoperator= (const AST_Node &)=delete
 

Static Public Member Functions

static bool get_bool_condition (const Boxed_Value &t_bv, const chaiscript::detail::Dispatch_State &t_ss)
 

Public Attributes

const AST_Node_Type identifier
 
const std::string text
 
Parse_Location location
 

Protected Member Functions

 AST_Node (std::string t_ast_node_text, AST_Node_Type t_id, Parse_Location t_loc)
 

Detailed Description

Struct that doubles as both a parser ast_node and an AST node.


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