From ae08f059fb3caca4bf4776b40480c1c6c277fc03 Mon Sep 17 00:00:00 2001 From: William Bell Date: Wed, 21 Jun 2023 08:58:13 +0100 Subject: [PATCH] make even negative sign not allow any type --- src/negative.go | 5 ++--- src/run.go | 5 ++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/negative.go b/src/negative.go index 1bfb23f..c5bee6a 100644 --- a/src/negative.go +++ b/src/negative.go @@ -6,6 +6,7 @@ var negativeCompile = makeRegex(`( *)-(.|\n)+( *)`) type negative struct { VAL any + sign bool line int code string path string @@ -26,11 +27,9 @@ func parseNegative(code UNPARSEcode, index int, codeline []UNPARSEcode) (any, bo path: code.path, }, index, codeline, 0) - if difference%2 == 0 { - return resp, worked, err, i - } return negative{ VAL: resp, + sign: difference%2 == 0, line: code.line, code: code.realcode, path: code.path, diff --git a/src/run.go b/src/run.go index 976311d..bd3f28d 100644 --- a/src/run.go +++ b/src/run.go @@ -70,7 +70,10 @@ func runVal(line any, stack stack, stacklevel int) (any, ArErr) { } switch y := resp.(type) { case number: - return newNumber().Neg(y), ArErr{} + if !x.sign { + return newNumber().Neg(y), ArErr{} + } + return y, ArErr{} } return nil, ArErr{ TYPE: "TypeError",