Better MAIN

This commit is contained in:
Aoran Zeng 2025-07-16 23:09:59 +08:00
parent 174ba78f0d
commit 7669a0417b
No known key found for this signature in database
GPG Key ID: 8F8BA8488E10ED98

View File

@ -19,8 +19,12 @@ use Parser;
use Generator; use Generator;
sub USAGE() { sub USAGE() {
usage;
}
sub usage() {
print q:to/END/; print q:to/END/;
Usage: rawstr4c <FILE.md|DIR> [--debug] [--help] Usage: rawstr4c [--debug] [--help] <FILE.md|DIR>
Arguments: Arguments:
FILE.md Process a specific markdown file FILE.md Process a specific markdown file
@ -28,18 +32,21 @@ sub USAGE() {
Options: Options:
--debug Show debug information during processing --debug Show debug information during processing
Value can be [generator|parser]. Default to generator.
--help Show this help message --help Show this help message
Error: Unknown option or invalid arguments provided. Error: Unknown option or invalid arguments provided.
END END
exit(1);
} }
sub MAIN( sub MAIN(
# 一定要声明为必选,强制用户输入,未输入时直接进入 USAGE # 一定要声明为必选,强制用户输入,未输入时直接进入 USAGE
Str $input-path, Str $input-path,
Bool :$debug = False, #= --debug # 如果是 Str 类型,则 --debug 缺少命令行参数
Bool :$help #= --help USAGE # 如果是 Any 类型,则可以直接使用 --debug值为 True
Any :$debug,
) )
{ {
my $markdown-file; my $markdown-file;
@ -61,7 +68,18 @@ sub MAIN(
my $parser = Parser::Parser.new($markdown-file.Str); my $parser = Parser::Parser.new($markdown-file.Str);
$parser.parse; $parser.parse;
$parser.debug-print-summary if $debug;
Generator::Generator.new($parser).generate; my $generator = Generator::Generator.new($parser);
if ($debug.defined) {
given $debug {
when 'parser' {
$parser.debug;
}
default {
$generator.debug;
}
}
}
$generator.generate;
} }