const process = require('node:process'); const fs = require('node:fs'); const parser = require('./grammar.js').parser; parser.yy = { pc: 0, step: function() { this.pc += 1; }, equ: {}, line: {}, setEqu: function(l, v) { this.equ[l] = v; }, setLine: function(l) { this.line[l] = this.pc; }, getLabel: function(l) { if (this.equ[l] !== undefined) { return this.equ[l]; } return l; }, tidyAddress: function(pc, addr) { if (typeof(addr.value) === "string") { addr.value = this.line[addr.value] - pc; } }, }; //if (process.argv[1] === 'parser.js' && process.argv.length >= 3) { fs.readFile(process.argv[2], 'utf8', (err, data) => { if (err) throw err; let program = parser.parse(data.toUpperCase()); if (typeof(program.start) === "string") { program.start = parser.yy.line[program.start]; } for (let pc=0; pc