diff options
| author | Marc Vertes <mvertes@free.fr> | 2023-08-25 11:21:49 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2023-08-25 11:21:49 +0200 |
| commit | a3ab9ef5be74cb54a87674aa48abb0c46f9c58f6 (patch) | |
| tree | 570f7a776ca02d3da467d7afc84232397ba91d17 | |
| parent | 706ca65800dfab293a0210b56602e1e9f8076fcc (diff) | |
chore: appease lint and vet
| -rw-r--r-- | codegen/compiler.go | 2 | ||||
| -rw-r--r-- | lang/golang/go.go | 26 | ||||
| -rw-r--r-- | scanner/scan.go | 7 | ||||
| -rw-r--r-- | vm0/func.go | 4 | ||||
| -rw-r--r-- | vm1/vm.go | 1 | ||||
| -rw-r--r-- | 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])) @@ -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) + } } }) } |
