Web based MIPS assembler and emulator

assembler.js 638B

123456789101112131415161718192021
  1. // --- START DEBUG ONLY CODE ---
  2. // const fs = require('fs')
  3. // const input = fs.readFileSync('test.asm', { encoding: 'utf-8' })
  4. // --- END DEBUG ONLY CODE ---
  5. const encoders = require('./encoders.js')
  6. const lines = raw => raw.split('\n').map(s => s.trim()).filter(s => !!s)
  7. const parse = lineArray => lineArray.map(line => {
  8. return {
  9. instruction: line.substr(0, line.indexOf(' ')),
  10. arguments: line.substr(line.indexOf(' ')+1).split(',').map(s => s.trim())
  11. }
  12. }).map(line => encoders[line.instruction].apply(null, line.arguments))
  13. // console.log(parse(lines(input)))
  14. module.exports = {
  15. 'lines': lines,
  16. 'parse': parse
  17. }