Sha256: f8c78edcd828974eacf2b1f17af858306ba1938998030a6a8c8814f34d47f096

Contents?: true

Size: 797 Bytes

Versions: 1

Compression:

Stored size: 797 Bytes

Contents

require_relative "sexpr/version"
require_relative "sexpr/loader"
#
# A helper to manipulate sexp grammars
#
module Sexpr

  def self.load(input, options = {})
    case input
    when lambda{|x| x.respond_to?(:to_path)}
      require 'yaml'
      load(YAML.load_file(input.to_path), options)
    when String
      require 'yaml'
      load(YAML.load(input), options)
    when Hash
      Grammar.new(input, options)
    else
      raise ArgumentError, "Invalid argument for Sexpr::Grammar: #{input}"
    end
  end

end # module Sexpr
require_relative "sexpr/grammar"
require_relative "sexpr/element"
require_relative "sexpr/alternative"
require_relative "sexpr/many"
require_relative "sexpr/reference"
require_relative "sexpr/rule"
require_relative "sexpr/sequence"
require_relative "sexpr/terminal"

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sexpr-0.2.0 lib/sexpr.rb