code: function o(patternString, action) {
    if (typeof action === 'undefined') {
      return [patternString, '$$ = $1;'];
    }
  
    action = action.replace(/\bnew /g, '$&yy.');
    return [patternString, '$$ = ' + action + ';'];
  }
docs: Helper for jison grammar definitions, altering "new" calls to the
  yy namepsace and assigning action results to "$$"
  @example
  o('foo', 'new Lllama($1)') // -> ['foo', '$$ = new yy.Llama($1)']
  @param  {String} patternString a jison BNF pattern string
  @param  {String} action   the javascript code to execute against the pattern
  @return {Array.<string>} the expression strings to give to jison
  @private