]> git.kianting.info Git - clo/blob - src/index.ts
20231012: clo->js converter successfully (maybe.)
[clo] / src / index.ts
1 var fs = require('fs');
2 var argv : any = require('minimist')(process.argv.slice(2));
3
4 import * as parser from "./parser.js";
5
6
7 let helpDesc =
8 `
9 clo: clo INPUT_FILE --output-js OUTPUT_JS_FILE
10
11 \ta little typesetter powered by TypeScript/Javascript.
12
13 ## Arguments
14 INPUT_FILE\tan input .clo file
15
16 ## Parameters
17 ---
18 --output-js\tgenerated the output middle JS file
19 `
20
21 processArgv(argv, helpDesc);
22
23 /**
24 * processing the passed `argv` (arguments)
25 */
26
27 function processArgv(argv : any, helpDesc : string){
28 let inputFile : string[] = argv['_'];
29 let outputJSFile : string | true = argv['output-js'];
30
31 let NoInputFile : boolean = (inputFile.length == 0);
32 let NoOutputJSFile : boolean = (outputJSFile === undefined || outputJSFile == true);
33 let helpTriggered : boolean = argv['help'];
34
35 if (inputFile.length > 1){
36 console.log("Sorry, the input file should be only one.");
37 }
38
39 /** output --help */
40 if (helpTriggered || NoInputFile || NoOutputJSFile){
41 console.log(helpDesc);
42 }else{
43 fs.readFile(inputFile[0], 'utf8', (err : Error, inputText : string) => {
44 if (err) throw err;
45
46 let tree = parser.inputTextToTree(inputText);
47
48 let output = parser.treeToJS(tree);
49
50 fs.writeFile(outputJSFile, output , (err : Error) => {
51 if (err) throw err;
52 });
53
54 });
55 }
56
57 }
58
59
60
61
62