diff options
| author | Marc Vertes <mvertes@free.fr> | 2023-09-01 11:42:55 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2023-09-01 11:42:55 +0200 |
| commit | 459eca16816023fb0afdd6e0948e5406d84e5bc5 (patch) | |
| tree | b752b860d92af8421614d2d147ea953e85a25871 /lang/golang/go.go | |
| parent | 851c793da43be9e4d3319afe440d603c85834045 (diff) | |
parser: skip comment modes
Refctor node kind names by concatenating category and instance, to
allow better sorting. Comments are now parsed and skipped during
generation of AST.
Diffstat (limited to 'lang/golang/go.go')
| -rw-r--r-- | lang/golang/go.go | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/lang/golang/go.go b/lang/golang/go.go index 2ab1781..5075329 100644 --- a/lang/golang/go.go +++ b/lang/golang/go.go @@ -43,24 +43,36 @@ var GoScanner = &scanner.Scanner{ "`": "`", "//": "\n", }, + BlockProp: map[string]uint{ + "(": scanner.CharBlock, + "{": scanner.CharBlock, + "[": scanner.CharBlock, + `"`: scanner.CharStr | scanner.StrEsc | scanner.StrNonl, + "`": scanner.CharStr, + "'": scanner.CharStr | scanner.StrEsc, + "/*": scanner.CharStr, + "//": scanner.CharStr | scanner.ExcludeEnd | scanner.EosValidEnd, + }, } var GoParser = &parser.Parser{ Scanner: GoScanner, Spec: map[string]parser.NodeSpec{ - ".": {Kind: parser.DotOp, Flags: parser.Call, Order: 3}, - "*": {Kind: parser.MulOp, Order: 4}, - "+": {Kind: parser.AddOp, Order: 5}, - "-": {Kind: parser.SubOp, Order: 5}, - "<": {Kind: parser.InfOp, Order: 6}, - ":=": {Kind: parser.DefOp, Order: 7}, - "=": {Kind: parser.AssignOp, Order: 7}, - "if": {Kind: parser.IfStmt, Flags: parser.Stmt | parser.ExprSep}, - "func": {Kind: parser.FuncDecl, Flags: parser.Decl | parser.Call}, - "return": {Kind: parser.ReturnStmt, Flags: parser.Stmt}, - "{..}": {Kind: parser.StmtBloc, Flags: parser.ExprSep}, - "(..)": {Kind: parser.ParBloc, Flags: parser.Call}, - `".."`: {Kind: parser.StringLit}, + ".": {Kind: parser.OpDot, Flags: parser.Call, Order: 3}, + "*": {Kind: parser.OpMultiply, Order: 4}, + "+": {Kind: parser.OpAdd, Order: 5}, + "-": {Kind: parser.OpSubtract, Order: 5}, + "<": {Kind: parser.OpInferior, Order: 6}, + ":=": {Kind: parser.OpDefine, Order: 7}, + "=": {Kind: parser.OpAssign, Order: 7}, + "if": {Kind: parser.StmtIf, Flags: parser.Stmt | parser.ExprSep}, + "func": {Kind: parser.DeclFunc, Flags: parser.Decl | parser.Call}, + "return": {Kind: parser.StmtReturn, Flags: parser.Stmt}, + "{..}": {Kind: parser.BlockStmt, Flags: parser.ExprSep}, + "(..)": {Kind: parser.BlockParen, Flags: parser.Call}, + `".."`: {Kind: parser.LiteralString}, + "//..": {Kind: parser.Comment}, + "/*..": {Kind: parser.Comment}, }, } |
