All files transpile.js

100% Statements 18/18
100% Branches 0/0
100% Functions 1/1
100% Lines 18/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  2x 2x 2x 2x 2x 2x   2x 30x   30x 30x   1x 1x 1x     29x 29x   29x   29x 29x      
#!/usr/bin/env node
const {deb} = require('./deb.js');
const p = require("./calc").parser;
const fs = require('fs/promises');
const { scopeAnalysis, dependencies } = require('./scope.js');
const codeGen = require('./code-generation.js')
const writeCode = require('./write-code.js');
 
module.exports = async function transpile(inputFile, outputFile) {
  let input = await fs.readFile(inputFile, 'utf-8')
  let ast;
  try {
    ast = p.parse(input);
  } catch (e) {
    let m = e.message
    console.error(m);
    return m;
  }
 
  ast = dependencies(ast);
  ast = scopeAnalysis(ast);
 
  let output = codeGen(ast);
  
  await writeCode(output, outputFile);
  return output;
}