// 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()}")
              }
            }
          }
        }
      }
  }
}