From ab69cd9ba61092650abdff6484b12021182385ce Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Mon, 3 Mar 2025 10:49:27 +0100 Subject: fix: improve struct Use 'unsafe' to modify private struct fields, allowing to keep unmodified field names: before they were prefixed with a capital. Parse package statement. Provide a also a default package name for REPL and tests. The support of packages is still incomplete. --- parser/decl.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'parser/decl.go') diff --git a/parser/decl.go b/parser/decl.go index 23b5ed6..094fa9f 100644 --- a/parser/decl.go +++ b/parser/decl.go @@ -248,6 +248,20 @@ func (p *Parser) parseImportLine(in Tokens) (out Tokens, err error) { return out, err } +func (p *Parser) parsePackage(in Tokens) (out Tokens, err error) { + if len(in) != 2 { + return out, errors.New("invalid number of arguments") + } + if in[1].Tok != lang.Ident { + return out, errors.New("not an ident") + } + if p.pkgName != "" { + return out, errors.New("package already set") + } + p.pkgName = in[1].Str + return out, err +} + func (p *Parser) parseType(in Tokens) (out Tokens, err error) { if len(in) < 2 { return out, ErrMissingType -- cgit v1.2.3