Untested, updated enum parsing
This commit is contained in:
parent
26f887dfcc
commit
870a33f4c2
@ -91,32 +91,19 @@ func (parser *ParsingOperation) parseEnumMember () (
|
|||||||
member.name = parser.token.Value().(string)
|
member.name = parser.token.Value().(string)
|
||||||
|
|
||||||
// see if value exists
|
// see if value exists
|
||||||
err = parser.nextToken (
|
err = parser.nextToken()
|
||||||
lexer.TokenKindColon,
|
|
||||||
lexer.TokenKindNewline)
|
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
if parser.token.Is(lexer.TokenKindNewline) {
|
||||||
if parser.token.Is(lexer.TokenKindColon) {
|
parser.nextToken()
|
||||||
err = parser.nextToken()
|
// if we have exited the member, return
|
||||||
if err != nil { return }
|
if !parser.token.Is(lexer.TokenKindIndent) { return }
|
||||||
err = parser.skipWhitespace()
|
if parser.token.Value().(int) != 2 { return }
|
||||||
if err != nil { return }
|
|
||||||
err = parser.expect (
|
|
||||||
lexer.TokenKindLessThan,
|
|
||||||
lexer.TokenKindLParen)
|
|
||||||
if err != nil { return }
|
|
||||||
|
|
||||||
if parser.token.Is(lexer.TokenKindLessThan) {
|
|
||||||
// parse value
|
|
||||||
member.value, err = parser.parseBasicDefaultValue()
|
|
||||||
if err != nil { return }
|
|
||||||
|
|
||||||
} else if parser.token.Is(lexer.TokenKindLParen) {
|
|
||||||
// parse default values
|
|
||||||
member.value, err = parser.parseObjectDefaultValue()
|
|
||||||
if err != nil { return }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get value
|
||||||
|
member.argument, err = parser.parseArgument()
|
||||||
|
err = parser.expect(lexer.TokenKindNewline)
|
||||||
|
if err != nil { return }
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user