UNPKG

eggtended-js

Version:

A extended version of the Egg programming language from the Eloquent Javascript book.

41 lines (30 loc) 1.07 kB
const fs = require("fs"); require("should"); const sinon = require("sinon"); const { Lexer } = require("../lib/parser/lexer.js"); describe("Testing Lexer class behaviour", () => { const lexer = new Lexer(); before(() => { const readFileSyncStub = sinon.stub(fs, "readFileSync"); const program = "do(print(3))"; readFileSyncStub.withArgs("testfile", "utf-8").returns(program); }); after(() => { fs.readFileSync.restore(); }); it("should be able to tokenize a line and count the LP-RP balance", () => { // Perfectly balanced, as all things should be let parBalance = lexer.getParBalance("foo()"); parBalance.should.be.exactly(0); parBalance = lexer.getParBalance("foo.bar()"); parBalance.should.be.exactly(0); parBalance = lexer.getParBalance("hue["); parBalance.should.be.exactly(1); parBalance = lexer.getParBalance("];"); parBalance.should.be.exactly(-1); }); it("should tokenize from a file", () => { const tokens = Lexer.tokenizeFromFile("testfile"); console.log(tokens); }); });