diff options
Diffstat (limited to 'lib/style-reader.js')
| -rw-r--r-- | lib/style-reader.js | 14 |
1 files changed, 11 insertions, 3 deletions
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: /(!)/} |
