spec/antelope/ace/compiler_spec.rb in antelope-0.3.2 vs spec/antelope/ace/compiler_spec.rb in antelope-0.4.0

- old
+ new

@@ -1,60 +1,60 @@ -describe Ace::Compiler do - let :file do - <<-DOC - %{ - test - %} - - %require "#{VERSION}" - %language "ruby" - - %terminal NUMBER - %terminal SEMICOLON ";" - %terminal ADD "+" - %terminal LPAREN "(" - %terminal RPAREN ")" - - %% - - s: e - e: t ADD e - t: NUMBER | LPAREN e RPAREN - - %% - - hello - DOC - end - - let :tokens do - Ace::Scanner.scan(file) - end - - let :compiler do - Ace::Compiler.new(tokens) - end - - subject do - compiler.compile - compiler - end - - its(:body) { should =~ /test/ } - its(:body) { should =~ /hello/ } - its(:options) { should have_key :type } - - it 'has the proper terminals' do - expect(subject.options[:terminals].map(&:first)).to eq [:NUMBER, - :SEMICOLON, :ADD, :LPAREN, :RPAREN] - end - - context 'with an unmatched version' do - let(:file) { "%require \"0.0.0\"\n%%\n%%\n" } - - it 'raises an error' do - expect do - subject - end.to raise_error(IncompatibleVersionError) - end - end -end +describe Ace::Compiler do + let :file do + <<-DOC + %{ + test + %} + + %require "#{VERSION}" + %language "ruby" + + %terminal NUMBER + %terminal SEMICOLON ";" + %terminal ADD "+" + %terminal LPAREN "(" + %terminal RPAREN ")" + + %% + + s: e + e: t ADD e + t: NUMBER | LPAREN e RPAREN + + %% + + hello + DOC + end + + let :tokens do + Ace::Scanner.scan(file) + end + + let :compiler do + Ace::Compiler.new(tokens) + end + + subject do + compiler.compile + compiler + end + + its(:body) { should =~ /test/ } + its(:body) { should =~ /hello/ } + its(:options) { should have_key :type } + + it 'has the proper terminals' do + expect(subject.options[:terminals].map(&:first)).to eq [:NUMBER, + :SEMICOLON, :ADD, :LPAREN, :RPAREN] + end + + context 'with an unmatched version' do + let(:file) { "%require \"0.0.0\"\n%%\n%%\n" } + + it 'raises an error' do + expect do + subject + end.to raise_error(IncompatibleVersionError) + end + end +end