package interp

// Code generated by 'go run ../internal/cmd/genop/genop.go'. DO NOT EDIT.

import (
	
	
	
)

// Arithmetic operators

func add( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.String:
		switch {
		case :
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				().Set(reflect.ValueOf(().String() + ().String()).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValue()
			.exec = func( *frame) bltn {
				().SetString( + ().String())
				return 
			}
		case .rval.IsValid():
			 := genValue()
			 := vString(.rval)
			.exec = func( *frame) bltn {
				().SetString(().String() + )
				return 
			}
		default:
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				().SetString(().String() + ().String())
				return 
			}
		}
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( + ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( + )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( + )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( + )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( + ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( + )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( + )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( + )
				return 
			}
		}
	case reflect.Float32, reflect.Float64:
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( + ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( + )
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( + )
				return 
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetFloat( + )
				return 
			}
		}
	case reflect.Complex64, reflect.Complex128:
		switch {
		case :
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().Set(reflect.ValueOf(() + ()).Convert())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex( + ())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() + )
				return 
			}
		default:
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() + ())
				return 
			}
		}
	}
}

func addConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(vConstantValue(), token.ADD, vConstantValue())
		.rval.Set(reflect.ValueOf())
	case isString():
		.rval.SetString(vString() + vString())
	case isComplex():
		.rval.SetComplex(vComplex() + vComplex())
	case isFloat():
		.rval.SetFloat(vFloat() + vFloat())
	case isUint():
		.rval.SetUint(vUint() + vUint())
	case isInt():
		.rval.SetInt(vInt() + vInt())
	}
}

func and( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( & ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( & )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( & )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( & )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( & ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( & )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( & )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( & )
				return 
			}
		}
	}
}

func andConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(constant.ToInt(vConstantValue()), token.AND, constant.ToInt(vConstantValue()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() & vUint())
	case isInt():
		.rval.SetInt(vInt() & vInt())
	}
}

func andNot( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( &^ ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( &^ )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( &^ )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( &^ )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( &^ ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( &^ )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( &^ )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( &^ )
				return 
			}
		}
	}
}

func andNotConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(constant.ToInt(vConstantValue()), token.AND_NOT, constant.ToInt(vConstantValue()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() &^ vUint())
	case isInt():
		.rval.SetInt(vInt() &^ vInt())
	}
}

func mul( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( * ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( * )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( * )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( * )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( * ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( * )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( * )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( * )
				return 
			}
		}
	case reflect.Float32, reflect.Float64:
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( * ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( * )
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( * )
				return 
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetFloat( * )
				return 
			}
		}
	case reflect.Complex64, reflect.Complex128:
		switch {
		case :
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().Set(reflect.ValueOf(() * ()).Convert())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex( * ())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() * )
				return 
			}
		default:
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() * ())
				return 
			}
		}
	}
}

func mulConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(vConstantValue(), token.MUL, vConstantValue())
		.rval.Set(reflect.ValueOf())
	case isComplex():
		.rval.SetComplex(vComplex() * vComplex())
	case isFloat():
		.rval.SetFloat(vFloat() * vFloat())
	case isUint():
		.rval.SetUint(vUint() * vUint())
	case isInt():
		.rval.SetInt(vInt() * vInt())
	}
}

func or( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( | ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( | )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( | )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( | )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( | ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( | )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( | )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( | )
				return 
			}
		}
	}
}

func orConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(constant.ToInt(vConstantValue()), token.OR, constant.ToInt(vConstantValue()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() | vUint())
	case isInt():
		.rval.SetInt(vInt() | vInt())
	}
}

func quo( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( / ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( / )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( / )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( / )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( / ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( / )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( / )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( / )
				return 
			}
		}
	case reflect.Float32, reflect.Float64:
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( / ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( / )
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( / )
				return 
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetFloat( / )
				return 
			}
		}
	case reflect.Complex64, reflect.Complex128:
		switch {
		case :
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().Set(reflect.ValueOf(() / ()).Convert())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex( / ())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() / )
				return 
			}
		default:
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() / ())
				return 
			}
		}
	}
}

func quoConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		var  token.Token
		// When the result of the operation is expected to be an int (because both
		// operands are ints), we want to force the type of the whole expression to be an
		// int (and not a float), which is achieved by using the QUO_ASSIGN operator.
		if .typ.untyped && isInt(.typ.rtype) {
			 = token.QUO_ASSIGN
		} else {
			 = token.QUO
		}
		 := constant.BinaryOp(vConstantValue(), , vConstantValue())
		.rval.Set(reflect.ValueOf())
	case isComplex():
		.rval.SetComplex(vComplex() / vComplex())
	case isFloat():
		.rval.SetFloat(vFloat() / vFloat())
	case isUint():
		.rval.SetUint(vUint() / vUint())
	case isInt():
		.rval.SetInt(vInt() / vInt())
	}
}

func rem( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( % ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( % )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( % )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( % )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( % ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( % )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( % )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( % )
				return 
			}
		}
	}
}

func remConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(constant.ToInt(vConstantValue()), token.REM, constant.ToInt(vConstantValue()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() % vUint())
	case isInt():
		.rval.SetInt(vInt() % vInt())
	}
}

func shl( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( << ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( << )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( << )
				return 
			}
		default:
			 := genValueInt()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( << )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( << ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( << )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( << )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( << )
				return 
			}
		}
	}
}

func shlConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.Shift(vConstantValue(), token.SHL, uint(vUint()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() << vUint())
	case isInt():
		.rval.SetInt(vInt() << vUint())
	}
}

func shr( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( >> ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( >> )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( >> )
				return 
			}
		default:
			 := genValueInt()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( >> )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( >> ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( >> )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( >> )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( >> )
				return 
			}
		}
	}
}

func shrConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.Shift(vConstantValue(), token.SHR, uint(vUint()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() >> vUint())
	case isInt():
		.rval.SetInt(vInt() >> vUint())
	}
}

func sub( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( - ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( - )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( - )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( - )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( - ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( - )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( - )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( - )
				return 
			}
		}
	case reflect.Float32, reflect.Float64:
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( - ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( - )
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				().SetFloat( - )
				return 
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetFloat( - )
				return 
			}
		}
	case reflect.Complex64, reflect.Complex128:
		switch {
		case :
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().Set(reflect.ValueOf(() - ()).Convert())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex( - ())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() - )
				return 
			}
		default:
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				().SetComplex(() - ())
				return 
			}
		}
	}
}

func subConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(vConstantValue(), token.SUB, vConstantValue())
		.rval.Set(reflect.ValueOf())
	case isComplex():
		.rval.SetComplex(vComplex() - vComplex())
	case isFloat():
		.rval.SetFloat(vFloat() - vFloat())
	case isUint():
		.rval.SetUint(vUint() - vUint())
	case isInt():
		.rval.SetInt(vInt() - vInt())
	}
}

func xor( *node) {
	 := getExec(.tnext)
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	 := genValueOutput(, )
	,  := .child[0], .child[1]

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( ^ ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( ^ )
				return 
			}
		case .rval.IsValid():
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				().SetInt( ^ )
				return 
			}
		default:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetInt( ^ )
				return 
			}
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( ^ ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( ^ )
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				().SetUint( ^ )
				return 
			}
		default:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().SetUint( ^ )
				return 
			}
		}
	}
}

func xorConst( *node) {
	,  := .child[0].rval, .child[1].rval
	 := (.IsValid() && isConstantValue(.Type())) && (.IsValid() && isConstantValue(.Type()))
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.BinaryOp(constant.ToInt(vConstantValue()), token.XOR, constant.ToInt(vConstantValue()))
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(vUint() ^ vUint())
	case isInt():
		.rval.SetInt(vInt() ^ vInt())
	}
}

// Assign operators

func addAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.String:
			 := genValueString()
			 := vString(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetString( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := vFloat(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetFloat( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := vComplex(.rval)
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.String:
			 := genValueString()
			 := genValue()
			.exec = func( *frame) bltn {
				,  := ()
				.SetString( + ().String())
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetFloat( + )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() + ().Complex())
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func andAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( & )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( & )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( & )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( & )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func andNotAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( &^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( &^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( &^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( &^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func mulAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := vFloat(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetFloat( * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := vComplex(.rval)
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetFloat( * )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() * ().Complex())
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func orAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( | )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( | )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( | )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( | )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func quoAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := vFloat(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetFloat( / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := vComplex(.rval)
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetFloat( / )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() / ().Complex())
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func remAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( % )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( % )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( % )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( % )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func shlAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( << )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( << )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( << )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( << )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func shrAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( >> )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( >> )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( >> )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( >> )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func subAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := vFloat(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetFloat( - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := vComplex(.rval)
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Float32, reflect.Float64:
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetFloat( - )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Complex64, reflect.Complex128:
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ()
				.SetComplex(.Complex() - ().Complex())
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func xorAssign( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	,  := .child[0], .child[1]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	if .rval.IsValid() {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := vInt(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetInt( ^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := vUint(.rval)
			.exec = func( *frame) bltn {
				,  := ()
				.SetUint( ^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	} else {
		switch .Kind() {
		case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetInt( ^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				.SetUint( ^ )
				if  {
					().SetMapIndex((), )
				}
				return 
			}
		}
	}
}

func dec( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	 := .child[0]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		 := genValueInt()
		.exec = func( *frame) bltn {
			,  := ()
			.SetInt( - 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
		 := genValueUint()
		.exec = func( *frame) bltn {
			,  := ()
			.SetUint( - 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	case reflect.Float32, reflect.Float64:
		 := genValueFloat()
		.exec = func( *frame) bltn {
			,  := ()
			.SetFloat( - 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	case reflect.Complex64, reflect.Complex128:
		 := genValue()
		.exec = func( *frame) bltn {
			 := ()
			.SetComplex(.Complex() - 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	}
}

func inc( *node) {
	 := getExec(.tnext)
	 := .typ.TypeOf()
	 := .child[0]
	 := isMapEntry()
	var ,  func(*frame) reflect.Value

	if  {
		 = genValue(.child[0])
		 = genValue(.child[1])
	}

	switch .Kind() {
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		 := genValueInt()
		.exec = func( *frame) bltn {
			,  := ()
			.SetInt( + 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
		 := genValueUint()
		.exec = func( *frame) bltn {
			,  := ()
			.SetUint( + 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	case reflect.Float32, reflect.Float64:
		 := genValueFloat()
		.exec = func( *frame) bltn {
			,  := ()
			.SetFloat( + 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	case reflect.Complex64, reflect.Complex128:
		 := genValue()
		.exec = func( *frame) bltn {
			 := ()
			.SetComplex(.Complex() + 1)
			if  {
				().SetMapIndex((), )
			}
			return 
		}
	}
}

func bitNotConst( *node) {
	 := .child[0].rval
	 := .IsValid() && isConstantValue(.Type())
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.UnaryOp(token.XOR, vConstantValue(), 0)
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(^.Uint())
	case isInt():
		.rval.SetInt(^.Int())
	}
}

func negConst( *node) {
	 := .child[0].rval
	 := .IsValid() && isConstantValue(.Type())
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.UnaryOp(token.SUB, vConstantValue(), 0)
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(-.Uint())
	case isInt():
		.rval.SetInt(-.Int())
	case isFloat():
		.rval.SetFloat(-.Float())
	case isComplex():
		.rval.SetComplex(-.Complex())
	}
}

func notConst( *node) {
	 := .child[0].rval
	 := .IsValid() && isConstantValue(.Type())
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	if  {
		 := constant.UnaryOp(token.NOT, vConstantValue(), 0)
		.rval.Set(reflect.ValueOf())
	} else {
		.rval.SetBool(!.Bool())
	}
}

func posConst( *node) {
	 := .child[0].rval
	 := .IsValid() && isConstantValue(.Type())
	 := .typ.rtype
	if  {
		 = constVal
	}
	.rval = reflect.New().Elem()
	switch {
	case :
		 := constant.UnaryOp(token.ADD, vConstantValue(), 0)
		.rval.Set(reflect.ValueOf())
	case isUint():
		.rval.SetUint(+.Uint())
	case isInt():
		.rval.SetInt(+.Int())
	case isFloat():
		.rval.SetFloat(+.Float())
	case isComplex():
		.rval.SetComplex(+.Complex())
	}
}

func equal( *node) {
	 := getExec(.tnext)
	 := genValueOutput(, reflect.TypeOf(true))
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	,  := .child[0], .child[1]
	,  := .typ.TypeOf(), .typ.TypeOf()

	if .typ.cat == linkedT || .typ.cat == linkedT {
		switch {
		case :
			 := genValue()
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genValue()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					().SetBool( == )
					return 
				}
			}
		}
		return
	}

	// Do not attempt to optimize '==' or '!=' if an operand is an interface.
	// This will preserve proper dynamic type checking at runtime. For static types,
	// type checks are already performed, so bypass them if possible.
	if .Kind() == reflect.Interface || .Kind() == reflect.Interface {
		 := genValue()
		 := genValue()
		if .fnext != nil {
			 := getExec(.fnext)
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				if  ==  {
					().SetBool(true)
					return 
				}
				().SetBool(false)
				return 
			}
		} else {
			 := genValue()
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				().SetBool( == )
				return 
			}
		}
		return
	}

	switch {
	case isString() || isString():
		switch {
		case :
			 := genValueString()
			 := genValueString()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genValueString()
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( == )
					return 
				}
			}
		}
	case isFloat() || isFloat():
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( == )
					return 
				}
			}
		}
	case isUint() || isUint():
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genValueUint()
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( == )
					return 
				}
			}
		}
	case isInt() || isInt():
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genValueInt()
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( == )
					return 
				}
			}
		}
	case isComplex() || isComplex():
		switch {
		case :
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				 := ()
				 := ()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					 := ()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genComplex()
			 := genComplex()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ()
					 := ()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					 := ()
					 := ()
					().SetBool( == )
					return 
				}
			}
		}
	default:
		switch {
		case :
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				().Set(reflect.ValueOf( == ).Convert())
				return 
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( == )
					return 
				}
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( == )
					return 
				}
			}
		default:
			 := genValue()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					if  ==  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					().SetBool( == )
					return 
				}
			}
		}
	}
}

func greater( *node) {
	 := getExec(.tnext)
	 := genValueOutput(, reflect.TypeOf(true))
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	,  := .child[0], .child[1]
	,  := .typ.TypeOf(), .typ.TypeOf()

	switch {
	case isString() || isString():
		switch {
		case :
			 := genValueString()
			 := genValueString()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( > ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		default:
			 := genValueString()
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( > )
					return 
				}
			}
		}
	case isFloat() || isFloat():
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( > ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( > )
					return 
				}
			}
		}
	case isUint() || isUint():
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( > ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		default:
			 := genValueUint()
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( > )
					return 
				}
			}
		}
	case isInt() || isInt():
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( > ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( > )
					return 
				}
			}
		default:
			 := genValueInt()
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( > )
					return 
				}
			}
		}
	}
}

