class ADSL::Parser::ASTOr
Public Instance Methods
to_adsl()
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 1320 def to_adsl "or(#{ @subformulae.map(&:to_adsl).join ", " })" end
typecheck_and_resolve(context)
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 1304 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::DSOr flattened_subformulae += subformula.subformulae else flattened_subformulae << subformula end end return ADSL::DS::DSOr.new :subformulae => flattened_subformulae end