Sha256: 8df7446de64fa9c5388c5b35ae35afe7538693e47acfe8ba92dfe83ae6736fea

Contents?: true

Size: 841 Bytes

Versions: 58

Compression:

Stored size: 841 Bytes

Contents

require File.expand_path("#{File.dirname(__FILE__)}/../spec_helper")

module ParsingRuleSpec
  describe "a grammar with one parsing rule" do

    testing_grammar %{
      grammar Foo
        rule bar
          "baz"
        end
      end
    }

    it "stores and retrieves nodes in its node cache" do
      parser = self.class.const_get(:FooParser).new
      parser.send(:prepare_to_parse, 'baz')
      node_cache = parser.send(:node_cache)
    
      node_cache[:bar][0].should be_nil
    
      parser._nt_bar
    
      cached_node = node_cache[:bar][0]        
      cached_node.should be_an_instance_of(Runtime::SyntaxNode)
      cached_node.text_value.should == 'baz'
    
      parser.instance_eval { @index = 0 }
      parser._nt_bar.should equal(cached_node)
      parser.index.should == cached_node.interval.end
    end
  end
end

Version data entries

58 entries across 58 versions & 6 rubygems

Version Path
cloudhead-less-1.0.1 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.10 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.13 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.16 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.2 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.3 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.4 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.5 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.6 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.8 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.0.9 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.0 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.1 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.10 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.11 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.12 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.13 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.2 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.3 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb
cloudhead-less-1.1.4 lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb