diff options
Diffstat (limited to 'lang')
| -rw-r--r-- | lang/golang/go.go | 31 | ||||
| -rw-r--r-- | lang/spec.go | 3 |
2 files changed, 20 insertions, 14 deletions
diff --git a/lang/golang/go.go b/lang/golang/go.go index 7f66594..44cbd3a 100644 --- a/lang/golang/go.go +++ b/lang/golang/go.go @@ -70,19 +70,24 @@ var GoSpec = &lang.Spec{ ":": {TokenId: lang.Colon}, // Operators - "&": {TokenId: lang.And}, - "*": {TokenId: lang.Mul}, - "+": {TokenId: lang.Add}, - "-": {TokenId: lang.Sub}, - "=": {TokenId: lang.Assign}, - "<": {TokenId: lang.Less}, - ">": {TokenId: lang.Greater}, - "^": {TokenId: lang.Xor}, + "&": {TokenId: lang.And, Precedence: 1}, + "*": {TokenId: lang.Mul, Precedence: 1}, + "/": {TokenId: lang.Quo, Precedence: 1}, + "%": {TokenId: lang.Rem, Precedence: 1}, + "+": {TokenId: lang.Add, Precedence: 2}, + "-": {TokenId: lang.Sub, Precedence: 2}, + "=": {TokenId: lang.Assign, Precedence: 6}, + "+=": {TokenId: lang.AddAssign, Precedence: 6}, + "<": {TokenId: lang.Less, Precedence: 3}, + ">": {TokenId: lang.Greater, Precedence: 3}, + "^": {TokenId: lang.Xor, Precedence: 2}, "~": {TokenId: lang.Tilde}, - ":=": {TokenId: lang.Define}, - "==": {TokenId: lang.Equal}, - "<=": {TokenId: lang.LessEqual}, - ">=": {TokenId: lang.GreaterEqual}, + "&&": {TokenId: lang.Land, Precedence: 4}, + "||": {TokenId: lang.Lor, Precedence: 5}, + ":=": {TokenId: lang.Define, Precedence: 6}, + "==": {TokenId: lang.Equal, Precedence: 3}, + "<=": {TokenId: lang.LessEqual, Precedence: 3}, + ">=": {TokenId: lang.GreaterEqual, Precedence: 3}, "->": {TokenId: lang.Arrow}, "++": {TokenId: lang.Inc, SkipSemi: true}, "--": {TokenId: lang.Dec, SkipSemi: true}, @@ -93,7 +98,7 @@ var GoSpec = &lang.Spec{ "chan": {TokenId: lang.Chan, SkipSemi: true}, "const": {TokenId: lang.Const, SkipSemi: true}, "continue": {TokenId: lang.Continue}, - "default": {TokenId: lang.Default, SkipSemi: true}, + "default": {TokenId: lang.Case, SkipSemi: true}, "defer": {TokenId: lang.Defer, SkipSemi: true}, "else": {TokenId: lang.Else, SkipSemi: true}, "fallthrough": {TokenId: lang.Fallthrough}, diff --git a/lang/spec.go b/lang/spec.go index c5b50a4..a910f70 100644 --- a/lang/spec.go +++ b/lang/spec.go @@ -20,7 +20,8 @@ const ASCIILen = 1 << 7 // 128 type TokenProp struct { TokenId - SkipSemi bool // automatic semicolon insertion after newline + SkipSemi bool // automatic semicolon insertion after newline + Precedence int // operator precedence } type Spec struct { |
