| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | // Skip text characters for text token, place those to pending buffer// and increment current pos'use strict';// Rule to skip pure text// '{}$%@~+=:' reserved for extentions// !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~// !!!! Don't confuse with "Markdown ASCII Punctuation" chars// http://spec.commonmark.org/0.15/#ascii-punctuation-characterfunction isTerminatorChar(ch) {  switch (ch) {    case 0x0A/* \n */:    case 0x21/* ! */:    case 0x23/* # */:    case 0x24/* $ */:    case 0x25/* % */:    case 0x26/* & */:    case 0x2A/* * */:    case 0x2B/* + */:    case 0x2D/* - */:    case 0x3A/* : */:    case 0x3C/* < */:    case 0x3D/* = */:    case 0x3E/* > */:    case 0x40/* @ */:    case 0x5B/* [ */:    case 0x5C/* \ */:    case 0x5D/* ] */:    case 0x5E/* ^ */:    case 0x5F/* _ */:    case 0x60/* ` */:    case 0x7B/* { */:    case 0x7D/* } */:    case 0x7E/* ~ */:      return true;    default:      return false;  }}module.exports = function text(state, silent) {  var pos = state.pos;  while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {    pos++;  }  if (pos === state.pos) { return false; }  if (!silent) { state.pending += state.src.slice(state.pos, pos); }  state.pos = pos;  return true;};// Alternative implementation, for memory.//// It costs 10% of performance, but allows extend terminators list, if place it// to `ParcerInline` property. Probably, will switch to it sometime, such// flexibility required./*var TERMINATOR_RE = /[\n!#$%&*+\-:<=>@[\\\]^_`{}~]/;module.exports = function text(state, silent) {  var pos = state.pos,      idx = state.src.slice(pos).search(TERMINATOR_RE);  // first char is terminator -> empty text  if (idx === 0) { return false; }  // no terminator -> text till end of string  if (idx < 0) {    if (!silent) { state.pending += state.src.slice(pos); }    state.pos = state.src.length;    return true;  }  if (!silent) { state.pending += state.src.slice(pos, pos + idx); }  state.pos += idx;  return true;};*/
 |