Skip to content
30 changes: 30 additions & 0 deletions bbq/vm/builtin_globals.go
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,10 @@ func init() {
registerBuiltinCommonTypeBoundFunctions()

registerBuiltinSaturatingArithmeticFunctions()

registerBuiltinFixedPointPowFunctions()

registerBuiltinFixedPointMultiplyDivideFunctions()
}

func registerBuiltinCommonTypeBoundFunctions() {
Expand Down Expand Up @@ -429,6 +433,32 @@ func registerBuiltinTypeSaturatingArithmeticFunctions(t sema.SaturatingArithmeti
}
}

func registerBuiltinFixedPointPowFunctions() {
for baseType, funcType := range sema.FixedPointPowFunctionTypes { //nolint:maprange
registerBuiltinTypeBoundFunction(
commons.TypeQualifier(baseType),
NewNativeFunctionValue(
sema.FixedPointNumericTypePowFunctionName,
funcType,
interpreter.NativeFixedPointPowFunction,
),
)
}
}

func registerBuiltinFixedPointMultiplyDivideFunctions() {
for baseType, funcType := range sema.FixedPointMultiplyDivideFunctionTypes {
registerBuiltinTypeBoundFunction(
commons.TypeQualifier(baseType),
NewNativeFunctionValue(
sema.FixedPointNumericTypeMultiplyDivideFunctionName,
funcType,
interpreter.NativeFixedPointMultiplyDivideFunction,
),
)
}
}

func newFromStringFunction(typedParser interpreter.TypedStringValueParser) *NativeFunctionValue {
functionType := sema.FromStringFunctionType(typedParser.ReceiverType)
parser := typedParser.Parser
Expand Down
Loading