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

#include <ast.hpp>

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

Class Description

Abstract syntax tree node representing unary operators.

Definition at line 247 of file ast.hpp.

Public Fields

ASTArgument
 The argument node.
 
String Operator
 The operator symbol.
 
- Public Fields inherited from AST
Types NodeType
 
integer Position
 

Public Methods

 ASTUnaryOp (const String &op, AST *argument, integer position)
 
virtual ~ASTUnaryOp () 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

◆ ASTUnaryOp()

ASTUnaryOp ( const String op,
AST argument,
integer  position 
)
inlineexplicit

Constructor providing all fields.

Parameters
opThe operator symbol.
argumentThe argument of the operator.
positionThe index of this AST in the expression string.

Definition at line 259 of file ast.hpp.

◆ ~ASTUnaryOp()

virtual ~ASTUnaryOp ( )
inlineoverridevirtual

Virtual destructor.

Definition at line 267 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 289 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 89 of file ast.cpp.

Here is the call graph for this function:

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