aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_LSL_tree.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-16 05:36:59 +1000
committerDavid Walter Seikel2012-01-16 05:36:59 +1000
commitdb420ae1d5147c32b1395d357ad40778efc400a8 (patch)
treeabda3c85788eed29e0a266e12eab0e0e1cd27e57 /LuaSL/src/LuaSL_LSL_tree.c
parentWe need an untyped function declaration, but it conflicts, so leave it commen... (diff)
downloadSledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.zip
SledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.tar.gz
SledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.tar.bz2
SledjHamr-db420ae1d5147c32b1395d357ad40778efc400a8.tar.xz
Make things more robust against a half arsed parser.
Diffstat (limited to 'LuaSL/src/LuaSL_LSL_tree.c')
-rw-r--r--LuaSL/src/LuaSL_LSL_tree.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/LuaSL/src/LuaSL_LSL_tree.c b/LuaSL/src/LuaSL_LSL_tree.c
index a0490c9..0f9013a 100644
--- a/LuaSL/src/LuaSL_LSL_tree.c
+++ b/LuaSL/src/LuaSL_LSL_tree.c
@@ -290,7 +290,8 @@ LSL_Leaf *addParenthesis(LSL_Leaf *lval, LSL_Leaf *expr, LSL_Leaf *rval)
290 if (lval) 290 if (lval)
291 { 291 {
292 lval->value.parenthesis = parens; 292 lval->value.parenthesis = parens;
293 lval->basicType = expr->basicType; 293 if (expr)
294 lval->basicType = expr->basicType;
294 } 295 }
295 } 296 }
296 return lval; 297 return lval;
@@ -311,19 +312,20 @@ LSL_Leaf *addStatement(LSL_Leaf *lval, LSL_Type type, LSL_Leaf *expr)
311 return lval; 312 return lval;
312} 313}
313 314
314LSL_Leaf *addTypecast(LSL_Leaf *lval, LSL_Leaf *type, LSL_Leaf *rval) 315LSL_Leaf *addTypecast(LSL_Leaf *lval, LSL_Leaf *type, LSL_Leaf *rval, LSL_Leaf *expr)
315{ 316{
316 LSL_Parenthesis *parens = malloc(sizeof(LSL_Parenthesis)); 317 LSL_Parenthesis *parens = malloc(sizeof(LSL_Parenthesis));
317 318
318 if (parens) 319 if (parens)
319 { 320 {
320 parens->left = lval; 321 parens->left = lval;
321 parens->expression = type; 322 parens->expression = expr;
322 parens->right = rval; 323 parens->right = rval;
323 if (lval) 324 if (lval)
324 { 325 {
325 lval->value.parenthesis = parens; 326 lval->value.parenthesis = parens;
326 lval->basicType = type->basicType; 327 if (type)
328 lval->basicType = type->basicType;
327 lval->token = tokens[LSL_TYPECAST_OPEN - lowestToken]; 329 lval->token = tokens[LSL_TYPECAST_OPEN - lowestToken];
328 } 330 }
329 if (rval) 331 if (rval)