ObjectNameExpression
class ObjectNameExpression
Represents an expression referring to the name of the current object.
constructor ObjectNameExpression
| ObjectNameExpression | ( | const Location & location | ); |
| PARAMETER | DESCRIPTION |
|---|---|
location |
method createstatic
| static Expression create | ( | const Location & location, | |
| Object * object | ); |
| PARAMETER | DESCRIPTION |
|---|---|
location |
|
object |
| RETURNS | DESCRIPTION |
|---|---|
Expression |
method evaluatevirtual
Evaluate the expression in the given context.
The default implementation calls evaluate() on all sub-expressions using traverse(), and then calls evaluate_process().
Errors during evaluation should either be reported via DiagnosticOutput and result in the expression being marked as invalid, or an exception should be thrown.
| virtual std::optional< Expression > evaluate | ( | const EvaluationContext & context | ); |
| PARAMETER | DESCRIPTION |
|---|---|
context |
The evaluation context. |
| RETURNS | DESCRIPTION |
|---|---|
std::optional< Expression > |
The Expression to replace this expression with, {} if no replacement is needed. |
method serialize_subconst virtual
Serialize the expression to a stream.
This method must be implemented by derived classes.
| virtual void serialize_sub | ( | std::ostream & stream | ) const; |
| PARAMETER | DESCRIPTION |
|---|---|
stream |
The stream to serialize to. |
method typeconst virtual
Get the type of the expression's value.
The default implementation returns the type of the value of the expression if it is known, or {} otherwise. Subclasses should override this method if they can determine the type of the expression without knowing the exact value of the expression.
| virtual std::optional< Value::Type > type | ( | ) const; |
| RETURNS | DESCRIPTION |
|---|---|
std::optional< Value::Type > |
The type of the expression's value if it can be determined, {} otherwise. |