X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=rconv.js;h=a7be79d10ea88a273b86013f6ff1f4161e78849c;hb=119290bc3234e9ece1c64dbd72ca486d9633b5b7;hp=4fa7bcd8dc60cda7cfd7c1f762bce08e7a7a85cc;hpb=d95da58cab7649a204fb024e26a204d40539a936;p=app.Builder.js diff --git a/rconv.js b/rconv.js index 4fa7bcd8d..a7be79d10 100644 --- a/rconv.js +++ b/rconv.js @@ -6,16 +6,19 @@ * * Needs to test a while directory convert to-><-from and compare.. * + * + * + * * */ -var RooFile = imports.JsParser.JsParser; +var JsParser = imports.JsParser.JsParser; var TokenReader = imports.JSDOC.TokenReader.TokenReader; var TextStream = imports.JSDOC.TextStream.TextStream; var File = imports.File.File; - +var GLib = imports.gi.GLib; @@ -27,37 +30,88 @@ args.shift(); //Seed.quit(); - -var tr = new TokenReader( { - keepDocs :true, - keepWhite : true, - keepComments : true, - sepIdents : false, - collapseWhite : true, - filename : args[0], - ignoreBadGrammer: true -}); - -var str = File.read(args[0]) - -var toks = tr.tokenize(new TextStream(str)); - - -var rf = new JsParser(toks); -//print(JSON.stringify(rf.tokens, null,4));Seed.quit(); - - - - -rf.parse(); - -print("------------ in ------------------"); -print(str); -print("------------ out ------------------"); - -print(JSON.stringify(rf.cfg, null,4)); - -print("------------ was ------------------"); - -print(File.read(args[0].replace(/\.js$/,'.bjs'))); - +if (File.isFile(args[0])) { + createTest(args[0], true); +} else { + + File.list(args[0]).forEach(function(a) { + if (!a.match(/\.js$/)) { + return; + } + //print(args[0] + '/' + a); + createTest(args[0] + '/' + a); + + }) +} + + +print( " diff -w -u /tmp/rconv_orig /tmp/rconv_gen/"); + + + +function createTest(fn, force) { + + // does it have a .bjs file.. + var bjs = fn.replace(/\.js$/, '.bjs'); + if (!force && !File.exists(bjs)) { + return true; + + } + + + print("converting : " + fn); + // outputs to two directories.. + if (!File.exists('/tmp/rconv_orig')) { + File.mkdir('/tmp/rconv_orig'); + } + if (!File.exists('/tmp/rconv_genbjs')) { + File.mkdir('/tmp/rconv_genbjs'); + } + if (!File.exists('/tmp/rconv_gen')) { + File.mkdir('/tmp/rconv_gen'); + } + + + var tr = new TokenReader( { + keepDocs :true, + keepWhite : true, + keepComments : true, + sepIdents : false, + collapseWhite : false, + filename : args[0], + ignoreBadGrammer: true + }); + + var str = File.read(fn) + File.write('/tmp/rconv_orig/' + GLib.basename(fn) , str); + var toks = tr.tokenize(new TextStream(str)); + + + var rf = new JsParser(toks); + //print(JSON.stringify(rf.tokens, null,4));Seed.quit(); + rf.parse(); + + + if (File.exists('/tmp/rconv_genbjs/' + GLib.basename(fn).replace(/\.js$/,'.bjs') )) { + File.remove('/tmp/rconv_genbjs/' + GLib.basename(fn).replace(/\.js$/,'.bjs') ); + } + File.write('/tmp/rconv_genbjs/' + GLib.basename(fn).replace(/\.js$/,'.bjs'), + JSON.stringify(rf.cfg,null,4)); + + + + // now try and render it back to javascript. + var rclass = imports.JsRender[rf.cfg.type][rf.cfg.type]; + rf.cfg.path = fn; + var render = new rclass(rf.cfg); + var res = render.toSource() + //print(); + if (File.exists('/tmp/rconv_gen/' + GLib.basename(fn) )) { + File.remove('/tmp/rconv_gen/' + GLib.basename(fn) ); + } + + File.write('/tmp/rconv_gen/' + GLib.basename(fn) , res); +} +//print(JSON.stringify(rf.cfg, null,4)); + +