summaryrefslogtreecommitdiff
path: root/parser/kind.go
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2023-09-01 11:42:55 +0200
committerMarc Vertes <mvertes@free.fr>2023-09-01 11:42:55 +0200
commit459eca16816023fb0afdd6e0948e5406d84e5bc5 (patch)
treeb752b860d92af8421614d2d147ea953e85a25871 /parser/kind.go
parent851c793da43be9e4d3319afe440d603c85834045 (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 'parser/kind.go')
-rw-r--r--parser/kind.go68
1 files changed, 36 insertions, 32 deletions
diff --git a/parser/kind.go b/parser/kind.go
index d570358..d004471 100644
--- a/parser/kind.go
+++ b/parser/kind.go
@@ -2,46 +2,50 @@ package parser
import "fmt"
+// kind defines the AST node kind. Its name is the concatenation
+// of a category (Block, Decl, Expr, Op, Stmt) and an instance name.
type Kind int
const (
Undefined = Kind(iota)
- FuncDecl
- CallExpr
- IfStmt
- StmtBloc
- ReturnStmt
+ BlockParen
+ BlockStmt
+ Comment
+ DeclFunc
+ ExprCall
Ident
- StringLit
- NumberLit
- ParBloc
- DotOp
- MulOp
- AddOp
- SubOp
- AssignOp
- DefOp
- InfOp
+ LiteralNumber
+ LiteralString
+ OpAdd
+ OpAssign
+ OpDefine
+ OpDot
+ OpInferior
+ OpMultiply
+ OpSubtract
+ StmtIf
+ StmtReturn
)
var kindString = [...]string{
- Undefined: "Undefined",
- FuncDecl: "FuncDecl",
- CallExpr: "CallExpr",
- IfStmt: "IfStmt",
- StmtBloc: "StmtBloc",
- ReturnStmt: "ReturnStmt",
- Ident: "Ident",
- StringLit: "StringLit",
- NumberLit: "NumberLit",
- ParBloc: "ParBloc",
- DotOp: "DotOp",
- MulOp: "MulOp",
- AddOp: "AddOP",
- SubOp: "SubOp",
- AssignOp: "AssignOp",
- DefOp: "DefOp",
- InfOp: "InfOp",
+ Undefined: "Undefined",
+ BlockParen: "BlockParen",
+ BlockStmt: "BlockStmt",
+ Comment: "Comment",
+ DeclFunc: "DeclFunc",
+ ExprCall: "ExprCall",
+ Ident: "Ident",
+ LiteralString: "LiteralString",
+ LiteralNumber: "LiteralNumber",
+ OpAdd: "OpAdd",
+ OpAssign: "OpAssign",
+ OpDefine: "OpDefine",
+ OpDot: "OpDot",
+ OpInferior: "OpInferior",
+ OpMultiply: "OpMultiply",
+ OpSubtract: "OpSubtract",
+ StmtIf: "StmtIf",
+ StmtReturn: "StmtReturn",
}
func (k Kind) String() string {