Class: Sexp::Callable
Instance Method Summary
collapse
Methods inherited from Define
#name
#node_type, #recursive_inject, #recursive_inject_parent, #recursive_select, #value
Instance Method Details
#body ⇒ Object
1022
1023
1024
1025
|
# File 'lib/parser/parser_nodes.rb', line 1022
def body
node = body_node
node.value if node
end
|
#body_node ⇒ Object
1018
1019
1020
1021
|
# File 'lib/parser/parser_nodes.rb', line 1018
def body_node
ret = recursive_select(Sexp::Statement).first
ret
end
|
#declaration_definitions ⇒ Object
1043
1044
1045
|
# File 'lib/parser/parser_nodes.rb', line 1043
def declaration_definitions
[]
end
|
#node_value ⇒ Object
1027
1028
1029
1030
1031
1032
1033
|
# File 'lib/parser/parser_nodes.rb', line 1027
def node_value
{
:name => "name",
:parameters => parameters,
:body => body,
}
end
|
#parameter_definitions ⇒ Hash:Array
Returns symbol hash with ‘:node_type’, :value,:tree properties.
1037
1038
1039
1040
1041
|
# File 'lib/parser/parser_nodes.rb', line 1037
def parameter_definitions
parameter_def = parameters
return [] unless parameter_def
parameter_def[:value]
end
|
#parameters ⇒ Object
1012
1013
1014
1015
|
# File 'lib/parser/parser_nodes.rb', line 1012
def parameters
node = parameters_node
return node.value if node
end
|
#parameters_node ⇒ Object
1008
1009
1010
1011
|
# File 'lib/parser/parser_nodes.rb', line 1008
def parameters_node
tree_nodes = recursive_select(Sexp::Parameters)
return tree_nodes.first if tree_nodes
end
|
#symbol_definitions ⇒ Object
Symbols defined in this node. They include parameters and declarations (normally only in procedure)
1049
1050
1051
1052
|
# File 'lib/parser/parser_nodes.rb', line 1049
def symbol_definitions
return parameter_definitions + declaration_definitions
end
|