aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/pascal.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compilers/pascal.js')
-rw-r--r--lib/compilers/pascal.js32
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;