aboutsummaryrefslogtreecommitdiff
path: root/lib/asm.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asm.js')
-rw-r--r--lib/asm.js35
1 files changed, 14 insertions, 21 deletions
diff --git a/lib/asm.js b/lib/asm.js
index 03f66d5ef..35a31e6e2 100644
--- a/lib/asm.js
+++ b/lib/asm.js
@@ -22,10 +22,10 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
-(function () {
- var _ = require('underscore-node');
- var asmCl = require('./asm-cl');
- var utils = require('./utils');
+var _ = require('underscore-node');
+var utils = require('./utils');
+
+function AsmParser(compilerProps) {
var labelFind = /[.a-zA-Z_][a-zA-Z0-9$_.]*/g;
var dataDefn = /\.(string|asciz|ascii|[1248]?byte|short|word|long|quad|value|zero)/;
var fileFind = /^\s*\.file\s+(\d+)\s+"([^"]+)".*/;
@@ -104,7 +104,6 @@
}
function processAsm(asm, filters) {
- if (asm.match(/^; Listing generated by Microsoft/)) return processClAsm(asm, filters);
if (filters.binary) return processBinaryAsm(asm, filters);
var result = [];
@@ -184,12 +183,6 @@
var binaryHideFuncRe = null;
var maxAsmLines = 500;
- function initialise(compilerProps) {
- var pattern = compilerProps('binaryHideFuncRe');
- binaryHideFuncRe = new RegExp(pattern);
- maxAsmLines = compilerProps('maxLinesOfAsm', maxAsmLines);
- }
-
function isUserFunction(func) {
return !func.match(binaryHideFuncRe);
}
@@ -257,15 +250,15 @@
return result;
}
- function processClAsm(asm, filters) {
- var parser = new asmCl.ClParser(filters);
- utils.eachLine(asm, function (line) {
- parser.addLine(line);
- });
- return parser.get();
+ if (compilerProps) {
+ binaryHideFuncRe = new RegExp(compilerProps('binaryHideFuncRe'));
+ maxAsmLines = compilerProps('maxLinesOfAsm', maxAsmLines);
}
+ this.process = function (asm, filters) {
+ return processAsm(asm, filters);
+ };
+}
- exports.processAsm = processAsm;
- exports.initialise = initialise;
-
-}).call(this);
+module.exports = {
+ AsmParser: AsmParser
+};