code: func (t *tree) parseTernary(cond ast.Node) ast.Node {
  	n1 := t.parseExpr(0)
  	t.expect(itemColon, "ternary")
  	n2 := t.parseExpr(0)
  	result := &ast.TernNode{cond.Position(), cond, n1, n2}
  	if t.peek().typ == itemColon {
  		t.next()
  		return t.parseTernary(result)
  	}
  	return result
  }
docs: // parseTernary parses the ternary operator within an expression.
  // itemTernIf has already been read, and the condition is provided.