escape.js 634 B

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict';
  2. var locate = require('../locate/escape');
  3. module.exports = escape;
  4. escape.locator = locate;
  5. function escape(eat, value, silent) {
  6. var self = this;
  7. var character;
  8. var node;
  9. if (value.charAt(0) === '\\') {
  10. character = value.charAt(1);
  11. if (self.escape.indexOf(character) !== -1) {
  12. /* istanbul ignore if - never used (yet) */
  13. if (silent) {
  14. return true;
  15. }
  16. if (character === '\n') {
  17. node = {type: 'break'};
  18. } else {
  19. node = {
  20. type: 'text',
  21. value: character
  22. };
  23. }
  24. return eat('\\' + character)(node);
  25. }
  26. }
  27. }