Go to the documentation of this file.
50 #define PRIORITY_VAR 6
51 #define PRIORITY_MUL 5
52 #define PRIORITY_ADD 4
53 #define PRIORITY_FUN 3
54 #define PRIORITY_CMP 2
55 #define PRIORITY_LOG 1
56 #define PRIORITY_CMD 0
58 #define PRIORITY_MAX PRIORITY_VAR
59 #define PRIORITY_MIN PRIORITY_CMD
70 #define OFFSET_DESCR1 8
71 #define OFFSET_ADDRESS 12
73 #define DESCR1(x) ((x)->unode.a[2])
74 #define DESCR2(x) ((x)->unode.a[3])
75 #define PARENT(x) (DESCR1(x)->unode.a[0])
76 #define NAME(x) (DESCR1(x)->unode.a[2])
77 #define ADDRESS(x) (DESCR1(x)->unode.n[3])
78 #define OFFSET(x) (DESCR1(x)->unode.n[3])
79 #define VALUE(x) (DESCR1(x)->unode.a[3])
80 #define LEVEL(x) (DESCR1(x)->unode.b[4])
81 #define CTYPE(x) (DESCR1(x)->unode.b[5])
82 #define PRIORITY(x) (DESCR1(x)->unode.b[5])
83 #define LARGS(x) (DESCR1(x)->unode.b[6])
84 #define RARGS(x) (DESCR1(x)->unode.b[7])
85 #define DEFINITIONS(x) (DESCR2(x)->unode.a[0])
86 #define FULLSOURCE(x) (CAR(DEFINITIONS(x)))
87 #define SOURCE(x) (CAR(CDR(DEFINITIONS(x))))
88 #define BODY(x) (CAR(CDR(CDR(DEFINITIONS(x)))))
89 #define TREE(x) (CAR(CDR(CDR(CDR(DEFINITIONS(x))))))
90 #define LOCALS(x) (DESCR2(x)->unode.a[1])
91 #define BINARY(x) (DESCR2(x)->unode.a[3])
92 #define VARTYPE(x) ((x)->unode.b[5])
93 #define VARCLASS(x) ((VARTYPE(x)-VAR_TYPE_EXTERNAL)&0x3F)
104 #define FLAG_PRIMITIVE 0x0001
105 #define FLAG_VARIABLE 0x0002
106 #define FLAG_FUNCTION 0x0004
107 #define FLAG_COMMAND 0x0008
109 #define FLAG_CAN_BE_UNARY 0x0010
110 #define FLAG_INFINITE_ARGS 0x0020
111 #define FLAG_MAY_SKIP_LAST_ARG 0x0040
112 #define FLAG_PROCESS_ARGS 0x0080
113 #define FLAG_PUSH_PARENT 0x0100
114 #define FLAG_SET_ONE_VAR 0x0200
115 #define FLAG_SET_ALL_VARS 0x0400
116 #define FLAG_MAY_HAVE_EXTRA_ARG 0x0800
117 #define FLAG_PUSH_FRAME 0x1000
118 #define FLAG_PRINT_VARS 0x2000
119 #define FLAG_EQUAL_VARS 0x4000
120 #define FLAG_PUSH_MODE 0x8000
121 #define ALL_VAR_FLAGS 0xFFFF
128 #define VAR_TYPE_NORMAL 0x00
129 #define VAR_TYPE_RUNTIME 0x01
130 #define VAR_TYPE_TAG 0x02
131 #define VAR_TYPE_EXTERNAL 0x80
132 #define VAR_TYPE_INTERNAL 0xC0
134 #define FLAG_PRIORITY_MUL 0x010000
135 #define FLAG_PRIORITY_ADD 0x020000
136 #define FLAG_PRIORITY_LOG 0x040000
137 #define FLAG_PRIORITY_CMP 0x080000
148 #define BASE_OFFSET_PARAMS 12
149 #define BASE_OFFSET_PARAMSCOUNT 8
150 #define BASE_OFFSET_DYNAMIC 0
151 #define BASE_OFFSET_STATIC -4
152 #define BASE_OFFSET_PARENT -8
153 #define BASE_OFFSET_REPEATCHAIN -12
154 #define BASE_OFFSET_TEST -16
155 #define BASE_OFFSET_LOCALS -20
165 #define LOGO_PLATFORM TEXT("Windows")
168 #define LOGO_PLATFORM TEXT("Linux")
171 #define LOGO_PLATFORM TEXT("Mac OS X")
173 #define LOGO_VERSION TEXT("0.0")
174 #define LOGO_DIALECT TEXT("Lhogho")
182 #define IS_PRIMITIVE(x) GET_FLAGS(x,FLAG_PRIMITIVE)
183 #define IS_VARIABLE(x) GET_FLAGS(x,FLAG_VARIABLE)
184 #define IS_FUNCTION(x) GET_FLAGS(x,FLAG_FUNCTION)
185 #define IS_COMMAND(x) GET_FLAGS(x,FLAG_COMMAND)
186 #define IS_VARATOM(x) (ID(x)==VAR_ID)
187 #define IS_UNBOUND(x) ((x)==unbound)
188 #define IS_STOPPED(x) ((x)==stopped)
189 #define IS_GLOBAL(x) (PARENT(x)==globals)
190 #define IS_NORMAL(x) (VARTYPE(x)==VAR_TYPE_NORMAL)
191 #define IS_TAG(x) (VARTYPE(x)==VAR_TYPE_TAG)
192 #define IS_RUNTIME(x) (VARTYPE(x)==VAR_TYPE_RUNTIME)
193 #define IS_EXTERNAL(x) ((VARTYPE(x)&0xC0)==VAR_TYPE_EXTERNAL)
194 #define IS_INTERNAL(x) ((VARTYPE(x)&0xC0)==VAR_TYPE_INTERNAL)
200 #define ROOT_VAR_NAME TEXT("%root%")
201 #define GLOBALS_VAR_NAME TEXT("%globals%")
245 #endif //LHOGHO_VARS_H
[ HOME | INDEX | ATOMS | VARS | REFERENCE ]
Lhogho Developer's Documentation
Wed Jul 10 2013