]> gitweb.factorcode.org Git - factor.git/blob - extra/nested-comments/nested-comments.factor
core, basis, extra: Remove DOS line endings from files.
[factor.git] / extra / nested-comments / nested-comments.factor
1 ! Copyright (C) 2009 blei, Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel locals make math multiline sequences ;
4 IN: nested-comments
5
6 : (count-subsequences) ( count substring string n -- count' )
7     [ 2dup ] dip start* [
8         pick length +
9         [ 1 + ] 3dip (count-subsequences)
10     ] [
11         2drop
12     ] if* ;
13
14 : count-subsequences ( subseq seq -- n )
15     [ 0 ] 2dip 0 (count-subsequences) ;
16
17 : parse-nestable-comment ( parsed-vector left-to-parse -- parsed-vector )
18     1 - "*)" parse-multiline-string
19     [ "(*" ] dip
20     count-subsequences + dup 0 > [ parse-nestable-comment ] [ drop ] if ;
21
22 SYNTAX: (* 1 parse-nestable-comment ;