ALib C++ Library
Library Version: 2510 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::expressions::detail::ASTConditional Struct Reference

Description:

Abstract syntax tree node representing ternary operator Q ? T : F.

Definition at line 243 of file ast_impl.inl.

Inheritance diagram for alib::expressions::detail::ASTConditional:
[legend]
Collaboration diagram for alib::expressions::detail::ASTConditional:
[legend]

Public Field Index:

integer ColonPosition
 The index of the colon in the expression string.
 
ASTF
 The false-result.
 
ASTQ
 The question.
 
ASTT
 The true-result.
 
- Public Field Index: inherited from alib::expressions::detail::AST
integer Position
 Position in the original expression string.
 
- Public Field Index: inherited from alib::expressions::detail::ASTBase
Types NodeType
 Type of derived this AST node.
 

Public Method Index:

 ASTConditional (AST *q, AST *t, AST *f, integer position, integer colonPosition)
 
virtual ~ASTConditional () override
 Virtual destructor.
 
virtual void Assemble (Program &program, MonoAllocator &allocator, AString &normalized) override
 
virtual ASTOptimize (Normalization normalization) override
 
- Public Method Index: inherited from alib::expressions::detail::AST
 AST ()=delete
 Deleted default constructor.
 
 AST (Types type, integer position)
 
virtual ~AST ()
 Virtual destructor.
 
- Public Method Index: inherited from alib::expressions::detail::ASTBase
 ASTBase (Types type)
 

Additional Inherited Members

- Public Type Index: inherited from alib::expressions::detail::ASTBase
enum class  Types {
  Literal , Identifier , Function , UnaryOp ,
  BinaryOp , TernaryOp
}
 The type of node. More...
 

Field Details:

◆ ColonPosition

integer alib::expressions::detail::ASTConditional::ColonPosition

The index of the colon in the expression string.

Definition at line 248 of file ast_impl.inl.

◆ F

AST* alib::expressions::detail::ASTConditional::F

The false-result.

Definition at line 247 of file ast_impl.inl.

◆ Q

AST* alib::expressions::detail::ASTConditional::Q

The question.

Definition at line 245 of file ast_impl.inl.

◆ T

AST* alib::expressions::detail::ASTConditional::T

The true-result.

Definition at line 246 of file ast_impl.inl.

Constructor(s) / Destructor Details:

◆ ASTConditional()

alib::expressions::detail::ASTConditional::ASTConditional ( AST * q,
AST * t,
AST * f,
integer position,
integer colonPosition )
inlineexplicit

Constructor providing all fields.

Parameters
qThe question.
tThe true-result.
fThe false-result.
positionThe index of the question mark in the expression string.
colonPositionThe index of the colon in the expression string.

Definition at line 257 of file ast_impl.inl.

Here is the call graph for this function:

◆ ~ASTConditional()

virtual alib::expressions::detail::ASTConditional::~ASTConditional ( )
inlineoverridevirtual

Virtual destructor.

Definition at line 264 of file ast_impl.inl.

Method Details:

◆ Assemble()

void alib::expressions::detail::ASTConditional::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 alib::expressions::detail::AST.

Definition at line 539 of file ast.cpp.

Here is the call graph for this function:

◆ Optimize()

AST * alib::expressions::detail::ASTConditional::Optimize ( Normalization normalization)
overridevirtual

Implements abstract method.

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

Implements alib::expressions::detail::AST.

Definition at line 76 of file ast.cpp.

Here is the call graph for this function:

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