summaryrefslogtreecommitdiff
path: root/lang/golang/go.go
diff options
context:
space:
mode:
Diffstat (limited to 'lang/golang/go.go')
-rw-r--r--lang/golang/go.go87
1 files changed, 11 insertions, 76 deletions
diff --git a/lang/golang/go.go b/lang/golang/go.go
index b1213e5..603b256 100644
--- a/lang/golang/go.go
+++ b/lang/golang/go.go
@@ -94,7 +94,7 @@ var GoSpec = &lang.Spec{
"chan": lang.Chan,
"const": lang.Const,
"continue": lang.Continue,
- "default": lang.Default,
+ "default": lang.Case, // Consider "default" as an empty "case" clause.
"defer": lang.Defer,
"else": lang.Else,
"fallthrough": lang.Fallthrough,
@@ -126,12 +126,19 @@ var GoSpec = &lang.Spec{
lang.Sub: {Precedence: 4},
lang.Xor: {Precedence: 4},
lang.Or: {Precedence: 4},
+ lang.Equal: {Precedence: 3},
lang.LessEqual: {Precedence: 3},
lang.GreaterEqual: {Precedence: 3},
lang.Less: {Precedence: 3},
lang.Greater: {Precedence: 3},
- lang.Land: {Precedence: 2},
- lang.Lor: {Precedence: 1},
+ lang.Land: {Precedence: 1},
+ lang.Lor: {Precedence: 0},
+ lang.Minus: {Precedence: 6},
+ lang.Not: {Precedence: 6},
+ lang.Call: {Precedence: 6},
+ lang.Index: {Precedence: 6},
+ lang.Period: {Precedence: 7},
+ lang.Colon: {Precedence: 7},
lang.Inc: {SkipSemi: true},
lang.Dec: {SkipSemi: true},
lang.Case: {SkipSemi: true},
@@ -155,78 +162,6 @@ var GoSpec = &lang.Spec{
lang.Switch: {SkipSemi: true},
lang.Type: {SkipSemi: true},
lang.Var: {SkipSemi: true},
+ lang.MaxTok: {}, // To ensure that all Tokens have a TokenProp.
},
- /*
- TokenProps: map[string]lang.TokenProp{
- // Block tokens (can be nested)
- "{..}": {Token: lang.BraceBlock},
- "[..]": {Token: lang.BracketBlock},
- "(..)": {Token: lang.ParenBlock},
-
- // String tokens (not nested)
- "//..": {Token: lang.Comment},
- "/*..": {Token: lang.Comment},
- `".."`: {Token: lang.String},
- "`..`": {Token: lang.String},
-
- // Separators
- ",": {Token: lang.Comma},
- ";": {Token: lang.Semicolon},
- ".": {Token: lang.Period},
- ":": {Token: lang.Colon},
-
- // Operators
- "&": {Token: lang.And, Precedence: 1},
- "*": {Token: lang.Mul, Precedence: 3},
- "/": {Token: lang.Quo, Precedence: 1},
- "%": {Token: lang.Rem, Precedence: 1},
- "<<": {Token: lang.Shl, Precedence: 1},
- ">>": {Token: lang.Shr, Precedence: 1},
- "+": {Token: lang.Add, Precedence: 2},
- "-": {Token: lang.Sub, Precedence: 2},
- "=": {Token: lang.Assign, Precedence: 1},
- "+=": {Token: lang.AddAssign, Precedence: 1},
- "<": {Token: lang.Less, Precedence: 1},
- ">": {Token: lang.Greater, Precedence: 1},
- "^": {Token: lang.Xor, Precedence: 2},
- "~": {Token: lang.Tilde},
- "&&": {Token: lang.Land, Precedence: 4},
- "||": {Token: lang.Lor, Precedence: 5},
- ":=": {Token: lang.Define, Precedence: 1},
- "==": {Token: lang.Equal, Precedence: 1},
- "<=": {Token: lang.LessEqual, Precedence: 1},
- ">=": {Token: lang.GreaterEqual, Precedence: 1},
- "->": {Token: lang.Arrow},
- "!": {Token: lang.Not},
- "++": {Token: lang.Inc, SkipSemi: true},
- "--": {Token: lang.Dec, SkipSemi: true},
-
- // Reserved keywords
- "break": {Token: lang.Break},
- "case": {Token: lang.Case, SkipSemi: true},
- "chan": {Token: lang.Chan, SkipSemi: true},
- "const": {Token: lang.Const, SkipSemi: true},
- "continue": {Token: lang.Continue},
- "default": {Token: lang.Case, SkipSemi: true},
- "defer": {Token: lang.Defer, SkipSemi: true},
- "else": {Token: lang.Else, SkipSemi: true},
- "fallthrough": {Token: lang.Fallthrough},
- "for": {Token: lang.For, SkipSemi: true},
- "func": {Token: lang.Func, SkipSemi: true},
- "go": {Token: lang.Go, SkipSemi: true},
- "goto": {Token: lang.Goto, SkipSemi: true},
- "if": {Token: lang.If, SkipSemi: true},
- "import": {Token: lang.Import, SkipSemi: true},
- "interface": {Token: lang.Interface, SkipSemi: true},
- "map": {Token: lang.Map, SkipSemi: true},
- "package": {Token: lang.Package, SkipSemi: true},
- "range": {Token: lang.Range, SkipSemi: true},
- "return": {Token: lang.Return},
- "select": {Token: lang.Select, SkipSemi: true},
- "struct": {Token: lang.Struct, SkipSemi: true},
- "switch": {Token: lang.Switch, SkipSemi: true},
- "type": {Token: lang.Type, SkipSemi: true},
- "var": {Token: lang.Var, SkipSemi: true},
- },
- */
}