aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_LSL_tree.c
diff options
context:
space:
mode:
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)