From 443ad6fcbef7734e8b91d8082a0583ce2165c446 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 14 Nov 2016 20:59:40 +0000 Subject: Allow escape sequences in separator --- lib/style-reader.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/style-reader.js b/lib/style-reader.js index 370b5b6..0f2efc5 100644 --- a/lib/style-reader.js +++ b/lib/style-reader.js @@ -208,11 +208,19 @@ function htmlPathRule() { var identifierRule = lop.rules.tokenOfType("identifier"); var integerRule = lop.rules.tokenOfType("integer"); - + +var escapeSequences = { + "n": "\n", + "r": "\r", + "t": "\t" +}; + var stringRule = lop.rules.then( lop.rules.tokenOfType("string"), function(value) { - return value; + return value.replace(/\\(.)/g, function(match, code) { + return escapeSequences[code] || code; + }); } ); @@ -257,7 +265,7 @@ function tokenise(string) { {name: "close-paren", regex: /\)/}, {name: "open-square-bracket", regex: /\[/}, {name: "close-square-bracket", regex: /\]/}, - {name: "string", regex: /'([^']*)'/}, + {name: "string", regex: /'((?:\\.|[^'])*)'/}, {name: "integer", regex: /([0-9]+)/}, {name: "choice", regex: /\|/}, {name: "bang", regex: /(!)/} -- cgit v1.2.3