|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- "use strict";
-
- var _require = require('../helpers'),
- isWhitespace = _require.isWhitespace;
-
- var _require2 = require('../constants/tokenizer-contexts'),
- ATTRIBUTE_VALUE_WRAPPED_CONTEXT = _require2.ATTRIBUTE_VALUE_WRAPPED_CONTEXT,
- ATTRIBUTES_CONTEXT = _require2.ATTRIBUTES_CONTEXT,
- ATTRIBUTE_VALUE_BARE_CONTEXT = _require2.ATTRIBUTE_VALUE_BARE_CONTEXT;
-
- var _require3 = require('../constants/token-types'),
- TOKEN_ATTRIBUTE_VALUE_WRAPPER_START = _require3.TOKEN_ATTRIBUTE_VALUE_WRAPPER_START;
-
- function wrapper(state, tokens) {
- var wrapper = state.decisionBuffer;
- tokens.push({
- type: TOKEN_ATTRIBUTE_VALUE_WRAPPER_START,
- content: wrapper,
- startPosition: state.caretPosition,
- endPosition: state.caretPosition
- });
- state.accumulatedContent = '';
- state.decisionBuffer = '';
- state.currentContext = ATTRIBUTE_VALUE_WRAPPED_CONTEXT;
- state.contextParams[ATTRIBUTE_VALUE_WRAPPED_CONTEXT] = {
- wrapper: wrapper
- };
- state.caretPosition++;
- }
-
- function bare(state) {
- state.accumulatedContent = state.decisionBuffer;
- state.decisionBuffer = '';
- state.currentContext = ATTRIBUTE_VALUE_BARE_CONTEXT;
- state.caretPosition++;
- }
-
- function tagEnd(state) {
- state.accumulatedContent = '';
- state.decisionBuffer = '';
- state.currentContext = ATTRIBUTES_CONTEXT;
- }
-
- function parseSyntax(chars, state, tokens) {
- if (chars === '"' || chars === '\'') {
- return wrapper(state, tokens);
- }
-
- if (chars === '>' || chars === '/') {
- return tagEnd(state, tokens);
- }
-
- if (!isWhitespace(chars)) {
- return bare(state, tokens);
- }
-
- state.decisionBuffer = '';
- state.caretPosition++;
- }
-
- module.exports = {
- parseSyntax: parseSyntax
- };
|