Add support for the basic type "bool".

R=r
DELTA=51  (51 added, 0 deleted, 0 changed)
OCL=18283
CL=18290
This commit is contained in:
Ian Lance Taylor 2008-10-31 16:34:47 -07:00
parent 613a5c8bc6
commit 16fd356679
6 changed files with 51 additions and 0 deletions

View file

@ -58,6 +58,7 @@ func AddrToPtrFloat32(Addr) *float32
func AddrToPtrFloat64(Addr) *float64
func AddrToPtrFloat80(Addr) *float80
func AddrToPtrString(Addr) *string
func AddrToPtrBool(Addr) *bool
// -- Int
@ -438,6 +439,31 @@ func (v *StringValueStruct) Put(s string) {
*AddrToPtrString(v.addr) = s
}
// -- Bool
export type BoolValue interface {
Kind() int;
Get() bool;
Put(bool);
Type() Type;
}
type BoolValueStruct struct {
CommonV
}
func BoolCreator(typ Type, addr Addr) Value {
return &BoolValueStruct{ CommonV{BoolKind, typ, addr} }
}
func (v *BoolValueStruct) Get() bool {
return *AddrToPtrBool(v.addr)
}
func (v *BoolValueStruct) Put(b bool) {
*AddrToPtrBool(v.addr) = b
}
// -- Pointer
export type PtrValue interface {
@ -665,6 +691,7 @@ func init() {
creator[Float64Kind] = &Float64Creator;
creator[Float80Kind] = &Float80Creator;
creator[StringKind] = &StringCreator;
creator[BoolKind] = &BoolCreator;
creator[PtrKind] = &PtrCreator;
creator[ArrayKind] = &ArrayCreator;
creator[MapKind] = &MapCreator;