Sha256: 09b40d78268b61f68d24b6030087b85fbf7a84c2b604bcb5c839802c7c60705e

Contents?: true

Size: 545 Bytes

Versions: 2

Compression:

Stored size: 545 Bytes

Contents

module Finitio
  module Syntax
    module Constraints

      def compile(var_name)
        constraints = {}
        captures[:named_constraint].each do |node|
          compiled = node.compile(var_name)
          constraints.merge!(compiled) do |k,_,_|
            raise Error, "Duplicate constraint name `#{k}`"
          end
        end
        constraints
      end

      def to_ast(var_name)
        captures[:named_constraint].map{|c| c.to_ast(var_name) }
      end

    end # module Constraints
  end # module Syntax
end # module Finitio

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
finitio-0.4.1 lib/finitio/syntax/constraints.rb
finitio-0.4.0 lib/finitio/syntax/constraints.rb