diff options
Diffstat (limited to 'LuaSL/src/LuaSL_LSL_tree.c')
-rw-r--r-- | LuaSL/src/LuaSL_LSL_tree.c | 10 |
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 | ||
314 | LSL_Leaf *addTypecast(LSL_Leaf *lval, LSL_Leaf *type, LSL_Leaf *rval) | 315 | LSL_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) |