lib/activefacts/cql/compiler.rb in activefacts-0.8.9 vs lib/activefacts/cql/compiler.rb in activefacts-0.8.10

- old
+ new

@@ -2,18 +2,19 @@ # # Copyright (c) 2009 Clifford Heath. Read the LICENSE file. # require 'activefacts/vocabulary' require 'activefacts/cql/parser' - require 'activefacts/cql/compiler/shared' require 'activefacts/cql/compiler/value_type' require 'activefacts/cql/compiler/entity_type' -require 'activefacts/cql/compiler/reading' +require 'activefacts/cql/compiler/clause' require 'activefacts/cql/compiler/fact_type' +require 'activefacts/cql/compiler/expression' require 'activefacts/cql/compiler/fact' require 'activefacts/cql/compiler/constraint' +require 'activefacts/cql/compiler/join' module ActiveFacts module CQL class Compiler < ActiveFacts::CQL::Parser attr_reader :vocabulary @@ -29,10 +30,11 @@ @filename = filename File.open(filename) do |f| compile(f.read) end @filename = old_filename + @vocabulary end def compile input @string = input # The syntax tree created from each parsed CQL statement gets passed to the block. @@ -41,10 +43,10 @@ debug :parse, "Parsed '#{node.text_value.gsub(/\s+/,' ').strip}'" do begin ast = node.ast next unless ast debug :ast, ast.inspect - ast.source = node.body + ast.tree = node ast.constellation = @constellation ast.vocabulary = @vocabulary value = compile_definition ast debug :definition, "Compiled to #{value.is_a?(Array) ? value.map{|v| v.verbalise}*', ' : value.verbalise}" if value @vocabulary = value if ast.is_a?(Compiler::Vocabulary)