chiark / gitweb /
ksafe-base: wip, fix
[reprap-play.git] / toplevel-find
1 #!/usr/bin/perl -w
2 use strict;
3 @ARGV==1 or die;
4 my $base = $ARGV[0];
5 $base =~ m/^\-/ and die;
6 open F, "$base.scad" or die "$base.scad $!";
7 while (<F>) {
8     if (m#^//// toplevels-from:#) {
9         defined($_ = <F>) or die $!;
10         m#^include\s+\<(\S+)>\s*$# or die;
11         open F, "$1" or die "$1 $!";
12         next;
13     }
14     next unless m#^\s*(?:////\s?)?module\s+(\w+)\b.*////toplevel\b#;
15     print "$base,$1\n" or die $!;
16 }
17 close F or die $!;
18 close STDOUT or die $!;