diff options
Diffstat (limited to 'lib/compilers/pascal.js')
-rw-r--r-- | lib/compilers/pascal.js | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/lib/compilers/pascal.js b/lib/compilers/pascal.js index 35bf61b49..c060ed831 100644 --- a/lib/compilers/pascal.js +++ b/lib/compilers/pascal.js @@ -26,6 +26,7 @@ const BaseCompiler = require('../base-compiler'), PascalDemangler = require('../pascal-support').demangler, utils = require('../utils'), + _ = require('underscore-node'), fs = require("fs"), path = require("path"), argumentParsers = require("./argument-parsers"); @@ -61,13 +62,15 @@ class FPCCompiler extends BaseCompiler { } optionsForFilter(filters, outputFilename, userOptions) { - let options = ['-g']; + let options = ['-g', '-al']; if (this.compiler.intelAsm && filters.intel && !filters.binary) { options = options.concat(this.compiler.intelAsm.split(" ")); } - return options; + filters.preProcessLines = _.bind(this.preProcessLines, this); + + return options; } getOutputFilename(dirPath, outputFilebase) { @@ -149,16 +152,8 @@ class FPCCompiler extends BaseCompiler { getArgumentParser() { return argumentParsers.Base; } -} - -/*function compileFPC(info, env) { - const demangler = new PascalDemangler(); - const compiler = new Compile(info, env); - - const - - const getExtraAsmHint = asm => { + getExtraAsmHint(asm) { if (asm.startsWith("# [")) { const bracketEndPos = asm.indexOf("]", 3); let valueInBrackets = asm.substr(3, bracketEndPos - 3); @@ -169,7 +164,7 @@ class FPCCompiler extends BaseCompiler { if (!isNaN(valueInBrackets)) { return " .loc 1 " + valueInBrackets + " 0"; - } else if (valueInBrackets.includes(compiler.compileFilename)) { + } else if (valueInBrackets.includes(this.compileFilename)) { return " .file 1 \"<stdin>\""; } else { return false; @@ -179,26 +174,25 @@ class FPCCompiler extends BaseCompiler { } else { return false; } - }; + } - var preProcessLines = asmLines => { + preProcessLines(asmLines) { let i = 0; while (i < asmLines.length) { - const extraHint = getExtraAsmHint(asmLines[i]); + const extraHint = this.getExtraAsmHint(asmLines[i]); if (extraHint) { i++; asmLines.splice(i, 0, extraHint); } else { - demangler.addDemangleToCache(asmLines[i]); + this.demangler.addDemangleToCache(asmLines[i]); } i++; } return asmLines; - }; - -}*/ + } +} module.exports = FPCCompiler; |