|
|
| IfExpr (GCMain &gc, const TokenPos &pos, Expr *condition, Expr *exprTrue, Expr *exprFalse) |
| |
| const Expr & | getCondition () const noexcept |
| | Condition of the if-then-else expression. More...
|
| |
| const Expr & | getTrue () const noexcept |
| |
|
const Expr & | getFalse () const noexcept |
| | Evaluated if condition evaluated to the atom .true.
|
| |
| virtual std::string | toString () const noexcept override |
| |
|
virtual void | mark (GCMain &gc) noexcept override |
| | Mark self, condition, exprTrue and exprFalse.
|
| |
| virtual Expr * | eval (GCMain &gc, Environment &env) noexcept override |
| | Evaluates expression one time. More...
|
| |
| virtual Expr * | replace (GCMain &gc, const std::string &name, Expr *expr) const noexcept override |
| | Replace all identifiers equal to name with expr. More...
|
| |
| virtual bool | equals (const Expr *expr, bool exact=false) const noexcept override |
| | Checks if this expression and expr have the same structure, Every expression has the same structure as '_' (it's called ANY after all). More...
|
| |
| virtual std::vector< std::string > | getIdentifiers () const noexcept override |
| |
| virtual Expr * | optimize (GCMain &gc) noexcept override |
| |
|
virtual Expr * | optimize (GCMain &gc, std::vector< Expr * > &exprs) noexcept |
| |
|
| Expr (GCMain &gc, ExprType type, const TokenPos &pos) |
| |
|
std::size_t | getDepth () const noexcept |
| |
| bool | hasLastEval () const noexcept |
| |
| const TokenPos & | getTokenPos () const noexcept |
| |
| ExprType | getExpressionType () const noexcept |
| |
| Expr * | evalWithLookup (GCMain &gc, Environment &env) noexcept |
| |
|
| GCObj (GCMain &main) noexcept |
| | Initialize as not marked.
|
| |
| virtual bool | isMarked (GCMain &main) const noexcept |
| |
If-then-else expression.
if \<expr_condition\> then \<expr_true\> else \<expr_false\>