From 02aac12bd9c6f329135234b9a9446008d8f6dfa5 Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Tue, 17 Nov 2020 16:17:24 -0500 Subject: Parse list/value list fixes --- src/tparse/tree.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/tparse/tree.go b/src/tparse/tree.go index ced25d7..61e9be7 100644 --- a/src/tparse/tree.go +++ b/src/tparse/tree.go @@ -29,27 +29,25 @@ func errOut(message string, token Token) { // Parse a list of values func parseValueList(tokens *[]Token, tok, max int) (Node, int) { out := Node{} - out.Data = Token{Type: 9, Data: "list"} - - currentType := Node{} - currentType.Data = Token{Data: "undefined"} + out.Data = Token{Type: 10, Data: "list"} + var tmp Node tok++ for ; tok < max; tok++ { - var tmp Node - tmp, tok = parseValue(tokens, tok, max) - makeParent(&out, tmp) - t := (*tokens)[tok] switch t.Data { case ")", "]", "}": return out, tok case ",": + tok++ default: - errOut("Error: unexpected token when parsing list, expected ',' or end of list", t) + errOut("Error: unexpected token when parsing a list of types", t) } + + tmp, tok = parseValue(tokens, tok, max) + out.Sub = append(out.Sub, tmp) } return out, tok @@ -111,9 +109,11 @@ func parseDefList(tokens *[]Token, tok, max int) (Node, int) { func parseTypeList(tokens *[]Token, tok, max int) (Node, int) { out := Node{} - out.Data = Token{Type: 10, Data: "list"} + out.Data = Token{Type: 9, Data: "list"} var tmp Node + tok++ + for ; tok < max; tok++ { t := (*tokens)[tok] -- cgit v1.2.3