Class: ADSL::Parser::ASTOneOf
Instance Method Summary
collapse
Methods inherited from ASTNode
#==, #adsl_ast, #adsl_ast_size, #block_replace, #dup, #hash, is_formula?, is_objset?, is_statement?, node_type, #preorder_traverse
#[], #and, #binary_op, #binary_op_with_any_number_of_params, #equiv, #exists, #false, #forall, #handle_quantifier, #implies, #in_formula_builder, #not, #or, #true
#classname_for_classname, #infer_classname_from_varname, #t
Instance Method Details
#objset_has_side_effects? ⇒ Boolean
1009
1010
1011
|
# File 'lib/adsl/parser/ast_nodes.rb', line 1009
def objset_has_side_effects?
@objset.nil? ? false : @objset.objset_has_side_effects?
end
|
1019
1020
1021
1022
1023
|
# File 'lib/adsl/parser/ast_nodes.rb', line 1019
def optimize
until_no_change super do |oneof|
oneof.objset.is_a?(ASTOneOf) ? oneof.objset : oneof
end
end
|
1025
1026
1027
|
# File 'lib/adsl/parser/ast_nodes.rb', line 1025
def to_adsl
"oneof(#{ @objset.to_adsl })"
end
|
#typecheck_and_resolve(context) ⇒ Object
1013
1014
1015
1016
1017
|
# File 'lib/adsl/parser/ast_nodes.rb', line 1013
def typecheck_and_resolve(context)
objset = @objset.typecheck_and_resolve context
return ADSL::DS::DSEmptyObjset.new if objset.type.nil?
return ADSL::DS::DSOneOf.new :objset => objset
end
|