comparison tpc.js @ 45:2a9c6eed0c70

Move closure/lambda object def into compiler rather than runtime code. Add while:do method to lambda
author Mike Pavone <pavone@retrodev.com>
date Fri, 13 Jul 2012 00:23:38 -0700
parents 9dd370530f69
children 3e8d2a91102c
comparison
equal deleted inserted replaced
44:9dd370530f69 45:2a9c6eed0c70
15 PEG = module.exports; 15 PEG = module.exports;
16 load('parser.js'); 16 load('parser.js');
17 load('compiler.js'); 17 load('compiler.js');
18 load('cbackend.js'); 18 load('cbackend.js');
19 try { 19 try {
20 var parsed = parser.parse(text); 20 var parsed = parser.parse(text);
21 var c = parsed.toCModule(); 21 } catch (e) {
22 print(c);
23 } catch(error if error.name == 'SyntaxError') {
24 print('SyntaxError on at', error.line, ',', error.column, ':', error.message); 22 print('SyntaxError on at', error.line, ',', error.column, ':', error.message);
25 var lines = text.split('\n'); 23 var lines = text.split('\n');
26 print(lines[error.line-1]); 24 print(lines[error.line-1]);
27 var spacer = ''; 25 var spacer = '';
28 for (var i = 1; i < error.column; i++) { 26 for (var i = 1; i < error.column; i++) {
31 } else { 29 } else {
32 spacer += ' '; 30 spacer += ' ';
33 } 31 }
34 } 32 }
35 print(spacer + '^'); 33 print(spacer + '^');
36 34 exit(1);
37 } 35 }
36 var c = parsed.toCModule();
37 print(c);
38 } 38 }