factor: more char: \; escapes
parent
ca255cf385
commit
69eab4cbba
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
] ;
|
] ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ]
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
|
@ -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 -- ? )
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue