class ADSL::Parser::ASTAnd

Public Instance Methods

to_adsl() click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 1296
def to_adsl
  "and(#{ @subformulae.map(&:to_adsl).join ", " })"
end
typecheck_and_resolve(context) click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 1280
def typecheck_and_resolve(context)
  subformulae = @subformulae.map{ |o| o.typecheck_and_resolve context }
  subformulae.each do |subformula|
    raise "Substatement not a formula on line #{subformula.lineno}" unless subformula.type == :formula  
  end
  flattened_subformulae = []
  subformulae.each do |subformula|
    if subformula.is_a? ADSL::DS::DSAnd
      flattened_subformulae += subformula.subformulae
    else
      flattened_subformulae << subformula
    end
  end
  return ADSL::DS::DSAnd.new :subformulae => flattened_subformulae
end