From a3ab9ef5be74cb54a87674aa48abb0c46f9c58f6 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Fri, 25 Aug 2023 11:21:49 +0200 Subject: chore: appease lint and vet --- codegen/compiler.go | 2 +- lang/golang/go.go | 26 +++++++++++++------------- scanner/scan.go | 7 ------- vm0/func.go | 4 +++- vm1/vm.go | 1 - vm1/vm_test.go | 8 ++++++-- 6 files changed, 23 insertions(+), 25 deletions(-) diff --git a/codegen/compiler.go b/codegen/compiler.go index e0e97ab..6f41850 100644 --- a/codegen/compiler.go +++ b/codegen/compiler.go @@ -24,7 +24,7 @@ type Compiler struct { func NewCompiler() *Compiler { return &Compiler{symbols: map[string]symbol{}, Entry: -1} } type nodedata struct { - ipstart, ipend, symind, fsp int // CFG and symbol node annotations + ipstart, ipend, fsp int // CFG and symbol node annotations } func (c *Compiler) CodeGen(node *parser.Node) (err error) { diff --git a/lang/golang/go.go b/lang/golang/go.go index 604f24c..2ab1781 100644 --- a/lang/golang/go.go +++ b/lang/golang/go.go @@ -48,19 +48,19 @@ var GoScanner = &scanner.Scanner{ var GoParser = &parser.Parser{ Scanner: GoScanner, Spec: map[string]parser.NodeSpec{ - ".": {parser.DotOp, parser.Call, 3}, - "*": {parser.MulOp, 0, 4}, - "+": {parser.AddOp, 0, 5}, - "-": {parser.SubOp, 0, 5}, - "<": {parser.InfOp, 0, 6}, - ":=": {parser.DefOp, 0, 7}, - "=": {parser.AssignOp, 0, 7}, - "if": {parser.IfStmt, parser.Stmt | parser.ExprSep, 0}, - "func": {parser.FuncDecl, parser.Decl | parser.Call, 0}, - "return": {parser.ReturnStmt, parser.Stmt, 0}, - "{..}": {parser.StmtBloc, parser.ExprSep, 0}, - "(..)": {parser.ParBloc, parser.Call, 0}, - `".."`: {parser.StringLit, 0, 0}, + ".": {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}, }, } diff --git a/scanner/scan.go b/scanner/scan.go index 2a4b125..5644932 100644 --- a/scanner/scan.go +++ b/scanner/scan.go @@ -273,13 +273,6 @@ func (sc *Scanner) getNum(src string) (s string, v any) { return s, v } -func (sc *Scanner) getGroupSep(src string) (s string) { - for _, r := range src { - return string(r) - } - return s -} - func (sc *Scanner) getStr(src string, nstart int) (s string, ok bool) { start := src[:nstart] end := sc.End[start] diff --git a/vm0/func.go b/vm0/func.go index 6c95383..6976530 100644 --- a/vm0/func.go +++ b/vm0/func.go @@ -60,7 +60,9 @@ func (i *Interp) declareFunc(r *parser.Node, scope string) { for _, arg := range args { i.push(arg.Interface()) } - i.Run(r.Child[len(r.Child)-1], fscope) + if _, err := i.Run(r.Child[len(r.Child)-1], fscope); err != nil { + panic(err) + } b := len(i.stack) - len(out) for j := range out { res = append(res, reflect.ValueOf(i.stack[b+j])) diff --git a/vm1/vm.go b/vm1/vm.go index 0e9c7f7..f7113f2 100644 --- a/vm1/vm.go +++ b/vm1/vm.go @@ -153,7 +153,6 @@ func (m *Machine) Run() (err error) { } ip++ } - return } func (m *Machine) PushCode(code [][]int64) (p int) { diff --git a/vm1/vm_test.go b/vm1/vm_test.go index cea4f29..257ac44 100644 --- a/vm1/vm_test.go +++ b/vm1/vm_test.go @@ -14,7 +14,9 @@ func TestVM(t *testing.T) { m.Push(v) } m.PushCode(test.code) - m.Run() + if err := m.Run(); err != nil { + t.Errorf("run error: %v", err) + } t.Log(m.mem) r := fmt.Sprintf("%v", m.mem[test.start:test.end]) if r != test.mem { @@ -34,7 +36,9 @@ func BenchmarkVM(b *testing.B) { m.PushCode(test.code) b.StartTimer() - m.Run() + if err := m.Run(); err != nil { + b.Errorf("run error: %v", err) + } } }) } -- cgit v1.2.3