func greaterEqual( *node) {
	 := getExec(.tnext)
	 := genValueOutput(, reflect.TypeOf(true))
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	,  := .child[0], .child[1]
	,  := .typ.TypeOf(), .typ.TypeOf()

	switch {
	case isString() || isString():
		switch {
		case :
			 := genValueString()
			 := genValueString()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( >= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		default:
			 := genValueString()
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		}
	case isFloat() || isFloat():
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( >= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		}
	case isUint() || isUint():
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( >= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		default:
			 := genValueUint()
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		}
	case isInt() || isInt():
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( >= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		default:
			 := genValueInt()
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  >=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( >= )
					return 
				}
			}
		}
	}
}

func lower( *node) {
	 := getExec(.tnext)
	 := genValueOutput(, reflect.TypeOf(true))
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	,  := .child[0], .child[1]
	,  := .typ.TypeOf(), .typ.TypeOf()

	switch {
	case isString() || isString():
		switch {
		case :
			 := genValueString()
			 := genValueString()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( < ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		default:
			 := genValueString()
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( < )
					return 
				}
			}
		}
	case isFloat() || isFloat():
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( < ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( < )
					return 
				}
			}
		}
	case isUint() || isUint():
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( < ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		default:
			 := genValueUint()
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( < )
					return 
				}
			}
		}
	case isInt() || isInt():
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( < ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( < )
					return 
				}
			}
		default:
			 := genValueInt()
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( < )
					return 
				}
			}
		}
	}
}

