Object initialization value parsing is now done recursively

This commit is contained in:
Sasha Koshka 2022-08-17 13:26:18 -04:00
parent 31bb36a4f7
commit aee90757e3
2 changed files with 16 additions and 11 deletions

View File

@ -14,12 +14,12 @@ func (parser *ParsingOperation) parseBody () (err error) {
case "data": case "data":
var section *DataSection var section *DataSection
section, err = parser.parseDataSection() section, err = parser.parseDataSection()
if err != nil { return }
if parser.tree.dataSections == nil { if parser.tree.dataSections == nil {
parser.tree.dataSections = parser.tree.dataSections =
make(map[string] *DataSection) make(map[string] *DataSection)
} }
parser.tree.dataSections[section.name] = section parser.tree.dataSections[section.name] = section
if err != nil { return }
case "type": case "type":
case "face": case "face":
case "enum": case "enum":

View File

@ -68,6 +68,7 @@ func (parser *ParsingOperation) parseInitializationValues (
if parser.token.Is(lexer.TokenKindDot) { if parser.token.Is(lexer.TokenKindDot) {
// object initialization
parser.previousToken() parser.previousToken()
var initializationValues ObjectInitializationValues var initializationValues ObjectInitializationValues
initializationValues, err = parser.parseObjectInitializationValues() initializationValues, err = parser.parseObjectInitializationValues()