版博士V2.0程序
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

43 líneas
1.1 KiB

  1. "use strict";
  2. var _require = require('../helpers'),
  3. calculateTokenCharactersRange = _require.calculateTokenCharactersRange;
  4. var _require2 = require('../constants/token-types'),
  5. TOKEN_ATTRIBUTE_KEY = _require2.TOKEN_ATTRIBUTE_KEY;
  6. var _require3 = require('../constants/tokenizer-contexts'),
  7. ATTRIBUTES_CONTEXT = _require3.ATTRIBUTES_CONTEXT;
  8. function keyEnd(state, tokens) {
  9. var range = calculateTokenCharactersRange(state, {
  10. keepBuffer: false
  11. });
  12. tokens.push({
  13. type: TOKEN_ATTRIBUTE_KEY,
  14. content: state.accumulatedContent,
  15. startPosition: range.startPosition,
  16. endPosition: range.endPosition
  17. });
  18. state.accumulatedContent = '';
  19. state.decisionBuffer = '';
  20. state.currentContext = ATTRIBUTES_CONTEXT;
  21. }
  22. function isKeyBreak(chars) {
  23. return chars === '=' || chars === ' ' || chars === '\n' || chars === '\t' || chars === '/' || chars === '>';
  24. }
  25. function parseSyntax(chars, state, tokens) {
  26. if (isKeyBreak(chars)) {
  27. return keyEnd(state, tokens);
  28. }
  29. state.accumulatedContent += state.decisionBuffer;
  30. state.decisionBuffer = '';
  31. state.caretPosition++;
  32. }
  33. module.exports = {
  34. parseSyntax: parseSyntax
  35. };