Mercurial > repos > tabletprog
comparison cbackend.js @ 97:59a94f3ad56f
Added short-circuit && and || operators
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 26 Jul 2012 23:40:56 -0700 |
parents | 84b65ee8b78b |
children | 1a4446f573d3 |
comparison
equal
deleted
inserted
replaced
96:84b65ee8b78b | 97:59a94f3ad56f |
---|---|
11 } | 11 } |
12 return methodIds[methodName]; | 12 return methodIds[methodName]; |
13 } | 13 } |
14 | 14 |
15 op.prototype.toC = function(isReceiver) { | 15 op.prototype.toC = function(isReceiver) { |
16 var optoMeth = {'+': 'ADD_', '-': 'SUB_', '*': 'MUL_', '/': 'DIV_', '%': 'MOD_', '=': 'EQ_', '!=': 'NEQ_', '<': 'LT_', '>': 'GT_', '>=': 'GEQ_', '<=': 'LEQ_', '.': 'CAT_'}; | 16 var optoMeth = {'+': 'ADD_', '-': 'SUB_', '*': 'MUL_', '/': 'DIV_', '%': 'MOD_', '=': 'EQ_', '!=': 'NEQ_', '<': 'LT_', '>': 'GT_', '>=': 'GEQ_', '<=': 'LEQ_', '.': 'CAT_', '&&':'if', '||':'ifnot'}; |
17 var method = optoMeth[this.op]; | 17 var method = optoMeth[this.op]; |
18 return 'mcall(' + getMethodId(method) + '/* ' + method + ' */, 2, (object *)' + this.left.toC() + ', ' + this.right.toC() + ')\n'; | 18 return 'mcall(' + getMethodId(method) + '/* ' + method + ' */, 2, (object *)' + this.left.toC() + ', ' + this.right.toC() + ')\n'; |
19 }; | 19 }; |
20 op.prototype.toCLLExpr = function(vars) { | 20 op.prototype.toCLLExpr = function(vars) { |
21 var opmap = {'=': '==', 'xor': '^'}; | 21 var opmap = {'=': '==', 'xor': '^'}; |