rconv.js
[app.Builder.js] / rconv.js
1 /**
2  *
3  * This is a test file to convert appbuilder style application code
4  *  into javascript structures.
5  *
6  *
7  * Needs to test a while directory convert to-><-from and compare..
8  *
9  * 
10  *
11  * 
12  *
13  */
14
15 var JsParser = imports.JsParser.JsParser;
16 var TokenReader = imports.JSDOC.TokenReader.TokenReader;
17 var TextStream = imports.JSDOC.TextStream.TextStream;
18
19 var File = imports.File.File;
20
21 var GLib = imports.gi.GLib;
22
23
24
25 var args = Array.prototype.slice.call(Seed.argv);
26
27 args.shift();
28 args.shift();
29 //print(JSON.stringify(args, null,4));
30 //Seed.quit();
31
32
33
34
35 File.list(args[0]).forEach(function(a) {
36     if (!a.match(/\.js$/)) {
37         return;
38     }
39     //print(args[0] + '/' + a);
40     createTest(args[0] + '/' + a);    
41     
42 })
43
44
45
46 print( " diff -w -u /tmp/rconv_orig /tmp/rconv_gen/");
47
48
49
50 function createTest(fn) { 
51     print("converting : " + fn);
52     // outputs to two directories..
53     if (!File.exists('/tmp/rconv_orig')) {
54         File.mkdir('/tmp/rconv_orig');
55     }
56     if (!File.exists('/tmp/rconv_gen')) {
57         File.mkdir('/tmp/rconv_gen');
58     }
59     
60     
61     var tr = new  TokenReader(  { 
62         keepDocs :true, 
63         keepWhite : true,  
64         keepComments : true, 
65         sepIdents : false,
66         collapseWhite : false,
67         filename : args[0],
68         ignoreBadGrammer: true
69     });
70     
71     var str = File.read(fn)
72     File.write('/tmp/rconv_orig/' + GLib.basename(fn) , str);
73     var toks = tr.tokenize(new TextStream(str));  
74     
75     
76     var rf = new JsParser(toks);
77     //print(JSON.stringify(rf.tokens, null,4));Seed.quit();
78     
79     
80     rf.parse();
81      
82     // now try and render it back to javascript.
83     var rclass = imports.JsRender[rf.cfg.type][rf.cfg.type];
84     rf.cfg.path = args[0];
85     var render = new rclass(rf.cfg);
86     var res = render.toSource()
87     //print();
88     
89     File.write('/tmp/rconv_gen/' + GLib.basename(fn) , res);
90 }
91 //print(JSON.stringify(rf.cfg, null,4));
92  
93