factor: more char: \; escapes

locals-and-roots
Doug Coleman 2016-06-20 15:09:43 -07:00
parent ca255cf385
commit 69eab4cbba
9 changed files with 38 additions and 37 deletions

View File

@ -13,7 +13,7 @@ in: sequences.parser.tests
{ "foo" ";bar" } { "foo" ";bar" }
[ [
"foo;bar" [ "foo;bar" [
[ char: ; take-until-object ] [ take-rest ] bi [ char: \; take-until-object ] [ take-rest ] bi
] parse-sequence ] parse-sequence
] unit-test ] unit-test

View File

@ -50,6 +50,7 @@ ERROR: bad-escape char ;
{ char: \- char: \- } { char: \- char: \- }
{ char: \+ char: \+ } { char: \+ char: \+ }
{ char: \= char: \= } { char: \= char: \= }
{ char: \. char: \. }
{ char: \, char: \, } { char: \, char: \, }
} ?at [ bad-escape ] unless ; } ?at [ bad-escape ] unless ;

View File

@ -56,24 +56,24 @@ CONSTANT: morse-code-table $[
{ char: 8 "---.." } { char: 8 "---.." }
{ char: 9 "----." } { char: 9 "----." }
{ char: 0 "-----" } { char: 0 "-----" }
{ char: . ".-.-.-" } { char: \. ".-.-.-" }
{ char: , "--..--" } { char: \, "--..--" }
{ char: ? "..--.." } { char: \? "..--.." }
{ char: ' ".----." } { char: \' ".----." }
{ char: \! "-.-.--" } { char: \! "-.-.--" }
{ char: / "-..-." } { char: \/ "-..-." }
{ char: \( "-.--." } { char: \( "-.--." }
{ char: ) "-.--.-" } { char: \) "-.--.-" }
{ char: & ".-..." } { char: \& ".-..." }
{ char: \: "---..." } { char: \: "---..." }
{ char: ; "-.-.-." } { char: \; "-.-.-." }
{ char: = "-...- " } { char: \= "-...- " }
{ char: + ".-.-." } { char: \+ ".-.-." }
{ char: - "-....-" } { char: \- "-....-" }
{ char: _ "..--.-" } { char: \_ "..--.-" }
{ char: \" ".-..-." } { char: \" ".-..-." }
{ char: $ "...-..-" } { char: \$ "...-..-" }
{ char: @ ".--.-." } { char: \@ ".--.-." }
{ char: \s "/" } { char: \s "/" }
} >biassoc } >biassoc
] ; ] ;

View File

