From d2395d897e32fc884c8f402d4362cc526142be0a Mon Sep 17 00:00:00 2001 From: Fenris Wolf Date: Tue, 23 Sep 2025 21:46:49 +0200 Subject: [PATCH] [sty] main --- source/type2.ts | 93 ++++++++++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 39 deletions(-) diff --git a/source/type2.ts b/source/type2.ts index 628ad1e..ddb2043 100644 --- a/source/type2.ts +++ b/source/type2.ts @@ -21,13 +21,20 @@ along with »type2«. If not, see . /** * @author fenris */ -type type_resulttree = lib_plankton.lang.type_tree; +type type_resulttree = lib_plankton.lang.type_tree< + lib_plankton.lang.type_terminal_default +>; /** * @author fenris */ -type type_myreader = lib_plankton.lang.class_reader; +type type_myreader = lib_plankton.lang.class_reader< + char, + lib_plankton.lang.type_terminal_default, + string, + type_resulttree +>; /** @@ -51,46 +58,52 @@ async function main( args_raw : Array ) : Promise { - const args_handler : lib_args.class_handler = new lib_args.class_handler({ - "path": lib_args.class_argument.positional({ - "index": 0, - "type": lib_args.enum_type.string, - "mode": lib_args.enum_mode.replace, - "info": "the path to the grammar file", - "name": "path", - }), - "verbosity": lib_args.class_argument.volatile({ - "indicators_short": ["v"], - "indicators_long": ["verbosity"], - "type": lib_args.enum_type.integer, - "mode": lib_args.enum_mode.replace, - "default": 1, - "info": "verbosity level", - "name": "verbosity", - }), - "help": lib_args.class_argument.volatile({ - "indicators_short": ["h"], - "indicators_long": ["help"], - "type": lib_args.enum_type.boolean, - "mode": lib_args.enum_mode.replace, - "default": false, - "info": "show help and exit", - "name": "help", - }), - }); + const args_handler : lib_args.class_handler = new lib_args.class_handler( + { + "path": lib_args.class_argument.positional({ + "index": 0, + "type": lib_args.enum_type.string, + "mode": lib_args.enum_mode.replace, + "info": "the path to the grammar file", + "name": "path", + }), + "verbosity": lib_args.class_argument.volatile({ + "indicators_short": ["v"], + "indicators_long": ["verbosity"], + "type": lib_args.enum_type.integer, + "mode": lib_args.enum_mode.replace, + "default": 1, + "info": "verbosity level", + "name": "verbosity", + }), + "help": lib_args.class_argument.volatile({ + "indicators_short": ["h"], + "indicators_long": ["help"], + "type": lib_args.enum_type.boolean, + "mode": lib_args.enum_mode.replace, + "default": false, + "info": "show help and exit", + "name": "help", + }), + } + ); const args : Record = args_handler.read(lib_args.enum_environment.cli, args_raw.join(" ")); - if (args["help"]) { + if (args["help"]) + { process.stdout.write( - args_handler.generate_help({ - "programname": "type2", - "description": "reads a string from stdin and parses it according to a given grammar to an abstract syntax tree as JSON", - "author": "kcf ", - "executable": "type2", - }) + args_handler.generate_help( + { + "programname": "type2", + "description": "reads a string from stdin and parses it according to a given grammar to an abstract syntax tree as JSON", + "author": "kcf ", + "executable": "type2", + } + ) ); return Promise.resolve(undefined); } - else { + else + { lib_plankton.log.conf_push( (args["verbosity"] <= 0) ? [] @@ -112,10 +125,12 @@ async function main( const reader : type_myreader = await generate_reader(args["path"]); const input_raw : string = await lib_plankton.file.read_stdin(); const result : type_resulttree = reader.run(input_raw.split("")); - if (result === null) { + if (result === null) + { return Promise.reject(new Error("reading failed")); } - else { + else + { process.stdout.write(JSON.stringify(result, undefined, "\t") + "\n"); return Promise.resolve(undefined); }