factor/extra/nested-comments/nested-comments.factor

23 lines
703 B
Factor
Raw Normal View History

! Copyright (C) 2009 blei, Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
2009-06-05 02:29:36 -04:00
USING: kernel sequences math locals make multiline ;
IN: nested-comments
: (count-subsequences) ( count substring string n -- count' )
[ 2dup ] dip start* [
pick length +
[ 1 + ] 3dip (count-subsequences)
] [
2drop
] if* ;
2009-06-05 02:29:36 -04:00
: count-subsequences ( subseq seq -- n )
[ 0 ] 2dip 0 (count-subsequences) ;
2009-06-05 02:29:36 -04:00
: parse-nestable-comment ( parsed-vector left-to-parse -- parsed-vector )
1 - "*)" parse-multiline-string
[ "(*" ] dip
count-subsequences + dup 0 > [ parse-nestable-comment ] [ drop ] if ;
2009-06-05 02:29:36 -04:00
SYNTAX: (* 1 parse-nestable-comment ;