remove math.blas.syntax and merge parsing words into math.blas.vectors/matrices
[factor/jcg.git] / extra / html / parser / utils / utils.factor
blobc913b9d306cebd77db6e8785706300fb7063b73e
1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs circular combinators continuations hashtables
4 hashtables.private io kernel math namespaces prettyprint
5 quotations sequences splitting html.parser.state strings
6 combinators.short-circuit ;
7 IN: html.parser.utils
9 : string-parse-end? ( -- ? ) get-next not ;
11 : trim1 ( seq ch -- newseq )
12     [ [ ?head-slice drop ] [ ?tail-slice drop ] bi ] 2keep drop like ;
14 : quote? ( ch -- ? ) "'\"" member? ;
16 : single-quote ( str -- newstr ) "'" dup surround ;
18 : double-quote ( str -- newstr ) "\"" dup surround ;
20 : quote ( str -- newstr )
21     CHAR: ' over member?
22     [ double-quote ] [ single-quote ] if ;
24 : quoted? ( str -- ? )
25     {
26         [ length 1 > ]
27         [ first quote? ]
28         [ [ first ] [ peek ] bi = ]
29     } 1&& ;
31 : ?quote ( str -- newstr ) dup quoted? [ quote ] unless ;
33 : unquote ( str -- newstr )
34     dup quoted? [ but-last-slice rest-slice >string ] when ;