1234567891011121314151617181920212223242526 |
- const Env = require('./env')
- const Evaluator = require('./evaluator')
- const Lexer = require('./lexer')
- const OsloError = require('./osloError')
- const Parser = require('./parser')
-
- module.exports = function oslo(source, context) {
- const lexer = new Lexer()
- const tokens = lexer.scan(source)
-
- const parser = new Parser()
- const tree = parser.parse(tokens)
-
- if (tree.error) {
- return tree.error
- }
-
- const evaluator = new Evaluator()
- const evaluatedTree = evaluator.eval(tree, new Env())
-
- if (evaluatedTree.constructor == OsloError) {
- return evaluatedTree
- }
-
- return ''
- }
|