Fixed enum parsing

I think I did anyways. It wont parse either way becasue I haven't implemented
lists.
This commit is contained in:
Sasha Koshka 2022-09-27 17:36:39 -04:00
parent 38409db74b
commit 37a216a53d
2 changed files with 11 additions and 10 deletions

View File

@ -61,18 +61,11 @@ func (parser *ParsingOperation) parseEnumMembers (
// if we've left the block, stop parsing // if we've left the block, stop parsing
if !parser.token.Is(lexer.TokenKindIndent) { return } if !parser.token.Is(lexer.TokenKindIndent) { return }
if parser.token.Value().(int) != 1 { return } if parser.token.Value().(int) != 1 { return }
err = parser.nextToken(lexer.TokenKindMinus)
if err != nil { return }
var member EnumMember var member EnumMember
member, err = parser.parseEnumMember() member, err = parser.parseEnumMember()
into.members = append(into.members, member) into.members = append(into.members, member)
if err != nil { return } if err != nil { return }
err = parser.expect(lexer.TokenKindNewline)
if err != nil { return }
err = parser.nextToken()
if err != nil { return }
} }
} }
@ -81,7 +74,7 @@ func (parser *ParsingOperation) parseEnumMember () (
member EnumMember, member EnumMember,
err error, err error,
) { ) {
err = parser.expect(lexer.TokenKindMinus) err = parser.nextToken(lexer.TokenKindMinus)
if err != nil { return } if err != nil { return }
// get name // get name
@ -98,6 +91,9 @@ func (parser *ParsingOperation) parseEnumMember () (
// if we have exited the member, return // if we have exited the member, return
if !parser.token.Is(lexer.TokenKindIndent) { return } if !parser.token.Is(lexer.TokenKindIndent) { return }
if parser.token.Value().(int) != 2 { return } if parser.token.Value().(int) != 2 { return }
err = parser.nextToken()
if err != nil { return }
} }
// get value // get value
@ -105,5 +101,8 @@ func (parser *ParsingOperation) parseEnumMember () (
err = parser.expect(lexer.TokenKindNewline) err = parser.expect(lexer.TokenKindNewline)
if err != nil { return } if err != nil { return }
err = parser.nextToken()
if err != nil { return }
return return
} }

View File

@ -215,8 +215,10 @@ func (section EnumSection) ToString (indent int) (output string) {
section.what.ToString(), "\n") section.what.ToString(), "\n")
for _, member := range section.members { for _, member := range section.members {
output += doIndent(indent + 1, "- ", member.name, "") output += doIndent(indent + 1, "- ", member.name)
output += member.argument.ToString(indent, false) if member.argument.kind != ArgumentKindNil {
output += " " + member.argument.ToString(indent, false)
}
output += "\n" output += "\n"
} }
return return