lib/macroParser.js
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() + "____";
  };
}
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() + "____";
  };
}
MACROCONTEXT CLASS