// MoonDatalog —— 命令行工具
//
// 用法:
// moon run cmd/main -- [--relations] [--trace]
//
// 读取一个 Datalog 源文件,求值后打印每个查询的结果;
// `--relations` 额外打印全部关系;`--trace` 打印每个谓词的
// 元组数量概览。
///|
fn usage() -> String {
"用法: moondatalog [--relations] [--trace]"
}
///|
fn main {
let args = @env.args()
// args[0] 为程序名,用户参数从 args[1] 开始
let mut file : String? = None
let mut show_relations = false
let mut trace = false
for i in 1.. p
None => {
println("错误: 请提供 Datalog 源文件路径")
println(usage())
@sys.exit(2)
"" // 不可达
}
}
let src = @fs.read_file_to_string(path) catch {
_ => {
println("错误: 无法读取文件: \{path}")
@sys.exit(1)
"" // 不可达:exit 已终止进程
}
}
match @moondatalog.parse(src) {
Err(e) => {
println(e.to_string())
@sys.exit(1)
}
Ok(program) =>
match @moondatalog.evaluate(program) {
Err(e) => {
println(e.to_string())
@sys.exit(1)
}
Ok(result) => {
for i in 0.. 0 {
println("\{name}\{rel.to_string()}")
}
}
}
}
}
}
}