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
function o(patternString, action) {
  if (typeof action === 'undefined') {
    return [patternString, '$$ = $1;'];
  }

  action = action.replace(/\bnew /g, '$&yy.');
  return [patternString, '$$ = ' + action + ';'];
}