From 9125b7bfd4522317e52830157bd3ec6e73ba0464 Mon Sep 17 00:00:00 2001 From: dschmenk Date: Sat, 25 Feb 2023 19:21:36 -0800 Subject: [PATCH] Error on local constants --- src/toolsrc/parse.c | 2 ++ src/toolsrc/parse.pla | 1 + 2 files changed, 3 insertions(+) diff --git a/src/toolsrc/parse.c b/src/toolsrc/parse.c index 37c2118..4587926 100755 --- a/src/toolsrc/parse.c +++ b/src/toolsrc/parse.c @@ -1361,6 +1361,8 @@ int parse_vars(int type, int ignore_vars) emit_sysflags(value); break; case CONST_TOKEN: + if (type & LOCAL_TYPE) + parse_error("Cannot define local constant"); if (scan() != ID_TOKEN) parse_error("Missing variable"); idstr = tokenstr; diff --git a/src/toolsrc/parse.pla b/src/toolsrc/parse.pla index 2ac40cd..744122e 100644 --- a/src/toolsrc/parse.pla +++ b/src/toolsrc/parse.pla @@ -1076,6 +1076,7 @@ def parse_vars(type, ignore_vars) modsysflags, drop, drop = parse_constexpr break is CONST_TKN + if type & LOCAL_TYPE; exit_err(ERR_INVAL|ERR_GLOBAL|ERR_INIT); fin if scan <> ID_TKN; exit_err(ERR_INVAL|ERR_CONST); fin idptr = tknptr idlen = tknlen