Sha256: 464cea02def8288b57384adfcaca921893e2f1db95e7a5f0d99eeaf692832e60

Contents?: true

Size: 1.02 KB

Versions: 11

Compression:

Stored size: 1.02 KB

Contents

require 'spec_helper'

module GrammarCompositionSpec
  describe "several composed grammars" do
    before do
      dir = File.dirname(__FILE__)
      Treetop.load File.join(dir, 'a')
      Treetop.load File.join(dir, 'b')
      Treetop.load File.join(dir, 'c')
      # Check that polyglot finds d.treetop and loads it:
      $: << dir
      require 'd'
  
      @c = ::Test::CParser.new
      @d = ::Test::DParser.new
    end

    specify "rules in C have access to rules defined in A and B" do
      @c.parse('abbc').should_not be_nil
    end

    specify "rules in C can override rules in A and B with super semantics" do
      @d.parse('superkeywordworks').should_not be_nil
    end
  end
  
  describe "composed grammar chaining with require" do
    before do
      # Load f with polyglot without using the load path:
      require File.dirname(__FILE__) + '/f'
  
      @f = ::Test::FParser.new
    end
    
    specify "rules in F have access to rule defined in E" do
      @f.parse('abbcef').should_not be_nil
    end
    
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
treetop-1.6.8 spec/composition/grammar_composition_spec.rb
treetop-1.6.7 spec/composition/grammar_composition_spec.rb
treetop-1.6.6 spec/composition/grammar_composition_spec.rb
treetop-1.6.5 spec/composition/grammar_composition_spec.rb
treetop-1.6.4 spec/composition/grammar_composition_spec.rb
swift-pyrite-0.1.1 vendor/bundle/ruby/2.0.0/gems/treetop-1.6.3/spec/composition/grammar_composition_spec.rb
swift-pyrite-0.1.0 vendor/bundle/ruby/2.0.0/gems/treetop-1.6.3/spec/composition/grammar_composition_spec.rb
treetop-1.6.3 spec/composition/grammar_composition_spec.rb
treetop-1.6.2 spec/composition/grammar_composition_spec.rb
treetop-1.5.3 spec/composition/grammar_composition_spec.rb
treetop-1.5.1 spec/composition/grammar_composition_spec.rb