This repository has been archived on 2024-02-27. You can view files and clone it, but cannot push or open issues or pull requests.
arf/analyzer/primitives.go

33 lines
1.2 KiB
Go

package analyzer
// This is a global, cannonical list of primitive and built-in types.
var PrimitiveF32 = createPrimitive("Int", Type {})
var PrimitiveF64 = createPrimitive("Int", Type {})
var PrimitiveInt = createPrimitive("Int", Type {})
var PrimitiveUInt = createPrimitive("UInt", Type {})
var PrimitiveI8 = createPrimitive("I8", Type {})
var PrimitiveI16 = createPrimitive("I16", Type {})
var PrimitiveI32 = createPrimitive("I32", Type {})
var PrimitiveI64 = createPrimitive("I64", Type {})
var PrimitiveU8 = createPrimitive("U8", Type {})
var PrimitiveU16 = createPrimitive("U16", Type {})
var PrimitiveU32 = createPrimitive("U32", Type {})
var PrimitiveU64 = createPrimitive("U64", Type {})
var PrimitiveObj = createPrimitive("Obj", Type {})
var PrimitiveFace = createPrimitive("Face", Type {})
var PrimitiveFunc = createPrimitive("Func", Type {})
var BuiltInString = createPrimitive("String", Type {
actual: &PrimitiveU32,
kind: TypeKindVariableArray,
})
// createPrimitive provides a quick way to construct a primitive for the above
// list.
func createPrimitive (name string, inherits Type) (primitive TypeSection) {
primitive.where = locator { name: name }
primitive.what = inherits
return
}