From 17fc60618a57248d87af790cb4b417cb51938d09 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Wed, 3 Jan 2018 18:37:38 -0800 Subject: [PATCH] Better extern access --- src/toolsrc/codegen.pla | 10 ++++++++++ src/toolsrc/parse.pla | 3 --- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/toolsrc/codegen.pla b/src/toolsrc/codegen.pla index 45c3786..4e11ca2 100644 --- a/src/toolsrc/codegen.pla +++ b/src/toolsrc/codegen.pla @@ -415,6 +415,11 @@ def id_lookup(nameptr, len) idptr = idmatch(nameptr, len, idlocal_tbl, locals) if not idptr idptr = idmatch(nameptr, len, idglobal_tbl, globals) + if idptr + if idptr=>idtype & EXTERN_TYPE + idptr=>idtype = idptr=>idtype | ACCESSED_TYPE + fin + fin fin return idptr end @@ -422,6 +427,11 @@ def idglobal_lookup(nameptr, len) word idptr idptr = idmatch(nameptr, len, idglobal_tbl, globals) + if idptr + if idptr=>idtype & EXTERN_TYPE + idptr=>idtype = idptr=>idtype | ACCESSED_TYPE + fin + fin return idptr end def iddata_add(namestr, len, type, size)#0 diff --git a/src/toolsrc/parse.pla b/src/toolsrc/parse.pla index e5241c6..26e3239 100644 --- a/src/toolsrc/parse.pla +++ b/src/toolsrc/parse.pla @@ -283,9 +283,6 @@ def parse_value(codeseq, rvalue)#2 if type & FUNC_TYPE cfnparms = idptr->funcparms cfnvals = idptr->funcvals - if type & EXTERN_TYPE - idptr=>idtype = idptr=>idtype | ACCESSED_TYPE - fin fin break is INT_TKN