Browse Source

builder: Remove blankNode(), use &Node{} instead.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Erik Hollensbe 11 years ago
parent
commit
135f54ccbf
2 changed files with 10 additions and 15 deletions
  1. 8 8
      builder/parser/line_parsers.go
  2. 2 7
      builder/parser/parser.go

+ 8 - 8
builder/parser/line_parsers.go

@@ -20,7 +20,7 @@ var (
 // ignore the current argument. This will still leave a command parsed, but
 // ignore the current argument. This will still leave a command parsed, but
 // will not incorporate the arguments into the ast.
 // will not incorporate the arguments into the ast.
 func parseIgnore(rest string) (*Node, error) {
 func parseIgnore(rest string) (*Node, error) {
-	return blankNode(), nil
+	return &Node{}, nil
 }
 }
 
 
 // used for onbuild. Could potentially be used for anything that represents a
 // used for onbuild. Could potentially be used for anything that represents a
@@ -40,11 +40,11 @@ func parseSubCommand(rest string) (*Node, error) {
 // parse environment like statements. Note that this does *not* handle
 // parse environment like statements. Note that this does *not* handle
 // variable interpolation, which will be handled in the evaluator.
 // variable interpolation, which will be handled in the evaluator.
 func parseEnv(rest string) (*Node, error) {
 func parseEnv(rest string) (*Node, error) {
-	node := blankNode()
+	node := &Node{}
 	rootnode := node
 	rootnode := node
 	strs := TOKEN_WHITESPACE.Split(rest, 2)
 	strs := TOKEN_WHITESPACE.Split(rest, 2)
 	node.Value = strs[0]
 	node.Value = strs[0]
-	node.Next = blankNode()
+	node.Next = &Node{}
 	node.Next.Value = strs[1]
 	node.Next.Value = strs[1]
 
 
 	return rootnode, nil
 	return rootnode, nil
@@ -53,13 +53,13 @@ func parseEnv(rest string) (*Node, error) {
 // parses a whitespace-delimited set of arguments. The result is effectively a
 // parses a whitespace-delimited set of arguments. The result is effectively a
 // linked list of string arguments.
 // linked list of string arguments.
 func parseStringsWhitespaceDelimited(rest string) (*Node, error) {
 func parseStringsWhitespaceDelimited(rest string) (*Node, error) {
-	node := blankNode()
+	node := &Node{}
 	rootnode := node
 	rootnode := node
 	prevnode := node
 	prevnode := node
 	for _, str := range TOKEN_WHITESPACE.Split(rest, -1) { // use regexp
 	for _, str := range TOKEN_WHITESPACE.Split(rest, -1) { // use regexp
 		prevnode = node
 		prevnode = node
 		node.Value = str
 		node.Value = str
-		node.Next = blankNode()
+		node.Next = &Node{}
 		node = node.Next
 		node = node.Next
 	}
 	}
 
 
@@ -80,7 +80,7 @@ func parseString(rest string) (*Node, error) {
 func parseJSON(rest string) (*Node, error) {
 func parseJSON(rest string) (*Node, error) {
 	var (
 	var (
 		myJson   []interface{}
 		myJson   []interface{}
-		next     = blankNode()
+		next     = &Node{}
 		orignext = next
 		orignext = next
 		prevnode = next
 		prevnode = next
 	)
 	)
@@ -98,7 +98,7 @@ func parseJSON(rest string) (*Node, error) {
 			return nil, dockerFileErrJSONNesting
 			return nil, dockerFileErrJSONNesting
 		}
 		}
 		next.Value = str.(string)
 		next.Value = str.(string)
-		next.Next = blankNode()
+		next.Next = &Node{}
 		prevnode = next
 		prevnode = next
 		next = next.Next
 		next = next.Next
 	}
 	}
@@ -124,7 +124,7 @@ func parseMaybeJSON(rest string) (*Node, error) {
 		}
 		}
 	}
 	}
 
 
-	node := blankNode()
+	node := &Node{}
 	node.Value = rest
 	node.Value = rest
 	return node, nil
 	return node, nil
 }
 }

+ 2 - 7
builder/parser/parser.go

@@ -59,11 +59,6 @@ func init() {
 	}
 	}
 }
 }
 
 
-// empty node. Useful for managing structure.
-func blankNode() *Node {
-	return &Node{"", nil, []*Node{}}
-}
-
 // parse a line and return the remainder.
 // parse a line and return the remainder.
 func parseLine(line string) (string, *Node, error) {
 func parseLine(line string) (string, *Node, error) {
 	if line = stripComments(line); line == "" {
 	if line = stripComments(line); line == "" {
@@ -77,7 +72,7 @@ func parseLine(line string) (string, *Node, error) {
 
 
 	cmd, args := splitCommand(line)
 	cmd, args := splitCommand(line)
 
 
-	node := blankNode()
+	node := &Node{}
 	node.Value = cmd
 	node.Value = cmd
 
 
 	sexp, err := fullDispatch(cmd, args)
 	sexp, err := fullDispatch(cmd, args)
@@ -96,7 +91,7 @@ func Parse(rwc io.Reader) (*Node, error) {
 	var child *Node
 	var child *Node
 	var line string
 	var line string
 	var err error
 	var err error
-	root := blankNode()
+	root := &Node{}
 	scanner := bufio.NewScanner(rwc)
 	scanner := bufio.NewScanner(rwc)
 
 
 	for scanner.Scan() {
 	for scanner.Scan() {