From 06165d7a1c0e51120eba2292b90034e15667396b Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 1 Sep 2009 22:57:53 -0700 Subject: add generator for expr1.go R=austin DELTA=959 (404 added, 99 deleted, 456 changed) OCL=34214 CL=34237 --- usr/austin/eval/expr.go | 97 ------------------------------------------------- 1 file changed, 97 deletions(-) (limited to 'usr/austin/eval/expr.go') diff --git a/usr/austin/eval/expr.go b/usr/austin/eval/expr.go index bc8fd57e3..7f959d93d 100644 --- a/usr/austin/eval/expr.go +++ b/usr/austin/eval/expr.go @@ -71,103 +71,6 @@ func (a *exprInfo) diagOpTypes(op token.Token, lt Type, rt Type) { a.diag("illegal operand types for '%v' operator\n\t%v\n\t%v", op, lt, rt); } -/* - * "As" functions. These retrieve evaluator functions from an - * expr, panicking if the requested evaluator has the wrong type. - */ -func (a *expr) asBool() (func(*Frame) bool) { - return a.eval.(func(*Frame)bool); -} - -func (a *expr) asUint() (func(f *Frame) uint64) { - return a.eval.(func(*Frame)uint64); -} - -func (a *expr) asInt() (func(f *Frame) int64) { - return a.eval.(func(*Frame)int64); -} - -func (a *expr) asIdealInt() (func() *bignum.Integer) { - return a.eval.(func()*bignum.Integer); -} - -func (a *expr) asFloat() (func(f *Frame) float64) { - return a.eval.(func(*Frame)float64) -} - -func (a *expr) asIdealFloat() (func() *bignum.Rational) { - return a.eval.(func()*bignum.Rational) -} - -func (a *expr) asString() (func(f *Frame) string) { - return a.eval.(func(*Frame)string) -} - -func (a *expr) asArray() (func(f *Frame) ArrayValue) { - return a.eval.(func(*Frame)ArrayValue) -} - -func (a *expr) asStruct() (func(f *Frame) StructValue) { - return a.eval.(func(*Frame)StructValue) -} - -func (a *expr) asPtr() (func(f *Frame) Value) { - return a.eval.(func(*Frame)Value) -} - -func (a *expr) asFunc() (func(f *Frame) Func) { - return a.eval.(func(*Frame)Func) -} - -func (a *expr) asSlice() (func(f *Frame) Slice) { - return a.eval.(func(*Frame)Slice) -} - -func (a *expr) asMap() (func(f *Frame) Map) { - return a.eval.(func(*Frame)Map) -} - -func (a *expr) asMulti() (func(f *Frame) []Value) { - return a.eval.(func(*Frame)[]Value) -} - -func (a *expr) asInterface() (func(f *Frame) interface {}) { - // TODO(austin) We need the argument names in this type switch - // to work around a 6g bug. - switch sf := a.eval.(type) { - case func(f *Frame)bool: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)uint64: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)int64: - return func(f *Frame) interface{} { return sf(f) }; - case func()*bignum.Integer: - return func(f *Frame) interface{} { return sf() }; - case func(f *Frame)float64: - return func(f *Frame) interface{} { return sf(f) }; - case func()*bignum.Rational: - return func(f *Frame) interface{} { return sf() }; - case func(f *Frame)string: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)ArrayValue: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)StructValue: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Value: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Func: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Slice: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Map: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)[]Value: - return func(f *Frame) interface{} { return sf(f) }; - } - log.Crashf("unexpected expression node type %T at %v", a.eval, a.pos); - panic(); -} - /* * Common expression manipulations */ -- cgit v1.2.3