X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=toplevel-find;h=3e3c28b90cb1f6cf8ad97fa0a88d9cff9aa29973;hp=227bb73a7989d0714b55abd78fbf83b8b63213a0;hb=a209405f7a11fcfc75f970a09361566d29e9e709;hpb=2f3192186dfa30aba68ad655ac22fc63ca819f3a diff --git a/toplevel-find b/toplevel-find index 227bb73..3e3c28b 100755 --- a/toplevel-find +++ b/toplevel-find @@ -3,10 +3,16 @@ use strict; @ARGV==1 or die; my $base = $ARGV[0]; $base =~ m/^\-/ and die; -open F, "$base.scad" or die $!; +open F, "$base.scad" or die "$base.scad $!"; while () { - next unless m#^\s*module\s+(\w+)\b.*////toplevel\b#; - print "$base,$1\n" or die $!; + if (m#^//// toplevels-from:#) { + defined($_ = ) or die $!; + m#^include\s+\<(\S+)>\s*$# or die; + open F, "$1" or die "$1 $!"; + next; + } + next unless m#^\s*(?:////\s?)?module\s+(\w+)\b.*////toplevel\b#; + print "$base,$1\n" or die $!; } close F or die $!; close STDOUT or die $!;