HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/www/french-american.org/current/node_modules/remark-parse/lib/tokenize/code-inline.js
'use strict'

var whitespace = require('is-whitespace-character')
var locate = require('../locate/code-inline')

module.exports = inlineCode
inlineCode.locator = locate

var graveAccent = '`'

function inlineCode(eat, value, silent) {
  var length = value.length
  var index = 0
  var queue = ''
  var tickQueue = ''
  var contentQueue
  var subqueue
  var count
  var openingCount
  var subvalue
  var character
  var found
  var next

  while (index < length) {
    if (value.charAt(index) !== graveAccent) {
      break
    }

    queue += graveAccent
    index++
  }

  if (!queue) {
    return
  }

  subvalue = queue
  openingCount = index
  queue = ''
  next = value.charAt(index)
  count = 0

  while (index < length) {
    character = next
    next = value.charAt(index + 1)

    if (character === graveAccent) {
      count++
      tickQueue += character
    } else {
      count = 0
      queue += character
    }

    if (count && next !== graveAccent) {
      if (count === openingCount) {
        subvalue += queue + tickQueue
        found = true
        break
      }

      queue += tickQueue
      tickQueue = ''
    }

    index++
  }

  if (!found) {
    if (openingCount % 2 !== 0) {
      return
    }

    queue = ''
  }

  /* istanbul ignore if - never used (yet) */
  if (silent) {
    return true
  }

  contentQueue = ''
  subqueue = ''
  length = queue.length
  index = -1

  while (++index < length) {
    character = queue.charAt(index)

    if (whitespace(character)) {
      subqueue += character
      continue
    }

    if (subqueue) {
      if (contentQueue) {
        contentQueue += subqueue
      }

      subqueue = ''
    }

    contentQueue += character
  }

  return eat(subvalue)({type: 'inlineCode', value: contentQueue})
}