Struct RhsArgs

Inheritance Relationships

Base Type

Struct Documentation

struct RhsArgs : public AST::ASTNode

Public Functions

RhsArgs()
~RhsArgs()
unsigned long count()

Accessor for number of arguments in the node.

Return
Number of arguments

void add(ASTNode *new_node)

Checks whether there are any input arguments

Return
True if there are no arguments

void print_original_src(unsigned int indent_depth)
std::string generate_code(CodeGen::Settings &settings, unsigned indent_lvl, bool is_lhs) const

Not supported. Argument code must be generated specially.

Parameters
  • settings: Code generator settings
  • indent_lvl: Level of indentation

std::vector<std::string> *generate_args(CodeGen::Settings &settings, unsigned indent_lvl) const

Generates the source code for all arguments in the argument set.

Return
Vector containing the variables (usually temporary) for each argument in the array
Parameters
  • settings: Code generator settings
  • indent_lvl: Level of indentation in the generated code

bool perform_type_inference(TypeCheck::Settings &settings, Quack::Class *parent_type)

Implements type inference for a single note in the AST.

Return
True if type inference was successful.
Parameters
  • st: Symbol table for the method
  • return_type: Return type from the block
  • parent_type: Type of the parent node. If parent node has no type, then BASE_CLASS.

bool check_initialize_before_use(InitializedList &inits, InitializedList *all_inits, bool is_method)

Checks if the initialize before use test passes on the right subexpression.

Return
True if the initialized before use test passes for the right subexpression.
Parameters
  • inits: Set of initialized variables.

Public Members

std::vector<ASTNode *> args_