From 9c86b61d02f407bc0fca1a6cf67b6a5e9d061c74 Mon Sep 17 00:00:00 2001 From: Totobird <> Date: Wed, 2 Sep 2020 11:47:12 -0400 Subject: [PATCH] Added 1 final test (for now) --- peridot/version/interpreter.py | 56 +++++++++++++++++----------------- peritests/dictionaries.peri | 12 ++++++++ 2 files changed, 40 insertions(+), 28 deletions(-) diff --git a/peridot/version/interpreter.py b/peridot/version/interpreter.py index eb766d9..b7a5c76 100644 --- a/peridot/version/interpreter.py +++ b/peridot/version/interpreter.py @@ -214,32 +214,6 @@ def visit_ArrayNode(self, node, context, insideloop=False): ) - def visit_TupleNode(self, node, context, insideloop=False): - res = RTResult() - elements = [] - for i in node.elmnodes: - elm = res.register( - self.visit( - i, - context, - insideloop=insideloop - ) - ) - - if res.shouldreturn(): - return(res) - - elements.append(elm) - - return( - res.success( - TupleType(tuple(elements)) - .setcontext(context) - .setpos(node.start, node.end) - ) - ) - - def visit_DictionaryNode(self, node, context, insideloop=False): res = RTResult() elements = {} @@ -277,7 +251,7 @@ def visit_DictionaryNode(self, node, context, insideloop=False): msg = msg.replace('%s', key.type, 1) return( res.failure( - Exc_TypeError( + Exc_ValueError( msg, key.start, key.end, context, @@ -297,7 +271,7 @@ def visit_DictionaryNode(self, node, context, insideloop=False): if type(value) != type(valuetype): return( res.failure( - Exc_TypeError( + Exc_ValueError( msg, value.start, value.end, context, @@ -322,6 +296,32 @@ def visit_DictionaryNode(self, node, context, insideloop=False): ) + def visit_TupleNode(self, node, context, insideloop=False): + res = RTResult() + elements = [] + for i in node.elmnodes: + elm = res.register( + self.visit( + i, + context, + insideloop=insideloop + ) + ) + + if res.shouldreturn(): + return(res) + + elements.append(elm) + + return( + res.success( + TupleType(tuple(elements)) + .setcontext(context) + .setpos(node.start, node.end) + ) + ) + + ### VARIABLE CONTROL def visit_VarAccessNode(self, node, context, insideloop=False): diff --git a/peritests/dictionaries.peri b/peritests/dictionaries.peri index 608502e..b7ff146 100644 --- a/peritests/dictionaries.peri +++ b/peritests/dictionaries.peri @@ -1,6 +1,18 @@ var periscope = include('periscope') +var pscope_this = func() -> Null { + + var try = handler {{1: 2, 3.0: 4}} + assert(try.name == 'ValueException') + + var try = handler {{1: 2, 3: 4.0}} + assert(try.name == 'ValueException') + + return(Null) +} + + var pscope_add = func() -> Null { assert({1: 2, 3: 4} + {5: 6, 7: 8} == {1: 2, 3: 4, 5: 6, 7: 8})