diff options
Diffstat (limited to 'src/tparse')
-rw-r--r-- | src/tparse/token.go | 2 | ||||
-rw-r--r-- | src/tparse/tree-list.go | 6 | ||||
-rw-r--r-- | src/tparse/tree-preproc.go | 8 | ||||
-rw-r--r-- | src/tparse/tree-statement.go | 5 | ||||
-rw-r--r-- | src/tparse/tree-value.go | 14 |
5 files changed, 15 insertions, 20 deletions
diff --git a/src/tparse/token.go b/src/tparse/token.go index b358568..620dab2 100644 --- a/src/tparse/token.go +++ b/src/tparse/token.go @@ -28,8 +28,6 @@ type Token struct { type Node struct { Data Token - IsBlock bool - Sub []Node } diff --git a/src/tparse/tree-list.go b/src/tparse/tree-list.go index d415594..3acc426 100644 --- a/src/tparse/tree-list.go +++ b/src/tparse/tree-list.go @@ -31,7 +31,7 @@ func getClosing(start string) string { // Parse a list of values func parseValueList(tokens *[]Token, tok, max int) (Node, int) { - out := Node{Data: Token{Type: 10, Data: "vlist"}, IsBlock: false} + out := Node{Data: Token{Type: 10, Data: "vlist"}} var tmp Node for ; tok < max; { @@ -56,7 +56,7 @@ func parseValueList(tokens *[]Token, tok, max int) (Node, int) { // Parse list of parameters func parseParamList(tokens *[]Token, tok, max int) (Node, int) { - out := Node{Data: Token{Type: 10, Data: "plist"}, IsBlock: false} + out := Node{Data: Token{Type: 10, Data: "plist"}} var tmp Node if isTypeThenValue(tokens, tok, max) { @@ -95,7 +95,7 @@ func parseParamList(tokens *[]Token, tok, max int) (Node, int) { // Parse a list of types func parseTypeList(tokens *[]Token, tok, max int) (Node, int) { - out := Node{Data: Token{Type: 10, Data: "tlist"}, IsBlock: false} + out := Node{Data: Token{Type: 10, Data: "tlist"}} var tmp Node for ; tok < max; { diff --git a/src/tparse/tree-preproc.go b/src/tparse/tree-preproc.go index 8fec30c..2e56705 100644 --- a/src/tparse/tree-preproc.go +++ b/src/tparse/tree-preproc.go @@ -17,7 +17,7 @@ package tparse func parsePreBlock (tokens *[]Token, tok, max int) (Node, int) { - out := Node{IsBlock: true} + out := Node{} out.Data = Token{Type: 11, Data: (*tokens)[tok].Data} tok++ @@ -29,7 +29,7 @@ func parsePreBlock (tokens *[]Token, tok, max int) (Node, int) { break } - tmp := Node{Data: t, IsBlock: false} + tmp := Node{Data: t} out.Sub = append(out.Sub, tmp) } @@ -37,12 +37,12 @@ func parsePreBlock (tokens *[]Token, tok, max int) (Node, int) { } func parsePre (tokens *[]Token, tok, max int) (Node, int) { - out := Node{IsBlock: false} + out := Node{} out.Data = Token{Type: 11, Data: (*tokens)[tok].Data} tok++ - tmp := Node{Data: (*tokens)[tok], IsBlock: false} + tmp := Node{Data: (*tokens)[tok]} out.Sub = append(out.Sub, tmp) tok++ diff --git a/src/tparse/tree-statement.go b/src/tparse/tree-statement.go index ec6230c..25ddab6 100644 --- a/src/tparse/tree-statement.go +++ b/src/tparse/tree-statement.go @@ -20,7 +20,6 @@ package tparse func parseBlock(tokens *[]Token, tok, max int) (Node, int) { out, tmp, def, name, sparse := Node{}, Node{}, Node{}, false, false out.Data = Token{Type: 10, Data: "block"} - out.IsBlock = true def.Data = Token{Type: 10, Data: "bdef"} @@ -90,7 +89,7 @@ func parseBlock(tokens *[]Token, tok, max int) (Node, int) { if (*tokens)[tok+1].Type != DEFWORD && !name { errOut("You must provide a name for a module or method.", t) } else if !name { - tmp.Sub = append(tmp.Sub, Node{(*tokens)[tok+1], false, []Node{}}) + tmp.Sub = append(tmp.Sub, Node{(*tokens)[tok+1], []Node{}}) tok++ } tmp.Data = t @@ -172,9 +171,7 @@ func parseStatement(tokens *[]Token, tok, max int) (Node, int) { func keywordStatement(tokens *[]Token, tok, max int) (Node, int) { out := Node{} out.Data = (*tokens)[tok] - out.IsBlock = false var tmp Node - tmp.IsBlock = false if tok + 1 < max { tok++ diff --git a/src/tparse/tree-value.go b/src/tparse/tree-value.go index 330194d..609e9d7 100644 --- a/src/tparse/tree-value.go +++ b/src/tparse/tree-value.go @@ -108,7 +108,7 @@ func parseUnaryOps(tokens *[]Token, tok, max int) (Node) { if vnode != &out { errOut("Composite values may not use unary operators.", out.Data) } - (*vnode) = Node{Token{10, "comp", 0, 0}, false, []Node{Node{}}} + (*vnode) = Node{Token{10, "comp", 0, 0}, []Node{Node{}}} (*vnode).Sub[0], tok = parseValueList(tokens, tok + 1, max) val = true comp = true @@ -123,7 +123,7 @@ func parseUnaryOps(tokens *[]Token, tok, max int) (Node) { if !prs { errOut("Parser bug! Operator failed to load into AST.", t) } else { - (*vnode) = Node{t, false, []Node{Node{}}} + (*vnode) = Node{t, []Node{Node{}}} vnode = &((*vnode).Sub[0]) } default: @@ -181,7 +181,7 @@ func parseUnaryOps(tokens *[]Token, tok, max int) (Node) { // Works? Please test. func parseBinaryOp(tokens *[]Token, tok, max int) (Node) { - out := Node{IsBlock: false} + out := Node{} first := tok var high, highOrder, bincount int = first, 0, 0 var curl, brak, parn int = 0, 0, 0 @@ -327,12 +327,12 @@ func parseValue(tokens *[]Token, tok, max int) (Node, int) { // Works? Please test. func parseTypeParams(tokens *[]Token, tok, max int) (Node, int) { - out := Node{Data: (*tokens)[tok], IsBlock: false} + out := Node{Data: (*tokens)[tok]} tok++ for ; tok < max; tok++{ t := (*tokens)[tok] - tmp := Node{IsBlock: false} + tmp := Node{} switch t.Type { case DELIMIT: if tok < max { @@ -368,7 +368,7 @@ func parseTypeParams(tokens *[]Token, tok, max int) (Node, int) { // TODO: make sure this actually works func parseType(tokens *[]Token, tok, max int, param bool) (Node, int) { - out := Node{Data: Token{Type: 10, Data: "type"}, IsBlock: false} + out := Node{Data: Token{Type: 10, Data: "type"}} for ; tok < max; tok++ { t := (*tokens)[tok] @@ -392,7 +392,7 @@ func parseType(tokens *[]Token, tok, max int, param bool) (Node, int) { out.Sub = append(out.Sub, tmp) if param && (*tokens)[tok].Data == "`" { - tmp = Node{(*tokens)[tok], false, []Node{}} + tmp = Node{(*tokens)[tok], []Node{}} out.Sub = append(out.Sub, tmp) tok++ } |