whole_func_string: function(ast) {
        let value = this.value;
  
        // If found block node stop at the next one for space check.
        ast.traverseByTypes(['block', 'value'], function(block, i, parent) {
          if (block.is('value') && !block.first().is('block')) return;
  
          var previousNode = parent.get(i - 1);
          if (!previousNode) return;
  
          // If it's spaces, modify this node.
          // If it's something different from spaces, add a space node to
          // the end:
          if (previousNode.is('space')) {
            previousNode.content = value;
          } else if (value !== '') {
            var space = gonzales.createNode({
              type: 'space',
              content: value
            });
            parent.insert(i, space);
          }
        });
      }
func_code_string: function(ast) {
        let value = this.value;
  
        // If found block node stop at the next one for space check.
        ast.traverseByTypes(['block', 'value'], function(block, i, parent) {
          if (block.is('value') && !block.first().is('block')) return;
  
          var previousNode = parent.get(i - 1);
          if (!previousNode) return;
  
          // If it's spaces, modify this node.
          // If it's something different from spaces, add a space node to
          // the end:
          if (previousNode.is('space')) {
            previousNode.content = value;
          } else if (value !== '') {
            var space = gonzales.createNode({
              type: 'space',
              content: value
            });
            parent.insert(i, space);
          }
        });
      }
func_documentation_string: Processes tree node.
  
  @param {node} ast