1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-08-21 06:29:07 +00:00

PLASM compiling

This commit is contained in:
Dave Schmenk 2018-01-02 22:01:27 -08:00
parent 36c1dea04e
commit ead253ef14

View File

@ -258,8 +258,8 @@ def parse_value(codeseq, rvalue)#2
type = type | WPTR_TYPE
break
is AT_TKN
deref--
if not deref; exit_err(ERR_INVAL|ERR_SYNTAX); fin
deref--
break
otherwise
operation = FALSE
@ -1119,8 +1119,8 @@ def parse_lambda
return func_tag
end
def parse_defs
byte cfnparms, cfnvals
word type, func_tag, idptr
byte idlen, cfnparms, cfnvals
word type, idstr, func_tag, idptr
type = FUNC_TYPE
if token == EXPORT_TKN
@ -1133,6 +1133,8 @@ def parse_defs
cfnparms = 0
infuncvals = 1
infunc = TRUE
idstr = tknptr
idlen = tknlen
idlocal_init
if scan == OPEN_PAREN_TKN
repeat
@ -1149,14 +1151,14 @@ def parse_defs
if not parse_const(@infuncvals); exit_err(ERR_INVAL|ERR_CONST); fin
scan
fin
idptr = idglobal_lookup(tknptr, tknlen)
idptr = idglobal_lookup(idstr, idlen)
if idptr
if not idptr=>idtype & PREDEF_TYPE; exit_err(ERR_DUP|ERR_ID); fin
if idptr->funcparms <> cfnparms or idptr->funcvals <> infuncvals; exit_err(ERR_DUP|ERR_CODE|ERR_ID); fin
func_tag = idptr=>idval
else
func_tag = ctag_new
idfunc_add(tknptr, tknlen, type, func_tag, cfnparms, infuncvals)
idfunc_add(idstr, idlen, type, func_tag, cfnparms, infuncvals)
fin
emit_ctag(func_tag)
retfunc_tag = ctag_new