JavaScript interpreter for Printr
An interpreter for the Printr language, written in JavaScript.
Build environment
The interpreter was built in the following environment:
- Node version 10.14.0
- NPM version 6.5.0
Installation and usage
npm install printr-interpreter
In the host system, grab the interpreter and pass it source text written in Printr. The text may come from a string constant, a file, the result of a network request or any other source.
The interpreter shall emit 'print
' instructions with text as an argument that can then be interpreted by the host. An example interpretation of a 'print
' instruction may be to route the text argument to stdout
or alert a user on a web page.
const interpreter = new Printr();
interpreter.on('print', (text) => console.log(text));
interpreter.run('"Hello World!"');
Error handling
When running a Printr program, the interpreter will stop when encountering a syntax error. It's possible to handle syntax errors by registering a handler for the error
event:
interpreter.on('error', (error) => console.log(error));
The error handler will receive details of the syntax error as its only argument.
If an error handler has not been registered, a syntax error will be thrown and must be caught within a try/catch
block:
try {
const interpreter = new Printr();
interpreter.on('print', (text) => console.log(text));
interpreter.run('"Hello World!"');
}
catch(syntaxError) {
// ... do something to handle error
}
Notes
Registering a handler for an instruction other than 'print
' will not throw an error, just in case the language is extended in the future.
Running tests
Install test dependencies and run the test command:
npm i
npm test