diff options
| author | Marc Vertes <mvertes@free.fr> | 2025-11-27 12:40:35 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2025-11-27 12:40:35 +0100 |
| commit | d99d69391eeae129cad2d5c2c90ce700db01b11c (patch) | |
| tree | 0286d21e88919b9a9f86081d057b065c19f8ec38 /parser/parse.go | |
| parent | aed20c1c453e50f716c454c0bd7e4995a0f5d898 (diff) | |
chore: move compiler and interpreter in their own packages
Diffstat (limited to 'parser/parse.go')
| -rw-r--r-- | parser/parse.go | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/parser/parse.go b/parser/parse.go index 266ce8b..3a7ce5e 100644 --- a/parser/parse.go +++ b/parser/parse.go @@ -16,8 +16,8 @@ import ( type Parser struct { *scanner.Scanner - symbols map[string]*symbol - function *symbol + Symbols map[string]*Symbol + function *Symbol scope string fname string pkgName string // current package name @@ -45,7 +45,7 @@ func NewParser(scanner *scanner.Scanner, noPkg bool) *Parser { return &Parser{ Scanner: scanner, noPkg: noPkg, - symbols: initUniverse(), + Symbols: initUniverse(), framelen: map[string]int{}, labelCount: map[string]int{}, } @@ -255,10 +255,10 @@ func (p *Parser) parseFunc(in Tokens) (out Tokens, err error) { p.fname = fname ofunc := p.function funcScope := p.funcScope - s, _, ok := p.getSym(fname, p.scope) + s, _, ok := p.GetSym(fname, p.scope) if !ok { - s = &symbol{used: true} - p.symbols[p.scope+fname] = s + s = &Symbol{Used: true} + p.Symbols[p.scope+fname] = s } p.pushScope(fname) p.funcScope = p.scope @@ -282,8 +282,8 @@ func (p *Parser) parseFunc(in Tokens) (out Tokens, err error) { if err != nil { return out, err } - s.kind = symFunc - s.typ = typ + s.Kind = SymFunc + s.Type = typ p.function = s toks, err := p.Parse(in[len(in)-1].Block()) @@ -479,8 +479,8 @@ func (p *Parser) parseReturn(in Tokens) (out Tokens, err error) { // TODO: the function symbol should be already present in the parser context. // otherwise no way to handle anonymous func. s := p.function - in[0].Beg = s.typ.Rtype.NumOut() - in[0].End = s.typ.Rtype.NumIn() + in[0].Beg = s.Type.Rtype.NumOut() + in[0].End = s.Type.Rtype.NumIn() out = append(out, in[0]) return out, err } |
