版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

40 строки
1.2 KiB

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