diff --git a/src/main/java/org/jcnc/snow/compiler/cli/SnowCLI.java b/src/main/java/org/jcnc/snow/compiler/cli/SnowCLI.java index 5270dc3..b61d2ad 100644 --- a/src/main/java/org/jcnc/snow/compiler/cli/SnowCLI.java +++ b/src/main/java/org/jcnc/snow/compiler/cli/SnowCLI.java @@ -2,67 +2,98 @@ package org.jcnc.snow.compiler.cli; import org.jcnc.snow.compiler.cli.commands.CompileCommand; import org.jcnc.snow.compiler.cli.commands.RunCommand; +import org.jcnc.snow.compiler.cli.commands.VersionCommand; import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Supplier; /** - * SnowCLI 是项目的命令行入口类,负责解析用户输入、分发子命令并统一处理帮助和错误。 + * SnowCLI 是项目的命令行入口类,负责解析用户输入、 + * 分发子命令,并统一处理帮助、版本和错误输出。 */ public class SnowCLI { + /** Snow 编程语言的版本号。 */ + public static final String VERSION = "1.0.0"; + + /** 全局帮助标志,当输入匹配时显示帮助信息。 */ + private static final Set GLOBAL_HELP_FLAGS = Set.of("help", "-h", "--help"); + + /** 全局版本标志,当输入匹配时显示版本信息。 */ + private static final Set GLOBAL_VERSION_FLAGS = Set.of("-v", "--version"); /** - * 保存所有可用子命令的映射:命令名称 -> 命令实例的提供者 + * 全局选项定义列表。 + * 每个 Option 包含可用标志列表及对应的描述信息。 + */ + private static final List