diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-14 20:59:40 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-14 20:59:40 +0000 |
| commit | 443ad6fcbef7734e8b91d8082a0583ce2165c446 (patch) | |
| tree | 7cf652ce42b9f5c93967d8d87a7766c2a0a3b7bc /lib/style-reader.js | |
| parent | acc7639ea2f58df6059ab00dc3c9620460a03083 (diff) | |
Allow escape sequences in separator
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: /(!)/} |
