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