]> git.kianting.info Git - clo/blobdiff - src/index.js
20231012: clo->js converter successfully (maybe.)
[clo] / src / index.js
index f5f76745b6e30a286c0f4ddab0b259fdadf9961f..53df24ce362d0fb92676faf42d0b3ddf2debbddc 100644 (file)
@@ -22,19 +22,49 @@ var __importStar = (this && this.__importStar) || function (mod) {
     __setModuleDefault(result, mod);
     return result;
 };
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
 Object.defineProperty(exports, "__esModule", { value: true });
 var fs = require('fs');
-const js_tokens_1 = __importDefault(require("js-tokens"));
-const util = __importStar(require("util"));
-let repr = (x) => { return util.inspect(x, { depth: null }); };
-const tokens = Array.from((0, js_tokens_1.default)(`
-import foo from\t 'bar';
-import * as util  from 'util';
+var argv = require('minimist')(process.argv.slice(2));
+const parser = __importStar(require("./parser.js"));
+let helpDesc = `
+clo: clo INPUT_FILE --output-js OUTPUT_JS_FILE
+
+\ta little typesetter powered by TypeScript/Javascript.
 
+## Arguments
+INPUT_FILE\tan input .clo file
 
-花$非花,霧\\{非霧 。{{foo();}}下
-一句`));
-console.log("RESULT=" + repr(tokens));
+## Parameters
+---
+--output-js\tgenerated the output middle JS file
+`;
+processArgv(argv, helpDesc);
+/**
+ * processing the passed `argv` (arguments)
+ */
+function processArgv(argv, helpDesc) {
+    let inputFile = argv['_'];
+    let outputJSFile = argv['output-js'];
+    let NoInputFile = (inputFile.length == 0);
+    let NoOutputJSFile = (outputJSFile === undefined || outputJSFile == true);
+    let helpTriggered = argv['help'];
+    if (inputFile.length > 1) {
+        console.log("Sorry, the input file should be only one.");
+    }
+    /** output --help */
+    if (helpTriggered || NoInputFile || NoOutputJSFile) {
+        console.log(helpDesc);
+    }
+    else {
+        fs.readFile(inputFile[0], 'utf8', (err, inputText) => {
+            if (err)
+                throw err;
+            let tree = parser.inputTextToTree(inputText);
+            let output = parser.treeToJS(tree);
+            fs.writeFile(outputJSFile, output, (err) => {
+                if (err)
+                    throw err;
+            });
+        });
+    }
+}