src/Pure/General/yxml.scala
changeset 29180 62513d4d34c2
parent 29140 e7ac5bb20aed
child 29521 736bf7117153
equal deleted inserted replaced
29179:f27d63717075 29180:62513d4d34c2
    67 
    67 
    68     /* stack operations */
    68     /* stack operations */
    69 
    69 
    70     var stack: List[((String, XML.Attributes), List[XML.Tree])] = null
    70     var stack: List[((String, XML.Attributes), List[XML.Tree])] = null
    71 
    71 
    72     def add(x: XML.Tree) = stack match {
    72     def add(x: XML.Tree) = (stack: @unchecked) match {
    73       case ((elem, body) :: pending) => stack = (elem, x :: body) :: pending
    73       case ((elem, body) :: pending) => stack = (elem, x :: body) :: pending
    74     }
    74     }
    75 
    75 
    76     def push(name: String, atts: XML.Attributes) =
    76     def push(name: String, atts: XML.Attributes) =
    77       if (name == "") err_element()
    77       if (name == "") err_element()
    78       else stack = ((name, atts), Nil) :: stack
    78       else stack = ((name, atts), Nil) :: stack
    79 
    79 
    80     def pop() = stack match {
    80     def pop() = (stack: @unchecked) match {
    81       case ((("", _), _) :: _) => err_unbalanced("")
    81       case ((("", _), _) :: _) => err_unbalanced("")
    82       case (((name, atts), body) :: pending) =>
    82       case (((name, atts), body) :: pending) =>
    83         stack = pending; add(XML.Elem(name, atts, body.reverse))
    83         stack = pending; add(XML.Elem(name, atts, body.reverse))
    84     }
    84     }
    85 
    85