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);
}