func abs(context *parser.FunctionCallContext) error { values, err := parser.ValidateArguments(context, "abs", parser.VALUE_NUMBER) if err != nil { return err } context.Block.Stack.Push(parser.NewValueFromRat(big.NewRat(0, 1).Abs(values[0].N))) return nil }
func div(context *parser.FunctionCallContext) error { values, err := parser.ValidateArguments(context, "div", parser.VALUE_NUMBER, parser.VALUE_NUMBER) if err != nil { return err } if values[0].N.Cmp(big.NewRat(0, 1)) == 0 { return util.NewInvalidArgumentError("div", "division by zero", context.Token.Line, context.Token.Column, context.Token.File) } context.Block.Stack.Push(parser.NewValueFromRat(big.NewRat(0, 1).Quo(values[1].N, values[0].N))) return nil }