Sha256: 0a14eaa54d69e1af97b98cb7b91d8a034162a79762d982871ef4f1a926842cf1

Contents?: true

Size: 734 Bytes

Versions: 3

Compression:

Stored size: 734 Bytes

Contents

require_relative 'syntax/node'
module Gisele
  module Language
    module Syntax
      Citrus.load(File.expand_path('../syntax/grammar', __FILE__))

      def parse(input, options = {})
        source = parsing_source(input)
        Grammar.parse(source, options)
      end
      module_function :parse

      def ast(input, parse_options = {})
        parse(input, parse_options).to_ast
      end
      module_function :ast

      private

      def parsing_source(input)
        input = File.read(input.to_path) if input.respond_to?(:to_path)
        input = input.to_str if input.respond_to?(:to_str)
        input
      end
      module_function :parsing_source

    end # module Syntax
  end # module Language
end # module Gisele

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gisele-0.3.0 lib/gisele/language/syntax.rb
gisele-0.2.0 lib/gisele/language/syntax.rb
gisele-0.1.0 lib/gisele/language/syntax.rb