Skip to content

Expression

class Expression

Represents an expression. This is the class other parts of the program interact with. It is a wrapper around the BaseExpression hierarchy.

DEFINITION
class Expression;

enum BinaryOperation

DEFINITION
enum BinaryOperation;
VALUEDESCRIPTION
ADD
BITWISE_AND
BITWISE_OR
BITWISE_XOR
DIVIDE
EQUAL
GREATER
GREATER_EQUAL
LESS
LESS_EQUAL
LOGICAL_AND
LOGICAL_OR
MODULO
MULTIPLY
NOT_EQUAL
SHIFT_LEFT
SHIFT_RIGHT
SUBTRACT

enum UnaryOperation

DEFINITION
enum UnaryOperation;
VALUEDESCRIPTION
BANK_BYTE
BITWISE_NOT
HIGH_BYTE
LOW_BYTE
MINUS
NOT
PLUS

constructor Expression

DEFINITION
Expression ( );

constructor Expression

DEFINITION
Expression ( std::shared_ptr< BaseExpression >  expression );
PARAMETERDESCRIPTION
expression

constructor Expression

DEFINITION
Expression ( const Location & location,
const Expression & left,
BinaryOperation  operation,
const Expression & right );
PARAMETERDESCRIPTION
location
left
operation
right

constructor Expression

DEFINITION
Expression ( const Location & location,
Symbol  name );
PARAMETERDESCRIPTION
location
name

constructor Expression

DEFINITION
Expression ( const Location & location,
Symbol  name,
const std::vector< Expression > & arguments );
PARAMETERDESCRIPTION
location
name
arguments

constructor Expression

DEFINITION
Expression ( const Location & location,
Object * object );
PARAMETERDESCRIPTION
location
object

constructor Expression

DEFINITION
Expression ( const Location & location,
const Entity * object,
Symbol  label_name,
const SizeRange & offset = SizeRange(0, {}),
const SizeRange & scope_offset = SizeRange(0, {}),
bool  keep = false );
PARAMETERDESCRIPTION
location
object
label_name
offset
scope_offset
keep

constructor Expression

DEFINITION
Expression ( const Location & location,
Symbol  object_name,
Symbol  label_name,
const SizeRange & offset = SizeRange(0, {}) );
PARAMETERDESCRIPTION
location
object_name
label_name
offset

constructor Expression

DEFINITION
Expression ( const Location & location,
UnaryOperation  operation,
const Expression & operand );
PARAMETERDESCRIPTION
location
operation
operand

constructor Expression

DEFINITION
Expression ( const Location & location,
LabelExpressionType  type,
size_t  unnamed_index = std::numeric_limits< size_t >::max(),
const SizeRange & offset = SizeRange(0, {}) );
PARAMETERDESCRIPTION
location
type
unnamed_index
offset

constructor Expression

DEFINITION
Expression ( const Location & location,
bool  value );
PARAMETERDESCRIPTION
location
value

constructor Expression

DEFINITION
Expression ( const Location & location,
uint64_t  value );
PARAMETERDESCRIPTION
location
value

constructor Expression

DEFINITION
Expression ( const Location & location,
const Value & value );
PARAMETERDESCRIPTION
location
value

constructor Expression

DEFINITION
Expression ( Tokenizer & tokenizer );
PARAMETERDESCRIPTION
tokenizer

constructor Expression

DEFINITION
Expression ( const Token & value );
PARAMETERDESCRIPTION
value

method as_binaryconst

DEFINITION
const BinaryExpression * as_binary ( ) const;
RETURNSDESCRIPTION
const BinaryExpression *

method as_objectconst

DEFINITION
const ObjectExpression * as_object ( ) const;
RETURNSDESCRIPTION
const ObjectExpression *

method as_object_nameconst

DEFINITION
const ObjectNameExpression * as_object_name ( ) const;
RETURNSDESCRIPTION
const ObjectNameExpression *

method as_variableconst

DEFINITION
const VariableExpression * as_variable ( ) const;
RETURNSDESCRIPTION
const VariableExpression *

method collect_objectsconst

DEFINITION
void  collect_objects ( std::unordered_set< Object * > & variables ) const;
PARAMETERDESCRIPTION
variables

method evaluate

DEFINITION
bool  evaluate ( const EvaluationContext & context );
PARAMETERDESCRIPTION
context
RETURNSDESCRIPTION
bool

method evaluatedconst

DEFINITION
std::optional< Expression >  evaluated ( const EvaluationContext & context ) const;
PARAMETERDESCRIPTION
context
RETURNSDESCRIPTION
std::optional< Expression >

method get_expressionconst

DEFINITION
std::shared_ptr< BaseExpression >  get_expression ( ) const;
RETURNSDESCRIPTION
std::shared_ptr< BaseExpression >

method has_valueconst

DEFINITION
bool  has_value ( ) const;
RETURNSDESCRIPTION
bool

method is_binaryconst

DEFINITION
bool  is_binary ( ) const;
RETURNSDESCRIPTION
bool

method is_objectconst

DEFINITION
bool  is_object ( ) const;
RETURNSDESCRIPTION
bool

method is_object_nameconst

DEFINITION
bool  is_object_name ( ) const;
RETURNSDESCRIPTION
bool

method is_uniqueconst

DEFINITION
bool  is_unique ( ) const;
RETURNSDESCRIPTION
bool

method is_variableconst

DEFINITION
bool  is_variable ( ) const;
RETURNSDESCRIPTION
bool

method locationconst

DEFINITION
const Location & location ( ) const;
RETURNSDESCRIPTION
const Location &

method maximum_valueconst

DEFINITION
std::optional< Value >  maximum_value ( ) const;
RETURNSDESCRIPTION
std::optional< Value >

method minimum_valueconst

DEFINITION
std::optional< Value >  minimum_value ( ) const;
RETURNSDESCRIPTION
std::optional< Value >

method serializeconst

DEFINITION
void  serialize ( std::ostream & stream ) const;
PARAMETERDESCRIPTION
stream

method typeconst

DEFINITION
std::optional< Value::Type >  type ( ) const;
RETURNSDESCRIPTION
std::optional< Value::Type >

method valueconst

DEFINITION
std::optional< Value >  value ( ) const;
RETURNSDESCRIPTION
std::optional< Value >

method variable_nameconst

DEFINITION
Symbol  variable_name ( ) const;
RETURNSDESCRIPTION
Symbol