Class: OCL::Implies

Inherits:
Block
  • Object
show all
Defined in:
lib/dbc/ocl.rb

Overview

Parens

Instance Method Summary collapse

Methods inherited from Block

check_condition, result, #to_s

Constructor Details

#initialize(condition, implication) ⇒ Implies

Returns a new instance of Implies.



126
127
128
129
# File 'lib/dbc/ocl.rb', line 126

def initialize(condition, implication)
	@condition = condition
	@implication = implication
end

Instance Method Details

#cexp?Boolean

Returns:

  • (Boolean)


151
152
153
# File 'lib/dbc/ocl.rb', line 151

def cexp?
	@condition.cexp? and @implication.cexp?
end

#to_cexpObject



155
156
157
# File 'lib/dbc/ocl.rb', line 155

def to_cexp
	"#{@condition.to_cexp} ? #{@implication.to_cexp} : 1"
end

#to_exp(result, indent_str = '') ⇒ Object



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/dbc/ocl.rb', line 131

def to_exp(result, indent_str = '')
	str = ''
	# implies statements are true by default
	str << indent_str << "#{result} = 1;\n"
	if @condition.cexp?
		expression = @condition.to_cexp
	else
		expression = Block.result
		str << @condition.to_exp(expression, indent_str)
	end
	# if the expression is true then that implies the condition
	str << indent_str << "if (#{expression}) {\n"
	if @implication.cexp?
		str << check_condition(@implication.to_cexp, result, "\t" << indent_str)
	else
		str << @implication.to_exp(result, "\t" << indent_str)
	end
	str << indent_str << "}\n"
end