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