diff --git a/src/drv.pegjs b/src/drv.pegjs index 4020db6..b17bda1 100644 --- a/src/drv.pegjs +++ b/src/drv.pegjs @@ -26,9 +26,21 @@ string = '"' chars:stringCharacter* '"' { return chars.join(""); } stringCharacter - = !('"' / "\\") char:. { return char; } // Prefer a non-backslash character... - / stringEscapedQuote { return '"'; } // ... then an escaped quotation mark... - / !('"') char:. { return char; } // ... and finally any other character that doesn't terminate the string. + = !('"' / "\\") char:. { return char; } // Prefer a non-backslash character... + / stringEscapedQuote { return '"'; } // ... then an escaped quotation mark... + / stringEscapedNewline{ return "\n"; } // ... then various escaped whitespace characters... + / stringEscapedCarriageReturn{ return "\r"; } + / stringEscapedTab{ return "\t"; } + / !('"') char:. { return char; } // ... and finally any other character that doesn't terminate the string. stringEscapedQuote = '\\"' + +stringEscapedNewline + = '\\n' + +stringEscapedCarriageReturn + = '\\r' + +stringEscapedTab + = '\\t'