2024-05-01 13:30:13 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2024-06-15 08:43:48 +08:00
|
|
|
"github.com/goplus/llgo/c"
|
2025-01-07 21:49:08 +08:00
|
|
|
"github.com/goplus/llgo/compiler/internal/abi"
|
2024-05-01 13:30:13 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func Basic(kind abi.Kind) *abi.Type {
|
2024-05-01 16:06:49 +08:00
|
|
|
return basicTypes[kind]
|
2024-05-01 13:30:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
basicTypes = [...]*abi.Type{
|
|
|
|
|
abi.String: basicType(abi.String),
|
|
|
|
|
}
|
|
|
|
|
sizeBasicTypes = [...]uintptr{
|
|
|
|
|
abi.String: 16,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func basicType(kind abi.Kind) *abi.Type {
|
2024-05-01 16:06:49 +08:00
|
|
|
return &abi.Type{
|
2024-05-01 13:30:13 +08:00
|
|
|
Size_: sizeBasicTypes[kind],
|
|
|
|
|
Hash: uint32(kind),
|
|
|
|
|
Kind_: uint8(kind),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
t := Basic(abi.String)
|
|
|
|
|
c.Printf(c.Str("Kind: %d, Size: %d\n"), int(t.Kind_), t.Size_)
|
|
|
|
|
}
|