From 459eca16816023fb0afdd6e0948e5406d84e5bc5 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Fri, 1 Sep 2023 11:42:55 +0200 Subject: 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. --- parser/kind.go | 68 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 32 deletions(-) (limited to 'parser/kind.go') 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 { -- cgit v1.2.3