def parse_piece
      s0 = @current_pos
      s1 = match_str("成")
      s1 = "" if s1 == :failed
      s2 = match_regexp(/^[歩香桂銀金角飛王玉と杏圭全馬竜龍]/)
      if s2 != :failed
        @reported_pos = s0
        kind2csa(s1 + s2)
      else
        @current_pos = s0
        :failed
      end
    end
def parse_piece
      s0 = @current_pos
      s1 = match_str("成")
      s1 = "" if s1 == :failed
      s2 = match_regexp(/^[歩香桂銀金角飛王玉と杏圭全馬竜龍]/)
      if s2 != :failed
        @reported_pos = s0
        kind2csa(s1 + s2)
      else
        @current_pos = s0
        :failed
      end
    end
piece : "成"? [歩香桂銀金角飛王玉と杏圭全馬竜龍]