mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-18 22:10:41 -07:00
fix existing tags
new tags: for,cycle
This commit is contained in:
+18
-13
@@ -5,15 +5,18 @@ var doubleQuoted = /"[^"]*"/;
|
||||
|
||||
var number = /-?\d+\.?\d*|\.?\d+/;
|
||||
var bool = /true|false/i;
|
||||
var range = /\((\d+)\.\.(\d+)\)/;
|
||||
var identifier = /[a-zA-Z_$][a-zA-Z_$0-9]*/;
|
||||
var subscript = /\[\d+\]/;
|
||||
|
||||
var quoted = new RegExp(`${singleQuoted.source}|${doubleQuoted.source}`);
|
||||
var literal = new RegExp(`${quoted.source}|${range.source}|${bool.source}|${number.source}`, 'i');
|
||||
var literal = new RegExp(`${quoted.source}|${bool.source}|${number.source}`, 'i');
|
||||
var variable = new RegExp(`${identifier.source}(?:\\.${identifier.source}|${subscript.source})*`);
|
||||
var value = new RegExp(`${literal.source}|${variable.source}`, 'i');
|
||||
var hash = new RegExp(`(${identifier.source})\\s*:\\s*(${value.source})`, 'g');
|
||||
var range = new RegExp(`\\((?:${value.source})\\.\\.(?:${value.source})\\)`);
|
||||
var rangeCapture = new RegExp(`\\((${value.source})\\.\\.(${value.source})\\)`);
|
||||
var variableOrRange = new RegExp(`${variable.source}|${range.source}`);
|
||||
var hash = new RegExp(`(?:${identifier.source})\\s*:\\s*(?:${value.source})`, 'g');
|
||||
var hashCapture = new RegExp(`(${identifier.source})\\s*:\\s*(${value.source})`, 'g');
|
||||
var filter = new RegExp(`(${identifier.source})(?:\\s*:\\s*(${value.source}))?`);
|
||||
var quoteBalanced = new RegExp(`(?:${singleQuoted.source}|${doubleQuoted.source}|[^'"])*`);
|
||||
|
||||
@@ -23,7 +26,7 @@ var variableLine = new RegExp(`^(?:${variable.source})$`);
|
||||
var numberLine = new RegExp(`^(?:${number.source})$`);
|
||||
var boolLine = new RegExp(`^(?:${bool.source})$`, 'i');
|
||||
var quotedLine = new RegExp(`^(?:${quoted.source})$`);
|
||||
var rangeLine = new RegExp(`^(?:${range.source})$`);
|
||||
var rangeLine = new RegExp(`^(?:${rangeCapture.source})$`);
|
||||
var filterLine = new RegExp(`^(?:${filter.source})$`);
|
||||
|
||||
var operators = [
|
||||
@@ -33,15 +36,19 @@ var operators = [
|
||||
];
|
||||
|
||||
|
||||
function isLiteral (str) {
|
||||
function isLiteral(str) {
|
||||
return literalLine.test(str);
|
||||
}
|
||||
|
||||
function isVariable (str) {
|
||||
function isRange(str) {
|
||||
return rangeLine.test(str);
|
||||
}
|
||||
|
||||
function isVariable(str) {
|
||||
return variableLine.test(str);
|
||||
}
|
||||
|
||||
function parseLiteral (str) {
|
||||
function parseLiteral(str) {
|
||||
var res;
|
||||
if (res = str.match(numberLine)) {
|
||||
return Number(str);
|
||||
@@ -52,15 +59,13 @@ function parseLiteral (str) {
|
||||
if (res = str.match(quotedLine)) {
|
||||
return str.slice(1, -1);
|
||||
}
|
||||
if (res = str.match(rangeLine)) {
|
||||
return _.range(res[1], res[2]);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
quoted, number, bool, range, literal, hash, filter,
|
||||
quoted, number, bool, literal, filter,
|
||||
hash, hashCapture,
|
||||
range, rangeCapture, variableOrRange,
|
||||
identifier, value, quoteBalanced, operators,
|
||||
quotedLine, numberLine, boolLine, rangeLine, literalLine, filterLine, tagLine,
|
||||
isLiteral, isVariable, parseLiteral
|
||||
isLiteral, isVariable, parseLiteral, isRange
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user