Removed struct keyword
This commit is contained in:
parent
42e7c8a306
commit
1a2c21de15
18 changed files with 44 additions and 40 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue