From bd329c74976276c66e49f48e1dfb232b1ce9ad2d Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 9 Aug 2018 16:13:50 -0400 Subject: [PATCH] lexer: Add char: \' support. Fix ch'\' support --- core/lexer/lexer.factor | 10 ++++++++-- core/strings/parser/parser.factor | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/lexer/lexer.factor b/core/lexer/lexer.factor index 1c3d7e2d55..96fef73e99 100644 --- a/core/lexer/lexer.factor +++ b/core/lexer/lexer.factor @@ -151,8 +151,14 @@ PREDICATE: unexpected-eof < unexpected got>> not ; : strict-single-quote? ( string -- ? ) "'" split1 - [ [ char: ' swap member? not ] [ drop t ] bi and ] - [ [ length 0 > ] [ "'" tail? not ] bi and ] bi* and ; + [ drop t ] + [ + [ length 0 > ] + [ + ! ch'\' + [ "\\'" tail? ] [ "'" tail? not ] bi or + ] bi and + ] bi* and ; : strict-lower-colon? ( string -- ? ) [ char: \: = ] cut-tail diff --git a/core/strings/parser/parser.factor b/core/strings/parser/parser.factor index bfd951739f..78c9296025 100644 --- a/core/strings/parser/parser.factor +++ b/core/strings/parser/parser.factor @@ -31,6 +31,7 @@ ERROR: bad-escape char ; { char: \] char: \] } { char: \} char: \} } { char: \) char: \) } + { char: \' char: \' } } ?at [ bad-escape ] unless ; INITIALIZED-SYMBOL: name>char-hook [