#!/usr/bin/perl -w use strict; @ARGV==1 or die; my $base = $ARGV[0]; $base =~ m/^\-/ and die; open F, "$base.scad" or die "$base.scad $!"; while () { 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 $!;