aboutsummaryrefslogtreecommitdiff
path: root/lib/evvexpr.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /lib/evvexpr.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'lib/evvexpr.h')
-rw-r--r--lib/evvexpr.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/evvexpr.h b/lib/evvexpr.h
new file mode 100644
index 00000000..c37ded5f
--- /dev/null
+++ b/lib/evvexpr.h
@@ -0,0 +1,24 @@
+# EVVEXPR.H -- Expression evaluation definitions; operand structure.
+
+define LEN_OPERAND 6 # size of operand structure
+define NTYPES 7 # bcsilrd, bool stored as int
+define YYOPLEN LEN_OPERAND # for the parser
+
+define O_TYPE Memi[($1)] # operand type
+define O_LEN Memi[($1)+1] # operand length, if array
+define O_FLAGS Memi[($1)+2] # flag bits
+ # align
+define O_VALC Memc[Memi[($1)+4]] # string val (in string buffer)
+define O_VALS Mems[P2S(($1)+4)] # short int value
+define O_VALI Memi[($1)+4] # bool or int value
+define O_VALL Meml[P2L(($1)+4)] # long int value
+define O_VALR Memr[P2R(($1)+4)] # real value
+define O_VALD Memd[P2D(($1)+4)] # double value
+define O_VALP Memi[($1)+4] # pointer
+
+# Operand flags.
+define O_FREEVAL 000001 # free data vector
+define O_FREEOP 000002 # free operand struct
+
+# evvexpr flags.
+define EV_RNGCHK 000001 # divzero etc.