whole_func_string: function() {
  			var node = new AbbreviationNode();
  			var attrs = ['abbreviation', 'counter', '_name', '_text', 'repeatCount', 'hasImplicitRepeat', 'start', 'end', 'content', 'padding'];
  			_.each(attrs, function(a) {
  				node[a] = this[a];
  			}, this);
  			
  			// clone attributes
  			node._attributes = _.map(this._attributes, function(attr) {
  				return _.clone(attr);
  			});
  			
  			node._data = _.clone(this._data);
  			
  			// clone children
  			node.children = _.map(this.children, function(child) {
  				child = child.clone();
  				child.parent = node;
  				return child;
  			});
  			
  			return node;
  		}
func_code_string: function() {
  			var node = new AbbreviationNode();
  			var attrs = ['abbreviation', 'counter', '_name', '_text', 'repeatCount', 'hasImplicitRepeat', 'start', 'end', 'content', 'padding'];
  			_.each(attrs, function(a) {
  				node[a] = this[a];
  			}, this);
  			
  			// clone attributes
  			node._attributes = _.map(this._attributes, function(attr) {
  				return _.clone(attr);
  			});
  			
  			node._data = _.clone(this._data);
  			
  			// clone children
  			node.children = _.map(this.children, function(child) {
  				child = child.clone();
  				child.parent = node;
  				return child;
  			});
  			
  			return node;
  		}
func_documentation_string: Creates a deep copy of current node
  @returns {AbbreviationNode}