Sha256: 1ab7297859234428531ea6a544ae42dc7f80e79b54a50bfd0f3302fdbb1186a2

Contents?: true

Size: 590 Bytes

Versions: 10

Compression:

Stored size: 590 Bytes

Contents

module SXP; class Reader
  ##
  # An extended S-expression parser.
  class Extended < Basic
    LPARENS  = [?(, ?[]
    RPARENS  = [?), ?]]
    ATOM     = /^[^\s()\[\]]+/

    ##
    # @return [Object]
    def read_token
      case peek_char
        when ?[, ?] then [:list, read_char]
        else super
      end
    end

    ##
    # @return [void]
    def skip_comments
      until eof?
        case (char = peek_char).chr
          when /\s+/ then skip_char
          when /;/   then skip_line
          else break
        end
      end
    end
  end # Extended
end; end # SXP::Reader

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sxp-0.1.3 lib/sxp/reader/extended.rb
sxp-0.1.2 lib/sxp/reader/extended.rb
sxp-0.1.0 lib/sxp/reader/extended.rb
sxp-0.0.14 lib/sxp/reader/extended.rb
sxp-0.0.13 lib/sxp/reader/extended.rb
sxp-0.0.12 lib/sxp/reader/extended.rb
sxp-0.0.11 lib/sxp/reader/extended.rb
sxp-0.0.10 lib/sxp/reader/extended.rb
sxp-0.0.9 lib/sxp/reader/extended.rb
sxp-0.0.8 lib/sxp/reader/extended.rb