summaryrefslogtreecommitdiff
path: root/lang/golang
diff options
context:
space:
mode:
Diffstat (limited to 'lang/golang')
-rw-r--r--lang/golang/go.go38
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},
},
}