chomik 0.2.1
experimental and minimalistic programming language

My name is Pawel Biernacki.
I am a software engineer.
This site is my hobby project.

Loading...
Searching...
No Matches
chomik::type_definition_statement Class Reference

#include <chomik.h>

Inheritance diagram for chomik::type_definition_statement:
Collaboration diagram for chomik::type_definition_statement:

Public Member Functions

 type_definition_statement (list_of_type_definitions *const l, unsigned new_line_number)
 
 type_definition_statement (unsigned new_line_number)
 
virtual statement_type get_statement_type () const override
 
virtual void report (std::ostream &s) const override
 
virtual void execute (machine &m, std::shared_ptr< const statement > &&i, std::shared_ptr< basic_generator > father=nullptr) const override
 
virtual void expand (machine &m, int depth) const override
 
virtual void add_placeholders_to_generator (basic_generator &g) const override
 
virtual void make_copy_with_replacements (const machine &m, const basic_generator &g, const replacing_policy &p, std::shared_ptr< statement > &target) const override
 
virtual void get_copy (std::shared_ptr< statement > &target) const override
 
virtual const std::vector< std::shared_ptr< type_definition > > & get_vector_of_type_definitions () const override
 
- Public Member Functions inherited from chomik::statement
 statement (unsigned l)
 
virtual ~statement ()
 
void get_actual_code_value (const machine &m, const basic_generator &g, const replacing_policy &p, code &target) const
 
virtual bool get_is_code_assignment (machine &m) const
 

Additional Inherited Members

- Public Types inherited from chomik::statement
enum class  statement_type {
  NONE , TYPE_DEFINITION , VARIABLE_DEFINITION , ASSIGNMENT ,
  EXECUTE , EXPAND
}
 
- Protected Attributes inherited from chomik::statement
unsigned line_number
 
- Static Protected Attributes inherited from chomik::statement
static const std::vector< std::shared_ptr< type_definition > > dummy
 

Detailed Description

This class represents a type definition statement. It may contain multiple type definitions. It is used with the expand statement (no types will be defined without it).

Constructor & Destructor Documentation

◆ type_definition_statement() [1/2]

chomik::type_definition_statement::type_definition_statement ( list_of_type_definitions *const l,
unsigned new_line_number )
inline

This constructor does not own the first parameter. It must be destroyed by the parser!

◆ type_definition_statement() [2/2]

chomik::type_definition_statement::type_definition_statement ( unsigned new_line_number)
inline

Member Function Documentation

◆ add_placeholders_to_generator()

virtual void chomik::type_definition_statement::add_placeholders_to_generator ( basic_generator & g) const
overridevirtual

Implements chomik::statement.

◆ execute()

virtual void chomik::type_definition_statement::execute ( machine & m,
std::shared_ptr< const statement > && i,
std::shared_ptr< basic_generator > father = nullptr ) const
overridevirtual

Implements chomik::statement.

◆ expand()

virtual void chomik::type_definition_statement::expand ( machine & m,
int depth ) const
overridevirtual

Reimplemented from chomik::statement.

◆ get_copy()

virtual void chomik::type_definition_statement::get_copy ( std::shared_ptr< statement > & target) const
inlineoverridevirtual

Implements chomik::statement.

◆ get_statement_type()

virtual statement_type chomik::type_definition_statement::get_statement_type ( ) const
inlineoverridevirtual

Implements chomik::statement.

◆ get_vector_of_type_definitions()

virtual const std::vector< std::shared_ptr< type_definition > > & chomik::type_definition_statement::get_vector_of_type_definitions ( ) const
inlineoverridevirtual

Reimplemented from chomik::statement.

◆ make_copy_with_replacements()

virtual void chomik::type_definition_statement::make_copy_with_replacements ( const machine & m,
const basic_generator & g,
const replacing_policy & p,
std::shared_ptr< statement > & target ) const
overridevirtual

Implements chomik::statement.

◆ report()

virtual void chomik::type_definition_statement::report ( std::ostream & s) const
overridevirtual

Implements chomik::statement.


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

copyright by Pawel Biernacki

Vantaa 2022