106 AString & normalized )
override;
134 AString & normalized )
override;
155 ,
Name (pAllocator, name )
168 AString & normalized )
override;
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace alib.
lang::integer integer
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
boxing::Box Box
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
containers::List< TAllocator, T, TRecycling > List
Type alias in namespace alib.
@ Identifier
An identifier.
@ UnaryOp
A unary operator.
@ BinaryOp
A binary operator.
@ TernaryOp
A ternary operator.
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized) override
virtual AST * Optimize(Normalization normalization) override
ASTBinaryOp(const String &op, AST *lhs, AST *rhs, integer position)
AST * Lhs
The left-hand-side expression node.
virtual ~ASTBinaryOp() override
Virtual destructor.
String Operator
The operator symbol.
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized) override
ASTConditional(AST *q, AST *t, AST *f, integer position, integer colonPosition)
integer ColonPosition
The index of the colon in the expression string.
virtual ~ASTConditional() override
Virtual destructor.
virtual AST * Optimize(Normalization normalization) override
virtual ~ASTFunction() override
Virtual destructor.
ASTFunction(const String name, integer position, MonoAllocator &pAllocator)
List< MonoAllocator, AST * > Arguments
The argument nodes.
String Name
The function name as parsed.
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized) override
virtual AST * Optimize(Normalization normalization) override
ASTIdentifier(const String &name, integer position)
String Name
The name of the identifier as parsed from the expression string.
virtual AST * Optimize(Normalization normalization) override
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized) override
ASTLiteral(integer value, integer position, NFHint hint=NFHint::NONE)
ASTLiteral(double value, integer position, NFHint hint=NFHint::NONE)
@ Scientific
Float was given in scientific format.
@ Hexadecimal
Integral value was given in hexadecimal format.
@ Binary
Integral value was given in binary format.
@ Octal
Integral value was given in octal format.
Box Value
The value of the literal.
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized) override
ASTLiteral(const String &string, integer position)
virtual AST * Optimize(Normalization normalization) override
NFHint Format
Format hints.
ASTUnaryOp(const String &op, AST *argument, integer position)
virtual AST * Optimize(Normalization normalization) override
AST * Argument
The argument node.
virtual ~ASTUnaryOp() override
Virtual destructor.
String Operator
The operator symbol.
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized) override
virtual AST * Optimize(Normalization normalization)=0
virtual ~AST()
Virtual destructor.
integer Position
Position in the original expression string.
AST(Types type, integer position)
AST()=delete
Deleted default constructor.
virtual void Assemble(Program &program, MonoAllocator &allocator, AString &normalized)=0