#include <error.h>
Inheritance diagram for expression_error:

Public Member Functions | |
| virtual | ~expression_error () |
| expression_error (const location &loc) | |
Protected Member Functions | |
| void | traversal (int pprec) |
| int | get_precedence () const |
| type::pointer | get_type () const |
| bool | is_lvalue () const |
| side_effect_t | has_side_effect () const |
| void | logical_traversal (int pprec, label::pointer &true_branch, label::pointer &false_branch, bool fall_through_preference) |
| expression::pointer | assignment_expression_factory (const expression::pointer &rhs) |
| expression::pointer | function_call_expression_factory (expression_list *args) |
| expression::pointer | dot_expression_factory (const variable_name &member_name) |
| expression::pointer | optimize () const |
Private Member Functions | |
| expression_error () | |
| expression_error (const expression_error &) | |
| expression_error & | operator= (const expression_error &) |
Definition at line 31 of file error.h.
| virtual expression_error::~expression_error | ( | ) | [virtual] |
The destructor.
| expression_error::expression_error | ( | const location & | loc | ) |
The constructor.
| expression_error::expression_error | ( | ) | [private] |
The default constructor. Do not use.
| expression_error::expression_error | ( | const expression_error & | ) | [private] |
The copy constructor. Do not use.
| void expression_error::traversal | ( | int | pprec | ) | [protected, virtual] |
The traversal method may be used to traverse each of the declaractions in the list.
| pprec | The precedence of the parent expression node. |
Implements expression.
| int expression_error::get_precedence | ( | ) | const [protected, virtual] |
The get_precedence method is used to obtain the precedence of this expression node.
The highest precedence has the highest absolute value, the lowest precedence gets the lowest absolute value.
Implements expression.
| type::pointer expression_error::get_type | ( | ) | const [protected, virtual] |
The get_type method is used to get the type of this expression.
Implements expression.
| bool expression_error::is_lvalue | ( | ) | const [protected, virtual] |
The is_lvalue method is used to determine whether or not this expression is suitable to appear on the left hand side of an assignment expression.
Implements expression.
| side_effect_t expression_error::has_side_effect | ( | ) | const [protected, virtual] |
The has_side_effect method is used to determine if an expression has any effect. It is used by the parse to produce "statement with no effect" warnings.
Implements expression.
| void expression_error::logical_traversal | ( | int | pprec, | |
| label::pointer & | true_branch, | |||
| label::pointer & | false_branch, | |||
| bool | fall_through_preference | |||
| ) | [protected] |
| expression::pointer expression_error::assignment_expression_factory | ( | const expression::pointer & | rhs | ) | [protected] |
| expression::pointer expression_error::function_call_expression_factory | ( | expression_list * | args | ) | [protected, virtual] |
The function_call_expression_factory method is used by the function_call_expression method to build a function call expression node.
The default implementation prints and error saying that the left hand side of the function_call is inappropriate.
| args | All of the arguments of the function call, including the function name as the first argument (usually [0] == this). |
Reimplemented from expression.
| expression::pointer expression_error::dot_expression_factory | ( | const variable_name & | member_name | ) | [protected] |
| expression::pointer expression_error::optimize | ( | ) | const [protected, virtual] |
The optimize method may be used to evaluate constant expressions, or substitute more efficient expressions.
This is intended to be called by the translator:: expression_statement method, or similar, where the expression is in its final form, and will get no deeper. In other words, when all available information has been provided.
There is no default implementation, even though most optimize implementations return self(), because this gives the compiler no opportunity to remind the authors of new classes that they have forgotten something.
Implements expression.
| expression_error& expression_error::operator= | ( | const expression_error & | ) | [private] |
The assignment operator. Do not use.
1.5.1