diff options
Diffstat (limited to 'lib/asm.js')
-rw-r--r-- | lib/asm.js | 35 |
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 +}; |