mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-09 01:37:17 +00:00
PLASM compiling
This commit is contained in:
parent
36c1dea04e
commit
ead253ef14
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user