diff options
| author | Marc Vertes <mvertes@free.fr> | 2023-11-15 22:38:46 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2023-11-15 22:38:46 +0100 |
| commit | a79e558d825c5b777c95c5e098b01391ee36781e (patch) | |
| tree | 977e5131eee46197a6e72377a168df23ca356948 /parser/decl.go | |
| parent | a4d7fb2da6a8390b818dae8d07391c7d76e365e9 (diff) | |
parser: parse struct type declarations
Recursive structs and embedded structs are not supported yet.
Diffstat (limited to 'parser/decl.go')
| -rw-r--r-- | parser/decl.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/parser/decl.go b/parser/decl.go index ba68da0..782b57a 100644 --- a/parser/decl.go +++ b/parser/decl.go @@ -48,7 +48,7 @@ func (p *Parser) parseConstLine(in Tokens) (out Tokens, err error) { } var vars []string if _, vars, err = p.parseParamTypes(decl, parseTypeVar); err != nil { - if errors.Is(err, missingTypeError) { + if errors.Is(err, MissingTypeErr) { for _, lt := range decl.Split(lang.Comma) { vars = append(vars, lt[0].Str) // TODO: compute type from rhs @@ -188,7 +188,7 @@ var gotok = map[lang.TokenId]token.Token{ func (p *Parser) ParseType(in Tokens) (out Tokens, err error) { if len(in) < 2 { - return out, missingTypeError + return out, MissingTypeErr } if in[1].Id != lang.ParenBlock { return p.parseTypeLine(in[1:]) @@ -208,7 +208,7 @@ func (p *Parser) ParseType(in Tokens) (out Tokens, err error) { func (p *Parser) parseTypeLine(in Tokens) (out Tokens, err error) { if len(in) < 2 { - return out, missingTypeError + return out, MissingTypeErr } if in[0].Id != lang.Ident { return out, errors.New("not an ident") @@ -254,7 +254,7 @@ func (p *Parser) parseVarLine(in Tokens) (out Tokens, err error) { } var vars []string if _, vars, err = p.parseParamTypes(decl, parseTypeVar); err != nil { - if errors.Is(err, missingTypeError) { + if errors.Is(err, MissingTypeErr) { for _, lt := range decl.Split(lang.Comma) { vars = append(vars, lt[0].Str) // TODO: compute type from rhs |
