X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Fexpr.h;h=acf442986c576b91379c7be6beae399773a7aab1;hb=763a35911411adbe46e07b57b6161205a51e16b6;hp=3398e7c278cc55732134740ff2abdbba21fc0891;hpb=81f94afd5ca9e84124d4743d1c631c028e6be754;p=cc65 diff --git a/src/cc65/expr.h b/src/cc65/expr.h index 3398e7c27..acf442986 100644 --- a/src/cc65/expr.h +++ b/src/cc65/expr.h @@ -18,85 +18,70 @@ /*****************************************************************************/ -/* code */ +/* code */ /*****************************************************************************/ -void PushAddr (ExprDesc* lval); +void PushAddr (const ExprDesc* Expr); /* If the expression contains an address that was somehow evaluated, * push this address on the stack. This is a helper function for all * sorts of implicit or explicit assignment functions where the lvalue * must be saved if it's not constant, before evaluating the rhs. */ -void ConstSubExpr (int (*F) (ExprDesc*), ExprDesc* Expr); -/* Will evaluate an expression via the given function. If the result is not - * a constant, a diagnostic will be printed, and the value is replaced by - * a constant one to make sure there are no internal errors that result - * from this input error. - */ - -void CheckBoolExpr (ExprDesc* lval); -/* Check if the given expression is a boolean expression, output a diagnostic - * if not. - */ - -void exprhs (unsigned flags, int k, ExprDesc *lval); +void ExprLoad (unsigned flags, ExprDesc* Expr); /* Put the result of an expression into the primary register */ -void Store (ExprDesc* lval, const type* StoreType); +void Store (ExprDesc* Expr, const type* StoreType); /* Store the primary register into the location denoted by lval. If StoreType * is given, use this type when storing instead of lval->Type. If StoreType * is NULL, use lval->Type instead. */ -int hie0 (ExprDesc *lval); +void hie0 (ExprDesc* Expr); /* Parse comma operator. */ -int evalexpr (unsigned flags, int (*f) (ExprDesc*), ExprDesc* lval); +int evalexpr (unsigned flags, void (*Func) (ExprDesc*), ExprDesc* Expr); /* Will evaluate an expression via the given function. If the result is a * constant, 0 is returned and the value is put in the lval struct. If the - * result is not constant, exprhs is called to bring the value into the + * result is not constant, ExprLoad is called to bring the value into the * primary register and 1 is returned. */ -void expression1 (ExprDesc* lval); -/* Evaluate an expression on level 1 (no comma operator) and put it into - * the primary register - */ - -void expression (ExprDesc* lval); -/* Evaluate an expression and put it into the primary register */ +void Expression0 (ExprDesc* Expr); +/* Evaluate an expression via hie0 and put the result into the primary register */ -void ConstExpr (ExprDesc* lval); -/* Get a constant value */ +void ConstExpr (void (*Func) (ExprDesc*), ExprDesc* Expr); +/* Will evaluate an expression via the given function. If the result is not + * a constant of some sort, a diagnostic will be printed, and the value is + * replaced by a constant one to make sure there are no internal errors that + * result from this input error. + */ -void ConstIntExpr (ExprDesc* Val); -/* Get a constant int value */ +void BoolExpr (void (*Func) (ExprDesc*), ExprDesc* Expr); +/* Will evaluate an expression via the given function. If the result is not + * something that may be evaluated in a boolean context, a diagnostic will be + * printed, and the value is replaced by a constant one to make sure there + * are no internal errors that result from this input error. + */ -void intexpr (ExprDesc* lval); -/* Get an integer expression */ +void ConstAbsIntExpr (void (*Func) (ExprDesc*), ExprDesc* Expr); +/* Will evaluate an expression via the given function. If the result is not + * a constant numeric integer value, a diagnostic will be printed, and the + * value is replaced by a constant one to make sure there are no internal + * errors that result from this input error. + */ -int hie10 (ExprDesc* lval); +void hie10 (ExprDesc* lval); /* Handle ++, --, !, unary - etc. */ -int hie1 (ExprDesc* lval); +void hie1 (ExprDesc* lval); /* Parse first level of expression hierarchy. */ void DefineData (ExprDesc* lval); /* Output a data definition for the given expression */ -void Test (unsigned Label, int Invert); -/* Evaluate a boolean test expression and jump depending on the result of - * the test and on Invert. - */ - -void TestInParens (unsigned Label, int Invert); -/* Evaluate a boolean test expression in parenthesis and jump depending on - * the result of the test * and on Invert. - */ - /* End of expr.h */