whole_func_string: function(isMacroAvailable, usid) {
    this.currentDirective = null;
    this.matches = [];
    this.isMacroAvailable = isMacroAvailable;
    this.usid = usid;
    this.data = {};
  
    // The ident method builds a unique string expression that replaces an macro.
    // This value is replaced again for the expected expression once the template
    // has been transformed to a function
    this.ident = function() {
      return "____" + usid + Math.random() + "____";
    };
  }
func_code_string: function(isMacroAvailable, usid) {
    this.currentDirective = null;
    this.matches = [];
    this.isMacroAvailable = isMacroAvailable;
    this.usid = usid;
    this.data = {};
  
    // The ident method builds a unique string expression that replaces an macro.
    // This value is replaced again for the expected expression once the template
    // has been transformed to a function
    this.ident = function() {
      return "____" + usid + Math.random() + "____";
    };
  }
func_documentation_string: MACROCONTEXT CLASS