Removed struct keyword

This commit is contained in:
Eduard Urbach 2025-04-04 13:32:55 +02:00
parent 42e7c8a306
commit 1a2c21de15
Signed by: eduard
GPG key ID: 49226B848C78F6C8
18 changed files with 44 additions and 40 deletions

View file

@ -31,12 +31,29 @@ func (s *Scanner) scanFile(path string, pkg string) error {
switch tokens[i].Kind {
case token.NewLine:
case token.Comment:
case token.Identifier:
if i+1 >= len(tokens) {
return errors.New(errors.InvalidDefinition, file, tokens[i].End())
}
next := tokens[i+1]
switch next.Kind {
case token.GroupStart:
i, err = s.scanFunction(file, tokens, i)
case token.BlockStart:
i, err = s.scanStruct(file, tokens, i)
case token.GroupEnd:
return errors.New(errors.MissingGroupStart, file, next.Position)
case token.BlockEnd:
return errors.New(errors.MissingBlockStart, file, next.Position)
case token.Invalid:
return errors.New(&errors.InvalidCharacter{Character: next.Text(file.Bytes)}, file, next.Position)
default:
return errors.New(errors.InvalidDefinition, file, next.Position)
}
case token.Import:
i, err = s.scanImport(file, tokens, i)
case token.Struct:
i, err = s.scanStruct(file, tokens, i)
case token.Identifier:
i, err = s.scanFunction(file, tokens, i)
case token.Extern:
i, err = s.scanExtern(file, tokens, i)
case token.Const:

View file

@ -60,7 +60,7 @@ func scanFunctionSignature(file *fs.File, tokens token.List, i int, delimiter to
}
if paramsStart == -1 {
return nil, i, errors.New(errors.ExpectedFunctionParameters, file, tokens[i].Position)
return nil, i, errors.New(errors.InvalidDefinition, file, tokens[i].Position)
}
return nil, i, nil
@ -71,7 +71,7 @@ func scanFunctionSignature(file *fs.File, tokens token.List, i int, delimiter to
continue
}
return nil, i, errors.New(errors.ExpectedFunctionParameters, file, tokens[i].Position)
return nil, i, errors.New(errors.InvalidDefinition, file, tokens[i].Position)
}
// Return type

View file

@ -9,12 +9,6 @@ import (
// scanStruct scans a struct.
func (s *Scanner) scanStruct(file *fs.File, tokens token.List, i int) (int, error) {
i++
if tokens[i].Kind != token.Identifier {
return i, errors.New(errors.ExpectedStructName, file, tokens[i].Position)
}
structName := tokens[i].Text(file.Bytes)
structure := types.NewStruct(file.Package, structName)