# File lib/facet/lisp-format.rb, line 286
      def params
        params = []
        sign = 1
        value = 0
        state = :START
        while have_more_input
          ch = next_char
          case state
          when :START
            case ch
            when ?'
              state = :CHAR
            when ?V, ?v
              params << Parameters::Argument.new(@pos)
              state = :DONE
            when ?#
              params << Parameters::ArgumentCount.new(@pos)
              state = :DONE
            when ?,
              params << Parameters::Default.new(@pos)
              state = :START
            when ?+, ?-, ?0, ?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9
              sign = (ch == ?-) ? -1 : 1
              value = (ch == ?+ or ch == ?-) ? 0 : (ch - ?0)
              state = :INTEGER
            else
                unget_char
                state = :DONE
            end
          when :INTEGER
            if (?0..?9).to_a.include? ch
              value = value * 10 + (ch - ?0)
            else
              unget_char
              value *= sign
              params << Parameters::Integer.new(@pos, value)
              state = :DONE
            end
          when :CHAR
            params << Parameters::Character.new(@pos, ch)
            state = :DONE
          when :DONE
            if ch == ?,
              state = :START
            else
              unget_char
              break
            end
          end
        end
        unless state == :DONE
          raise @@errorstates[state][0].new(@pos), @@errorstates[state][1]
        end
        return params
      end