diff options
Diffstat (limited to 'lang')
| -rw-r--r-- | lang/golang/go.go | 1 | ||||
| -rw-r--r-- | lang/token.go | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lang/golang/go.go b/lang/golang/go.go index 26af4f3..f5a6578 100644 --- a/lang/golang/go.go +++ b/lang/golang/go.go @@ -91,6 +91,7 @@ var GoSpec = &lang.Spec{ "<=": {TokenId: lang.LessEqual, Precedence: 3}, ">=": {TokenId: lang.GreaterEqual, Precedence: 3}, "->": {TokenId: lang.Arrow}, + "!": {TokenId: lang.Not}, "++": {TokenId: lang.Inc, SkipSemi: true}, "--": {TokenId: lang.Dec, SkipSemi: true}, diff --git a/lang/token.go b/lang/token.go index a894c98..4bf9bf2 100644 --- a/lang/token.go +++ b/lang/token.go @@ -116,6 +116,16 @@ const ( EqualSet ) +var UnaryOp = map[TokenId]TokenId{ + Add: Plus, // + + And: Address, // & + Not: Not, // ! + Mul: Deref, // * + Sub: Minus, // - + Tilde: Tilde, // ~ + Xor: BitComp, // ^ +} + func (t TokenId) IsKeyword() bool { return t >= Break && t <= Var } func (t TokenId) IsLiteral() bool { return t >= Char && t <= String } func (t TokenId) IsOperator() bool { return t >= Add && t <= Tilde } |
