Sha256: b7dffeba2c3f9273bb0bcec2918074eab619e700df3e06d6f2263f7d0f69f5ce

Contents?: true

Size: 1008 Bytes

Versions: 2

Compression:

Stored size: 1008 Bytes

Contents

require File.expand_path(File.dirname(__FILE__) + '/spec_helper')


describe "Grammar" do

  before (:each) do
    @g = Panini::Grammar.new
  end

  it "responds to #add_nonterminal" do
    @g.should respond_to(:add_nonterminal)
  end

  it "responds to #nonterminals" do
    @g.should respond_to(:nonterminals)
  end

  it "responds to #start" do
    @g.should respond_to(:start)
  end

end



describe "Grammar#add_nonterminal" do

  before (:each) do
    @g = Panini::Grammar.new
    @n = @g.add_nonterminal()
  end

  it "returns a new Panini::Nonterminal" do
    @n.should be_an_instance_of(Panini::Nonterminal)
  end

  it "stores the new Panini::Nonterminal" do
    @g.nonterminals.should have(1).item
    @g.nonterminals[0].should == @n
  end

end



describe "Grammar#start" do

  before (:each) do
    @g = Panini::Grammar.new
    @nonterminals = (0...3).to_a.map do
      @g.add_nonterminal
    end
  end

  it "returns the first nonterminal" do
    @g.start.should == @nonterminals[0]
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
panini-1.1.0 spec/grammar_spec.rb
panini-1.0.0 spec/grammar_spec.rb