Class: Sexp::Callable

Inherits:
Define show all
Defined in:
lib/parser/parser_nodes.rb

Direct Known Subclasses

Macro, OperatorDef, Procedure

Instance Method Summary collapse

Methods inherited from Define

#name

Methods inherited from Treetop::Runtime::SyntaxNode

#node_type, #recursive_inject, #recursive_inject_parent, #recursive_select, #value

Instance Method Details

#bodyObject



1022
1023
1024
1025
# File 'lib/parser/parser_nodes.rb', line 1022

def body
  node = body_node
  node.value  if node
end

#body_nodeObject



1018
1019
1020
1021
# File 'lib/parser/parser_nodes.rb', line 1018

def body_node
  ret = recursive_select(Sexp::Statement).first
  ret
end

#declaration_definitionsObject



1043
1044
1045
# File 'lib/parser/parser_nodes.rb', line 1043

def declaration_definitions
  []
end

#node_valueObject



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_definitionsHash:Array

Returns symbol hash with ‘:node_type’, :value,:tree properties.

Returns:

  • (Hash:Array)

    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

#parametersObject



1012
1013
1014
1015
# File 'lib/parser/parser_nodes.rb', line 1012

def parameters
  node = parameters_node
  return node.value if node
end

#parameters_nodeObject



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_definitionsObject

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
  # unique b
  return parameter_definitions + declaration_definitions
end