|
@@ -383,6 +383,7 @@ def selectPossibleOutgoing(a, b, c, **remainder):
|
|
|
raise PrimitiveFinished(result)
|
|
|
|
|
|
def check_symbols(a, b, c, **remainder):
|
|
|
+ print("Execute check_symbols")
|
|
|
symbols = {}
|
|
|
function_name, = yield [("RV", [b])]
|
|
|
symbols[function_name] = False
|
|
@@ -393,6 +394,7 @@ def check_symbols(a, b, c, **remainder):
|
|
|
set_elements = yield [("RD", [a, i]) for i in set_values]
|
|
|
symbols_set = yield [("RD", [i, "symbols"]) for i in set_elements]
|
|
|
all_keys = yield [("RDK", [i]) for i in symbols_set]
|
|
|
+ print("VALUES:" + str(set_values))
|
|
|
for i, s in zip(all_keys, symbols_set):
|
|
|
# For each object we have found
|
|
|
keys = yield [("RV", [j]) for j in i]
|
|
@@ -401,7 +403,11 @@ def check_symbols(a, b, c, **remainder):
|
|
|
for key, value in zip(keys, values):
|
|
|
k = key
|
|
|
v = value
|
|
|
+ if k == "value_eq":
|
|
|
+ print("Key: " + str(k))
|
|
|
+ print("Value: " + str(v))
|
|
|
if v and symbols.get(k, False):
|
|
|
+ print("Error: multi def of " + str(key))
|
|
|
result = yield [("CNV", ["ERROR: multiple definition of symbol " + str(key)])]
|
|
|
raise PrimitiveFinished(result)
|
|
|
elif v and not symbols.get(k, False):
|
|
@@ -409,6 +415,7 @@ def check_symbols(a, b, c, **remainder):
|
|
|
elif not v and k not in symbols:
|
|
|
symbols[k] = False
|
|
|
|
|
|
+ print("Symbols: " + str(symbols))
|
|
|
for i, j in symbols.items():
|
|
|
if i == "input" or i == "output":
|
|
|
continue
|