diff --git a/juicescript.js b/juicescript.js deleted file mode 100644 index de86c44..0000000 --- a/juicescript.js +++ /dev/null @@ -1,95 +0,0 @@ -/*! Juicescript.js v1.0.0-a | (c) DrMaxNix 2022 | juice.drmaxnix.de */ - -///////////////////////// -// M A I N C L A S S // -///////////////////////// - -class Juicescript { - /* - CONSTRUCTOR: Return new juicescript parser with OPTIONS - */ - constructor(options){ - // STORE CALLBACKS // - // save - if(options.callback !== undefined){ - this.callback = options.callback; - } - - // check if all have been set - if(!(this.callback.stdout instanceof Function)){ - throw "invalid stdout callback"; - } - if(!(this.callback.stderr instanceof Function)){ - throw "invalid stderr callback"; - } - - - // GET IO ADAPTER // - this.io = new Juicescript_io(this.callback); - } - - /* - Parse given PROGRAM-STRING and store syntax tree - */ - parse(program_string){ - - } - - - - - - // DEBUG STUFFS // - run(){ - this.io.stdout("stdout text"); - this.io.stderr.debug("This debug is a test"); - this.io.stderr.info("This info is a test"); - this.io.stderr.warning("This warning is a test"); - this.io.stderr.error("This error is a test"); - } -} - - - - - -///////////////////////////////// -// I N P U T / O U T P U T // -///////////////////////////////// - -class Juicescript_io { - /* - CONSTRUCTOR: Return new juicescript io adapter with CALLBACKs - */ - constructor(callback){ - // store callbacks - this.callback = callback; - } - - /* - HELPER: Stdout method - */ - stdout(text){ - this.callback.stdout(text); - } - - /* - GETTER: Return stderr method collection - */ - get stderr(){ - return { - debug: (text) => { - this.callback.stderr("[DEBUG] " + text, "debug"); - }, - info: (text) => { - this.callback.stderr("[INFO ] " + text, "info"); - }, - warning: (text) => { - this.callback.stderr("[WARN ] " + text, "warning"); - }, - error: (text) => { - this.callback.stderr("[ERROR] " + text, "error"); - } - } - } -} diff --git a/src/io.js b/src/io.js new file mode 100644 index 0000000..6485d00 --- /dev/null +++ b/src/io.js @@ -0,0 +1,36 @@ +class Juicescript_io { + /* + CONSTRUCTOR: Return new juicescript io adapter with CALLBACKs + */ + constructor(callback){ + // store callbacks + this.callback = callback; + } + + /* + HELPER: Stdout method + */ + stdout(text){ + this.callback.stdout(text); + } + + /* + GETTER: Return stderr method collection + */ + get stderr(){ + return { + debug: (text) => { + this.callback.stderr("[DEBUG] " + text, "debug"); + }, + info: (text) => { + this.callback.stderr("[INFO ] " + text, "info"); + }, + warning: (text) => { + this.callback.stderr("[WARN ] " + text, "warning"); + }, + error: (text) => { + this.callback.stderr("[ERROR] " + text, "error"); + } + } + } +} \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..4ffb05e --- /dev/null +++ b/src/main.js @@ -0,0 +1,44 @@ +class Juicescript { + /* + CONSTRUCTOR: Return new juicescript parser with OPTIONS + */ + constructor(options){ + // STORE CALLBACKS // + // save + if(options.callback !== undefined){ + this.callback = options.callback; + } + + // check if all have been set + if(!(this.callback.stdout instanceof Function)){ + throw "invalid stdout callback"; + } + if(!(this.callback.stderr instanceof Function)){ + throw "invalid stderr callback"; + } + + + // GET IO ADAPTER // + this.io = new Juicescript_io(this.callback); + } + + /* + Parse given PROGRAM-STRING and store syntax tree + */ + parse(program_string){ + + } + + + + + + // DEBUG STUFFS // + run(){ + this.io.stdout("stdout text"); + this.io.stderr.debug("This debug is a test"); + this.io.stderr.info("This info is a test"); + this.io.stderr.warning("This warning is a test"); + this.io.stderr.error("This error is a test"); + } +} \ No newline at end of file