forked from OSchip/llvm-project
84 lines
1.4 KiB
Go
84 lines
1.4 KiB
Go
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package importer
|
|
|
|
import "llvm.org/llgo/third_party/gotools/go/types"
|
|
|
|
const (
|
|
magic = "\n$$ exports $$\n"
|
|
version = "v0"
|
|
)
|
|
|
|
// Tags. Must be < 0.
|
|
const (
|
|
// Packages
|
|
packageTag = -(iota + 1)
|
|
|
|
// Objects
|
|
constTag
|
|
typeTag
|
|
varTag
|
|
funcTag
|
|
|
|
// Types
|
|
arrayTag
|
|
sliceTag
|
|
structTag
|
|
pointerTag
|
|
signatureTag
|
|
interfaceTag
|
|
mapTag
|
|
chanTag
|
|
namedTag
|
|
|
|
// Values
|
|
falseTag
|
|
trueTag
|
|
int64Tag
|
|
floatTag
|
|
fractionTag
|
|
complexTag
|
|
stringTag
|
|
)
|
|
|
|
var predeclared = []types.Type{
|
|
// basic types
|
|
types.Typ[types.Bool],
|
|
types.Typ[types.Int],
|
|
types.Typ[types.Int8],
|
|
types.Typ[types.Int16],
|
|
types.Typ[types.Int32],
|
|
types.Typ[types.Int64],
|
|
types.Typ[types.Uint],
|
|
types.Typ[types.Uint8],
|
|
types.Typ[types.Uint16],
|
|
types.Typ[types.Uint32],
|
|
types.Typ[types.Uint64],
|
|
types.Typ[types.Uintptr],
|
|
types.Typ[types.Float32],
|
|
types.Typ[types.Float64],
|
|
types.Typ[types.Complex64],
|
|
types.Typ[types.Complex128],
|
|
types.Typ[types.String],
|
|
|
|
// untyped types
|
|
types.Typ[types.UntypedBool],
|
|
types.Typ[types.UntypedInt],
|
|
types.Typ[types.UntypedRune],
|
|
types.Typ[types.UntypedFloat],
|
|
types.Typ[types.UntypedComplex],
|
|
types.Typ[types.UntypedString],
|
|
types.Typ[types.UntypedNil],
|
|
|
|
// package unsafe
|
|
types.Typ[types.UnsafePointer],
|
|
|
|
// aliases
|
|
types.UniverseByte,
|
|
types.UniverseRune,
|
|
|
|
types.Universe.Lookup("error").Type(),
|
|
}
|