32 lines
524 B
Go
32 lines
524 B
Go
|
package main
|
||
|
|
||
|
type NumMutator struct {
|
||
|
Op NumOperator
|
||
|
Var bool
|
||
|
Value int
|
||
|
}
|
||
|
|
||
|
type NumOperator string
|
||
|
|
||
|
const (
|
||
|
NumOperatorAdd NumOperator = "+"
|
||
|
NumOperatorSub NumOperator = "-"
|
||
|
NumOperatorMul NumOperator = "*"
|
||
|
NumOperatorDiv NumOperator = "/"
|
||
|
)
|
||
|
|
||
|
func NewNumOperatorFromString(str string) NumOperator {
|
||
|
switch str {
|
||
|
case "+":
|
||
|
return NumOperatorAdd
|
||
|
case "-":
|
||
|
return NumOperatorSub
|
||
|
case "*":
|
||
|
return NumOperatorMul
|
||
|
case "/":
|
||
|
return NumOperatorDiv
|
||
|
default:
|
||
|
panic("invalid number operator: " + str)
|
||
|
}
|
||
|
}
|