(op int, e exprDesc, line int)
| 882 | } |
| 883 | |
| 884 | func (f *function) Prefix(op int, e exprDesc, line int) exprDesc { |
| 885 | switch op { |
| 886 | case oprMinus: |
| 887 | if e.isNumeral() { |
| 888 | e.value = -e.value |
| 889 | return e |
| 890 | } |
| 891 | return f.encodeArithmetic(opUnaryMinus, f.ExpressionToAnyRegister(e), makeExpression(kindNumber, 0), line) |
| 892 | case oprNot: |
| 893 | return f.encodeNot(e) |
| 894 | case oprLength: |
| 895 | return f.encodeArithmetic(opLength, f.ExpressionToAnyRegister(e), makeExpression(kindNumber, 0), line) |
| 896 | } |
| 897 | panic("unreachable") |
| 898 | } |
| 899 | |
| 900 | func (f *function) Infix(op int, e exprDesc) exprDesc { |
| 901 | switch op { |
no test coverage detected