diff options
Diffstat (limited to 'lang')
| -rw-r--r-- | lang/golang/go.go | 87 |
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}, - }, - */ } |
