From f2a515a940ea5e66c9fbc9669e6293ae32b7041a Mon Sep 17 00:00:00 2001 From: sanine-a Date: Mon, 22 May 2023 14:26:10 -0500 Subject: update label style and add implicit second operand --- src/parser/parser.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/parser/parser.js (limited to 'src/parser/parser.js') diff --git a/src/parser/parser.js b/src/parser/parser.js new file mode 100644 index 0000000..ef84be3 --- /dev/null +++ b/src/parser/parser.js @@ -0,0 +1,36 @@ +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 this.line[l] - this.pc; + }, +}; + +//if (process.argv[1] === 'parser.js' && process.argv.length >= 3) { + fs.readFile(process.argv[2], 'utf8', (err, data) => { + if (err) throw err; + let result = parser.parse(data.toUpperCase()); + console.log(result); + console.log(parser.yy); + }); +//} -- cgit v1.2.1