X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=expr.h;h=517c4a04158f16c49622130a5bc335ba7c830f13;hp=89542a588601c659d0cb67b866c23662b6e2e261;hb=66b362fa203d0850e8dce8045adb454e354c22ce;hpb=75cce0d9eb190f6094f66ae283b5981af25e5a57 diff --git a/expr.h b/expr.h index 89542a5..517c4a0 100644 --- a/expr.h +++ b/expr.h @@ -1,9 +1,9 @@ // -// RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System +// RMAC - Reboot's Macro Assembler for all Atari computers // EXPR.H - Expression Analyzer -// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2018 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 -// Source Utilised with the Kind Permission of Landon Dyer +// Source utilised with the kind permission of Landon Dyer // #ifndef __EXPR_H__ @@ -12,29 +12,31 @@ #include "rmac.h" // Tunable definitions -#define STKSIZE 64 // Size of expression stacks -#define EVSTACKSIZE 64 // Expression evaluator stack size +#define STKSIZE 64 // Size of expression stacks +#define EVSTACKSIZE 64 // Expression evaluator stack size // Token classes in order of precedence -#define END 0 // End/beginning of input -#define ID 1 // Symbol or constant -#define OPAR 2 // ( -#define CPAR 3 // ) -#define SUNARY 4 // Special unary (^^defined, etc.) -#define UNARY 5 // Unary class: ! ~ - -#define MULT 6 // Multiplicative class: * / % -#define ADD 7 // Additive class: + - -#define SHIFT 8 // Shift class: << >> -#define REL 9 // Relational class: <= >= < > <> = != -#define AND 10 // Bitwise and: & -#define XOR 11 // Bitwise xor: ^ -#define OR 12 // Bitwise or: | +#define END 0 // End/beginning of input +#define ID 1 // Symbol or constant +#define OPAR 2 // ( +#define CPAR 3 // ) +#define SUNARY 4 // Special unary (^^defined, etc.) +#define UNARY 5 // Unary class: ! ~ - +#define MULT 6 // Multiplicative class: * / % +#define ADD 7 // Additive class: + - +#define SHIFT 8 // Shift class: << >> +#define REL 9 // Relational class: <= >= < > <> = != +#define AND 10 // Bitwise and: & +#define XOR 11 // Bitwise xor: ^ +#define OR 12 // Bitwise or: | -// Prototypes -void init_expr(void); +// Exported functions +void InitExpression(void); int expr1(void); int expr2(void); -int expr(TOKEN *, VALUE *, WORD *, SYM **); -int evexpr(TOKEN *, VALUE *, WORD *, SYM **); +int expr(TOKEN *, uint64_t *, WORD *, SYM **); +int evexpr(TOKEN *, uint64_t *, WORD *, SYM **); +uint16_t ExpressionLength(TOKEN *); + +#endif // __EXPR_H__ -#endif // __EXPR_H__ \ No newline at end of file