Sha256: ff66a0928b0a00705ce56dfebf4dd6acc90828874ccf201771ec06305036da60

Contents?: true

Size: 1.12 KB

Versions: 7

Compression:

Stored size: 1.12 KB

Contents

require 'spec_helper'
require 'sfrp/raw/set'
require 'sfrp/flat/set'

module SFRP
  describe 'Compiled Flat-Set from Raw-Set' do
    let(:fset) do
      Raw::Set.new do |s|
        ns = Raw::Namespace.new('Main', [])
        s << begin
          a = R.vc_call_e(R.r('1'), [])
          b = R.vc_call_e(R.r('2'), [])
          plus = R.r('+')
          asta = R.r('*')
          exp = R.seq_e([a, b, a, b], [asta, plus, asta])
          Raw::Function.new('f', ns, nil, [], [], exp, nil, false)
        end
        s << begin
          int = R.t(R.r('Int'), [])
          Raw::Function.new('+', ns, int, [a, b], [int, int], nil, 'add', false)
        end
        s << begin
          int = R.t(R.r('Int'), [])
          Raw::Function.new('*', ns, int, ['a', 'b'], [int, int], nil, 'mul', false)
        end
        s << begin
          Raw::PrimTConst.new('Int', ns, 'int', /^([0-9]+)$/, '\1')
        end
        s << Raw::Infix.new(ns, R.r('+'), 6, Raw::Infix::LEFT)
        s << Raw::Infix.new(ns, R.r('*'), 7, Raw::Infix::LEFT)
      end.to_flat
    end

    it 'is compiled correctly' do
      fset # TODO write assertions
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sfrp-1.5.2 spec/sfrp/raw/set_spec.rb
sfrp-1.5.1 spec/sfrp/raw/set_spec.rb
sfrp-1.5.0 spec/sfrp/raw/set_spec.rb
sfrp-1.4.0 spec/sfrp/raw/set_spec.rb
sfrp-1.2.1 spec/sfrp/raw/set_spec.rb
sfrp-1.2.0 spec/sfrp/raw/set_spec.rb
sfrp-1.1.0 spec/sfrp/raw/set_spec.rb