ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
Public Fields | Public Methods | List of all members
ASTFunction Struct Reference

#include <ast.hpp>

Inheritance diagram for ASTFunction:
[legend]
Collaboration diagram for ASTFunction:
[legend]

Class Description

Abstract syntax tree node representing a function call.

Definition at line 202 of file ast.hpp.

Public Fields

List< AST * > Arguments
 The argument nodes.
 
String Name
 The function name as parsed.
 
- Public Fields inherited from AST
Types NodeType
 
integer Position
 

Public Methods

 ASTFunction (const String name, integer position, MonoAllocator &pAllocator)
 
virtual ~ASTFunction () override
 
virtual void Assemble (Program &program, MonoAllocator &allocator, AString &normalized) override
 
virtual ASTOptimize (Normalization normalization) override
 
- Public Methods inherited from AST
 AST ()=delete
 
 AST (Types type, integer position)
 
virtual ~AST ()
 

Additional Inherited Members

- Public Types inherited from AST
enum  Types {
  Literal, Identifier, Function, UnaryOp,
  BinaryOp, TernaryOp
}
 

Constructor & Destructor Documentation

◆ ASTFunction()

ASTFunction ( const String  name,
integer  position,
MonoAllocator pAllocator 
)
inlineexplicit

Constructor providing name, but not arguments, yet.

Parameters
nameThe name of the function
positionThe index of this AST in the expression string.
pAllocatorAllocator used to clone the given name and for storing arguments.

Definition at line 214 of file ast.hpp.

◆ ~ASTFunction()

virtual ~ASTFunction ( )
inlineoverridevirtual

Virtual destructor.

Definition at line 223 of file ast.hpp.

Member Function Documentation

◆ Assemble()

void Assemble ( Program program,
MonoAllocator allocator,
AString normalized 
)
overridevirtual

Implements abstract method.

Parameters
programThe program to be compiled.
allocatorAn allocator usable for temporary objects.
[out]normalizedThe normalized string, built during recursive compilation of the AST.

Implements AST.

Definition at line 192 of file ast.cpp.

Here is the call graph for this function:

◆ Optimize()

AST * Optimize ( Normalization  normalization)
overridevirtual

Implements abstract method.

Parameters
normalizationThe compiler flags denoting the normalization settings.
Returns
A potentially replaced AST or itself.

Implements AST.

Definition at line 65 of file ast.cpp.

Here is the call graph for this function:

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