From 938e9fb52f92de782caa272045f00701f042f845 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Sat, 22 Nov 2014 22:43:41 -0800 Subject: [PATCH] Can't initialize function pointers yet --- src/toolsrc/sb.pla | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/toolsrc/sb.pla b/src/toolsrc/sb.pla index 02ad9bd..b2ee32d 100644 --- a/src/toolsrc/sb.pla +++ b/src/toolsrc/sb.pla @@ -2869,7 +2869,6 @@ def parse_constval(valptr, sizeptr) mod = 0 type = 0 - *valptr = 0 while !parse_term when token is SUB_TKN @@ -2894,7 +2893,7 @@ def parse_constval(valptr, sizeptr) if mod; return parse_err(@bad_op); fin break is CHR_TKN - *valptr = constval + ^valptr = constval ^sizeptr = 1 type = BYTE_TYPE break @@ -2915,11 +2914,7 @@ def parse_constval(valptr, sizeptr) if ctag_tbl:[ctag] & IS_RESOLVED *valptr = (ctag_tbl:[ctag] & MASK_CTAG) + codebuff else - // - // Add to list of tags needing resolution - // - *valptr = ctag_tbl:[ctag] & MASK_CTAG - ctag_tbl:[ctag] = valptr - codebuff + return parse_err(@bad_cnst) fin else *valptr = idptr=>idval + codebuff @@ -2932,13 +2927,25 @@ def parse_constval(valptr, sizeptr) return parse_err(@bad_cnst) wend if mod & 1 - *valptr = -*valptr + if type == BYTE_TYPE + ^valptr = -^valptr + else + *valptr = -*valptr + fin fin if mod & 2 - *valptr = ~*valptr + if type == BYTE_TYPE + ^valptr = ~^valptr + else + *valptr = ~*valptr + fin fin if mod & 4 - *valptr = !*valptr + if type == BYTE_TYPE + ^valptr = !^valptr + else + *valptr = !*valptr + fin fin return type end