@ -55,7 +55,7 @@ ERROR: unknown-syntax syntax ;
PRIVATE< PRIVATE<
: trim-comments ( str -- str' ) : trim-comments ( str -- str' )
dup [ char: ; = ] find drop [ head ] when* ; dup [ char: \; = ] find drop [ head ] when* ;
: trim-quotes ( str -- str' ) : trim-quotes ( str -- str' )
[ char: \" = ] trim ; [ char: \" = ] trim ;

View File

@ -33,7 +33,7 @@ TUPLE: ast-hashtable elements ;
{ {
[ blank? not ] [ blank? not ]
[ char: \" = not ] [ char: \" = not ]
[ char: ; = not ] [ char: \; = not ]
[ LETTER? not ] [ LETTER? not ]
[ letter? not ] [ letter? not ]
[ identifier-middle? not ] [ identifier-middle? not ]

View File

@ -69,19 +69,19 @@ CONSTANT: CHARS H{
{ char: 7 0x2C62 } { char: 7 0x2C62 }
! { char: 8 char: 8 } ! { char: 8 char: 8 }
{ char: 9 char: 6 } { char: 9 char: 6 }
{ char: & 0x214B } { char: \& 0x214B }
{ char: \! 0x00A1 } { char: \! 0x00A1 }
{ char: \" 0x201E } { char: \" 0x201E }
{ char: . 0x02D9 } { char: \. 0x02D9 }
{ char: ; 0x061B } { char: \; 0x061B }
{ char: \[ char: ] } { char: \[ char: ] }
{ char: \( char: ) } { char: \( char: ) }
{ char: \{ char: } } { char: \{ char: } }
{ char: ? 0x00BF } { char: \? 0x00BF }
{ char: \! 0x00A1 } { char: \! 0x00A1 }
{ char: ' char: , } { char: \' char: , }
{ char: < char: > } { char: \< char: > }
{ char: _ 0x203E } { char: \_ 0x203E }
{ 0x203F 0x2040 } { 0x203F 0x2040 }
{ 0x2045 0x2046 } { 0x2045 0x2046 }
{ 0x2234 0x2235 } { 0x2234 0x2235 }

View File

@ -18,14 +18,14 @@ PRIVATE<
{ char: r char: \r } { char: r char: \r }
{ char: t char: \t } { char: t char: \t }
{ char: v char: \v } { char: v char: \v }
{ char: ' char: ' } { char: \' char: \' }
{ char: \" char: \" } { char: \" char: \" }
{ char: \\ char: \\ } { char: \\ char: \\ }
{ char: ? char: ? } { char: \? char: \? }
{ char: ; char: ; } { char: \; char: \; }
{ char: \[ char: \[ } { char: \[ char: \[ }
{ char: ] char: ] } { char: \] char: \] }
{ char: = char: = } { char: \= char: \= }
} ?at [ bad-escape ] unless ; } ?at [ bad-escape ] unless ;
: (unescape-string) ( str -- ) : (unescape-string) ( str -- )
@ -49,14 +49,14 @@ use: xml.entities
{ char: \r "\\r" } { char: \r "\\r" }
{ char: \t "\\t" } { char: \t "\\t" }
{ 0x0b "\\v" } { 0x0b "\\v" }
{ char: ' "\\'" } { char: \' "\\'" }
{ char: " "\\\"" } { char: \" "\\\"" }
{ char: \\ "\\\\" } { char: \\ "\\\\" }
{ char: ? "\\?" } { char: \? "\\?" }
{ char: ; "\\;" } { char: \; "\\;" }
{ char: \[ "\\[" } { char: \[ "\\[" }
{ char: \] "\\]" } { char: \] "\\]" }
{ char: = "\\=" } { char: \= "\\=" }
} escape-string-by ; } escape-string-by ;
: space? ( ch -- ? ) : space? ( ch -- ? )

View File

@ -41,7 +41,7 @@ ERROR: bad-location str ;
: stations-data ( -- seq ) : stations-data ( -- seq )
URL" http://weather.noaa.gov/data/nsd_cccc.txt" URL" http://weather.noaa.gov/data/nsd_cccc.txt"
http-get nip char: ; [ string>csv ] with-delimiter ; http-get nip char: \; [ string>csv ] with-delimiter ;
PRIVATE> PRIVATE>

View File

@ -13,6 +13,6 @@ in: xml.test.state
[ "hello" ] [ "hello" [ take-rest ] string-parse ] unit-test [ "hello" ] [ "hello" [ take-rest ] string-parse ] unit-test
[ 2 3 ] [ "12\n123" [ take-rest drop get-line get-column ] string-parse ] unit-test [ 2 3 ] [ "12\n123" [ take-rest drop get-line get-column ] string-parse ] unit-test
[ "hi" " how are you?" ] [ "hi how are you?" [ [ blank? ] take-until take-rest ] string-parse ] unit-test [ "hi" " how are you?" ] [ "hi how are you?" [ [ blank? ] take-until take-rest ] string-parse ] unit-test
[ "foo" ";bar" ] [ "foo;bar" [ char: ; take-char take-rest ] string-parse ] unit-test [ "foo" ";bar" ] [ "foo;bar" [ char: \; take-char take-rest ] string-parse ] unit-test
[ "foo " " bar" ] [ "foo and bar" [ "and" take-string take-rest ] string-parse ] unit-test [ "foo " " bar" ] [ "foo and bar" [ "and" take-string take-rest ] string-parse ] unit-test
[ "baz" ] [ " \n\t baz" [ pass-blank take-rest ] string-parse ] unit-test [ "baz" ] [ " \n\t baz" [ pass-blank take-rest ] string-parse ] unit-test