def describe_s_filter(stack)
indent = " "
old_indent = " "
puts "-S Query expands to the following instructions:"
puts
stack.each do |token|
if token.keys[0] == "statement"
if token.values[0] =~ /(<=|>=|=|=~|=)/
op = $1
k,v = token.values[0].split(op)
puts indent + get_fact_string(k, v, op)
else
puts indent + get_class_string(token.values[0])
end
elsif token.keys[0] == "fstatement"
v = token.values[0]
result_string = indent + "Execute the Data Query '#{v["name"]}'"
if v["params"]
result_string += " with parameters (#{v["params"]})"
end
result_string += ". "
result_string += "Check if the query's '#{v["value"]}' value #{v["operator"]} '#{v["r_compare"]}' "
puts result_string
elsif token.keys[0] == "("
puts indent + "("
old_indent = indent
indent *= 2
elsif token.keys[0] == ")"
indent = old_indent
puts indent + ")"
else
puts indent + token.keys[0].upcase
end
end
end