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",