func lowerEqual( *node) {
	 := getExec(.tnext)
	 := genValueOutput(, reflect.TypeOf(true))
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	,  := .child[0], .child[1]
	,  := .typ.TypeOf(), .typ.TypeOf()

	switch {
	case isString() || isString():
		switch {
		case :
			 := genValueString()
			 := genValueString()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( <= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		default:
			 := genValueString()
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		}
	case isFloat() || isFloat():
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( <= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		}
	case isUint() || isUint():
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( <= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		default:
			 := genValueUint()
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		}
	case isInt() || isInt():
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( <= ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		default:
			 := genValueInt()
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  <=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( <= )
					return 
				}
			}
		}
	}
}

func notEqual( *node) {
	 := getExec(.tnext)
	 := genValueOutput(, reflect.TypeOf(true))
	 := .typ.concrete().TypeOf()
	 := .typ.TypeOf().Kind() == reflect.Interface
	,  := .child[0], .child[1]
	,  := .typ.TypeOf(), .typ.TypeOf()

	if .typ.cat == linkedT || .typ.cat == linkedT {
		switch {
		case :
			 := genValue()
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genValue()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					().SetBool( != )
					return 
				}
			}
		}
		return
	}

	// Do not attempt to optimize '==' or '!=' if an operand is an interface.
	// This will preserve proper dynamic type checking at runtime. For static types,
	// type checks are already performed, so bypass them if possible.
	if .Kind() == reflect.Interface || .Kind() == reflect.Interface {
		 := genValue()
		 := genValue()
		if .fnext != nil {
			 := getExec(.fnext)
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				if  !=  {
					().SetBool(true)
					return 
				}
				().SetBool(false)
				return 
			}
		} else {
			 := genValue()
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				().SetBool( != )
				return 
			}
		}
		return
	}

	switch {
	case isString() || isString():
		switch {
		case :
			 := genValueString()
			 := genValueString()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := vString(.rval)
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genValueString()
			 := genValueString()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( != )
					return 
				}
			}
		}
	case isFloat() || isFloat():
		switch {
		case :
			 := genValueFloat()
			 := genValueFloat()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := vFloat(.rval)
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genValueFloat()
			 := genValueFloat()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( != )
					return 
				}
			}
		}
	case isUint() || isUint():
		switch {
		case :
			 := genValueUint()
			 := genValueUint()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := vUint(.rval)
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genValueUint()
			 := genValueUint()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( != )
					return 
				}
			}
		}
	case isInt() || isInt():
		switch {
		case :
			 := genValueInt()
			 := genValueInt()
			.exec = func( *frame) bltn {
				,  := ()
				,  := ()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := vInt(.rval)
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genValueInt()
			 := genValueInt()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					,  := ()
					,  := ()
					().SetBool( != )
					return 
				}
			}
		}
	case isComplex() || isComplex():
		switch {
		case :
			 := genComplex()
			 := genComplex()
			.exec = func( *frame) bltn {
				 := ()
				 := ()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					 := ()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := vComplex(.rval)
			 := genComplex()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genComplex()
			 := genComplex()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ()
					 := ()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				.exec = func( *frame) bltn {
					 := ()
					 := ()
					().SetBool( != )
					return 
				}
			}
		}
	default:
		switch {
		case :
			 := genValue()
			 := genValue()
			.exec = func( *frame) bltn {
				 := ().Interface()
				 := ().Interface()
				().Set(reflect.ValueOf( != ).Convert())
				return 
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( != )
					return 
				}
			}
		case .rval.IsValid():
			 := .rval.Interface()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					().SetBool( != )
					return 
				}
			}
		default:
			 := genValue()
			 := genValue()
			if .fnext != nil {
				 := getExec(.fnext)
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					if  !=  {
						().SetBool(true)
						return 
					}
					().SetBool(false)
					return 
				}
			} else {
				 := genValue()
				.exec = func( *frame) bltn {
					 := ().Interface()
					 := ().Interface()
					().SetBool( != )
					return 
				}
			}
		}
	}
}