language: floating point support

This commit is contained in:
2023-09-09 00:08:30 -04:00
parent bf474f6b69
commit e8766323ee
19 changed files with 187 additions and 39 deletions

View File

@ -11,8 +11,8 @@ class FfiFunctionDefinition(
if (parts.size !in arrayOf(3, 4) || parts.any { it.trim().isEmpty() }) {
throw RuntimeException(
"FFI function definition is invalid, " +
"excepted format is 'library:function:return-type:(optional)parameters'" +
" but '${def}' was specified")
"accepted format is 'library:function:return-type:(optional)parameters' " +
"but '${def}' was specified")
}
val (library, function, returnType) = parts
return FfiFunctionDefinition(library, function, returnType)

View File

@ -13,7 +13,8 @@ class JavaFunctionDefinition(
if (!(parts.size == 4 || parts.size == 5) || parts.any { it.trim().isEmpty() }) {
throw RuntimeException(
"Java function definition is invalid, " +
"excepted format is 'type:kind:symbol:return-type:(optional)parameters' but '${def}' was specified")
"accepted format is 'type:kind:symbol:return-type:(optional)parameters' " +
"but '${def}' was specified")
}
val (type, kind, symbol, returnType) = parts
val parameters = if (parts.size > 4) parts[4].split(",") else emptyList()

View File

@ -32,6 +32,8 @@ class JavaNativeProvider : NativeFunctionProvider {
"short" -> Short::class.java
"int" -> Int::class.java
"long" -> Long::class.java
"float" -> Float::class.java
"double" -> Double::class.java
else -> lookup.findClass(name)
}