prebirth,birth,rebirth: Permit newlines in strings
This modifies each of the three lexers just to avoid confusion, even though prebirth has no need for it. Birth does have a need, however, since rebirth will contain newlines---despite the relevant rebirth code (next commit) not being expanded, it still has to go through the lexer, which otherwise errors out. * build-aux/bootstrap/birth.scm (lex): Permit newlines in string regex. * build-aux/bootstrap/prebirth.js (lex): Permit newlines in string regex. * build-aux/bootstrap/rebirth.scm (lex): Permit newlines in string regex.master
parent
639948da02
commit
7f7a9704e5
|
@ -112,8 +112,9 @@
|
|||
;; strings are delimited by opening and closing ASCII
|
||||
;; double quotes, which can be escaped with a
|
||||
;; backslash
|
||||
(("\"") (let ((str (js:match-regexp "^\"(|.*?[^\\\\])\""
|
||||
trim)))
|
||||
(("\"") (let ((str (js:match-regexp
|
||||
"^\"(|(?:.|\\\n)*?[^\\\\])\""
|
||||
trim)))
|
||||
(or str (parse-error
|
||||
src pos
|
||||
"missing closing string delimiter"))
|
||||
|
|
|
@ -228,7 +228,7 @@ class Parser
|
|||
// strings are delimited by opening and closing ASCII double quotes,
|
||||
// which can be escaped with a backslash
|
||||
else if ( trim[ 0 ] === '"' ) {
|
||||
const str = trim.match( /^"(|.*?[^\\])"/ );
|
||||
const str = trim.match( /^"(|(?:.|\n)*?[^\\])"/ );
|
||||
if ( !str ) {
|
||||
this._error( src, pos, "missing closing string delimiter" );
|
||||
}
|
||||
|
|
|
@ -112,8 +112,9 @@
|
|||
;; strings are delimited by opening and closing ASCII
|
||||
;; double quotes, which can be escaped with a
|
||||
;; backslash
|
||||
(("\"") (let ((str (js:match-regexp "^\"(|.*?[^\\\\])\""
|
||||
trim)))
|
||||
(("\"") (let ((str (js:match-regexp
|
||||
"^\"(|(?:.|\\\n)*?[^\\\\])\""
|
||||
trim)))
|
||||
(or str (parse-error
|
||||
src pos
|
||||
"missing closing string delimiter"))
|
||||
|
|
Loading…
Reference in New Issue