aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_LSL_tree.h
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-07 19:03:16 +1000
committerDavid Walter Seikel2012-01-07 19:03:16 +1000
commit896b92c3564a572da103fb50f5bc3fa347983196 (patch)
treefdf41f81e37c64f39e89fded029f5422821d3358 /LuaSL/src/LuaSL_LSL_tree.h
parentMake the parser more generic with function pointers and a big arse table. (diff)
downloadSledjHamr-896b92c3564a572da103fb50f5bc3fa347983196.zip
SledjHamr-896b92c3564a572da103fb50f5bc3fa347983196.tar.gz
SledjHamr-896b92c3564a572da103fb50f5bc3fa347983196.tar.bz2
SledjHamr-896b92c3564a572da103fb50f5bc3fa347983196.tar.xz
Evaluate expressions using the new token table.
Diffstat (limited to '')
-rw-r--r--LuaSL/src/LuaSL_LSL_tree.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/LuaSL/src/LuaSL_LSL_tree.h b/LuaSL/src/LuaSL_LSL_tree.h
index 1c6710d..0d49737 100644
--- a/LuaSL/src/LuaSL_LSL_tree.h
+++ b/LuaSL/src/LuaSL_LSL_tree.h
@@ -182,9 +182,15 @@ typedef union LSL_Leaf
182 LSL_Script *scriptValue; 182 LSL_Script *scriptValue;
183} LSL_Leaf; 183} LSL_Leaf;
184 184
185typedef struct
186{
187 LSL_Type type;
188 LSL_Leaf content;
189} LSL_Value;
190
185typedef void (*convertToken2Lua) (LSL_Leaf *content); 191typedef void (*convertToken2Lua) (LSL_Leaf *content);
186typedef void (*outputToken) (LSL_Leaf *content); 192typedef void (*outputToken) (LSL_Leaf *content);
187typedef LSL_Leaf *(*evaluateToken) (LSL_Leaf *content, LSL_Type oldType, LSL_Leaf *old); 193typedef void (*evaluateToken) (LSL_Leaf *content, LSL_Value *result);
188 194
189typedef struct 195typedef struct
190{ 196{
@@ -208,7 +214,6 @@ typedef struct LSL_Expression
208 struct LSL_Expression *left; 214 struct LSL_Expression *left;
209 struct LSL_Expression *right; 215 struct LSL_Expression *right;
210 LSL_Token *token; 216 LSL_Token *token;
211 LSL_Type type;
212 LSL_Leaf content; 217 LSL_Leaf content;
213} LSL_Expression; 218} LSL_Expression;
214 219
@@ -219,7 +224,6 @@ typedef struct LSL_AST
219 int line; 224 int line;
220 int character; 225 int character;
221 LSL_Token *token; 226 LSL_Token *token;
222 LSL_Type type;
223 LSL_Leaf content; 227 LSL_Leaf content;
224} LSL_AST; 228} LSL_AST;
225 229