3 * This is a test file to convert appbuilder style application code
4 * into javascript structures.
7 * Needs to test a while directory convert to-><-from and compare..
15 var JsParser = imports.JsParser.JsParser;
16 var TokenReader = imports.JSDOC.TokenReader.TokenReader;
17 var TextStream = imports.JSDOC.TextStream.TextStream;
19 var File = imports.File.File;
21 var GLib = imports.gi.GLib;
25 var args = Array.prototype.slice.call(Seed.argv);
29 //print(JSON.stringify(args, null,4));
33 if (File.isFile(args[0])) {
34 createTest(args[0], true);
37 File.list(args[0]).forEach(function(a) {
38 if (!a.match(/\.js$/)) {
41 //print(args[0] + '/' + a);
42 createTest(args[0] + '/' + a);
48 print( " diff -w -u /tmp/rconv_orig /tmp/rconv_gen/");
52 function createTest(fn, force) {
54 // does it have a .bjs file..
55 var bjs = fn.replace(/\.js$/, '.bjs');
56 if (!force && !File.exists(bjs)) {
62 print("converting : " + fn);
63 // outputs to two directories..
64 if (!File.exists('/tmp/rconv_orig')) {
65 File.mkdir('/tmp/rconv_orig');
67 if (!File.exists('/tmp/rconv_genbjs')) {
68 File.mkdir('/tmp/rconv_genbjs');
70 if (!File.exists('/tmp/rconv_gen')) {
71 File.mkdir('/tmp/rconv_gen');
75 var tr = new TokenReader( {
80 collapseWhite : false,
82 ignoreBadGrammer: true
85 var str = File.read(fn)
86 File.write('/tmp/rconv_orig/' + GLib.basename(fn) , str);
87 var toks = tr.tokenize(new TextStream(str));
90 var rf = new JsParser(toks);
91 //print(JSON.stringify(rf.tokens, null,4));Seed.quit();
95 if (File.exists('/tmp/rconv_genbjs/' + GLib.basename(fn).replace(/\.js$/,'.bjs') )) {
96 File.remove('/tmp/rconv_genbjs/' + GLib.basename(fn).replace(/\.js$/,'.bjs') );
98 File.write('/tmp/rconv_genbjs/' + GLib.basename(fn).replace(/\.js$/,'.bjs'),
99 JSON.stringify(rf.cfg,null,4));
103 // now try and render it back to javascript.
104 var rclass = imports.JsRender[rf.cfg.type][rf.cfg.type];
106 var render = new rclass(rf.cfg);
107 var res = render.toSource()
109 if (File.exists('/tmp/rconv_gen/' + GLib.basename(fn) )) {
110 File.remove('/tmp/rconv_gen/' + GLib.basename(fn) );
113 File.write('/tmp/rconv_gen/' + GLib.basename(fn) , res);
115 //print(JSON.stringify(rf.cfg, null,4));