UNPKG

antlr-ng

Version:

Next generation ANTLR Tool

38 lines (37 loc) 2.65 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); import { Command, Option } from "commander"; import { antlrVersion } from "./version.js"; const parseToolParameters = /* @__PURE__ */ __name((args) => { const parseBoolean = /* @__PURE__ */ __name((value, previous) => { if (value == null) { return previous; } const lower = value.trim().toLowerCase(); return lower === "true" || lower === "1" || lower === "on" || lower === "yes"; }, "parseBoolean"); const defines = {}; const parseKeyValuePair = /* @__PURE__ */ __name((input) => { const [key, value] = input.split("="); defines[key] = value; return defines; }, "parseKeyValuePair"); const prepared = new Command().option("-o, --output-directory <path>", "specify output directory where all output is generated").option("--lib <path>", "specify location of grammars, tokens files").option("--atn [boolean]", "Generate rule augmented transition network diagrams.", parseBoolean, false).option("-e, --encoding <string>", "Specify grammar file encoding; e.g., ucs-2.", "utf-8").addOption(new Option("--message-format[string]", "Specify output style for messages in antlr, gnu, vs2005.").choices(["antlr", "gnu", "vs2005"]).default("antlr")).option( "--long-messages [boolean]", "Show exception details when available for errors and warnings.", parseBoolean, false ).option("-l, --generate-listener [boolean]", "Generate parse tree listener.", parseBoolean, true).option("-v, --generate-visitor [boolean]", "Generate parse tree visitor.", parseBoolean, false).option("-p, --package <name>", "Specify a package/namespace for the generated code.").option("-d, --generate-dependencies [boolean]", "Generate file dependencies.", parseBoolean, false).option("-D, --define <key=value...>", "Set/override a grammar-level option.", parseKeyValuePair).option("-w, --warnings-are-errors [boolean]", "Treat warnings as errors.", parseBoolean, false).option("-f, --force-atn [boolean]", "Use the ATN simulator for all predictions.", parseBoolean, false).option("--log [boolean]", "Dump lots of logging info to antlrng-timestamp.log.", parseBoolean, false).option( "--exact-output-dir [boolean]", "All output goes into -o dir regardless of paths/package", parseBoolean, true ).argument("<grammar...>", "A list of grammar files.").version(`antlr-ng ${antlrVersion}`); prepared.parse(args, { from: "user" }); const result = prepared.opts(); result.args = prepared.args; return result; }, "parseToolParameters"); export { parseToolParameters };