Skip to content

ValueExpression

class ValueExpression

Expression node representing a Value.

DEFINITION
class ValueExpression;

constructor ValueExpression

Create a value expression.

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

The location of the expression.

value

The value of the expression.

constructor ValueExpression

Create a value expression with an unsigned integer value.

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

The location of the expression.

value

The unsigned integer value of the expression.

constructor ValueExpression

Create a value expression from a token.

DEFINITION
ValueExpression ( const Token & token );
PARAMETERDESCRIPTION
token

The token to create the expression from.

THROWSDESCRIPTION
Exception

if the token is not a value or string token.

method evaluatedconstvirtual

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

method has_valueconstvirtual

Check if the expression has already been fully evaluated and has a value.

DEFINITION
virtual bool  has_value ( ) const;
RETURNSDESCRIPTION
bool

true if the expression has a value, false otherwise.

method maximum_valueconstvirtual

Get the maximum possible value of the expression if it can be determined.

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

The maximum possible value of the expression.

method minimum_valueconstvirtual

Get the minimum possible value of the expression if it can be determined.

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

The minimum possible value of the expression.

method serialize_subconstvirtual

Serialize the expression to a stream.

This method must be implemented by derived classes.

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

The stream to serialize to.

method typeconstvirtual

Get the type of the expression's value if it can be determined.

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

The type of the expression's value.

method valueconstvirtual

Get the value of the expression if it has one.

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

The value of the expression.