~ubuntu-branches/ubuntu/oneiric/haxe/oneiric

« back to all changes in this revision

Viewing changes to haxe/std/mtwin/templo/Generator.hx

  • Committer: Bazaar Package Importer
  • Author(s): Jens Peter Secher
  • Date: 2008-06-15 11:04:09 UTC
  • mfrom: (2.1.6 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080615110409-7pyykgwmk5v0cues
Tags: 1:1.19-3
* Remove bashism in script.
  (Closes: #484390)
* Upgrade to Policy 3.8.0 by including a README.source explaining how to
  use dpatch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
 
41
41
        public function toString() : String {
42
42
                flushHtml();
43
 
        
 
43
 
44
44
                var result = new StringBuf();
45
 
                result.add('
 
45
                var headercode = '
46
46
                        String = $loader.String;
 
47
                        Array = $loader.Array;
47
48
                        iter = $loader.iter;
48
49
                        buffer_new = $loader.loadprim("std@buffer_new", 0);
49
50
                        buffer_add = $loader.loadprim("std@buffer_add", 2);
50
51
                        buffer_string = $loader.loadprim("std@buffer_string", 1);
 
52
                        string_split = $loader.loadprim("std@string_split", 2);
 
53
 
 
54
                        replace = function( h, n, r ){
 
55
                                var l = string_split(h, n);
 
56
                                if (l[1] == null)
 
57
                                        return h;
 
58
                                var res = buffer_new();
 
59
                                buffer_add(res, l[0]);
 
60
                                l = l[1];
 
61
                                while (l != null){
 
62
                                        buffer_add(res, r);
 
63
                                        buffer_add(res, l[0]);
 
64
                                        l = l[1];
 
65
                                }
 
66
                                return buffer_string(res);
 
67
                        }
51
68
 
52
69
                        html_escape = function( data ){
53
 
                                var str = String.new($string(data));
54
 
                                if (str == null){
55
 
                                        $throw("String.new returned null\n");
56
 
                                }
57
 
                                return str.split(String.new("&")).join(String.new("&amp;")).split(String.new("<")).join(String.new("&lt;")).split(String.new(">")).join(String.new("&gt;")).split(String.new("\\\"")).join(String.new("&quot;"));
 
70
                                var t = $typeof(data);
 
71
                                if (t == $tint)
 
72
                                        return data;
 
73
                                if (t != $tstring)
 
74
                                        data = $string(data);
 
75
                                if (data == "")
 
76
                                        return data;
 
77
                                data = replace(data, "&", "&amp;");
 
78
                                data = replace(data, "<", "&lt;");
 
79
                                data = replace(data, ">", "&gt;");
 
80
                                data = replace(data, "\\\"", "&quot;");
 
81
                                return data;
58
82
                        }
59
83
 
60
84
                        is_true = function( data ){
72
96
                                result.odd = true;
73
97
                                result.even = false;
74
98
                                if (data.get_length != null) result.size = data.get_length();
 
99
                                else if (data.length != null) result.size = data.length;
75
100
                                else if (data.size != null) result.size = data.size();
76
101
                                else result.size = null;
77
102
                                result.next = function(v){
126
151
                                }
127
152
                                var __glb = __ctx;
128
153
                                var __out = new_output_buffer(null);
129
 
                                
 
154
 
130
155
//--- HERE COMES THE TEMPLATE CODE ---
131
 
');
 
156
';
 
157
                result.add(~/[\r\n]+/g.split(headercode).join("\n"));
132
158
                result.add(out.toString());
133
159
                result.add('//--- END OF TEMPLATE CODE ---
134
160
                                return __out.str();
167
193
                out.add(code);
168
194
        }
169
195
 
 
196
        public static function hash( name:String ) : Int {
 
197
                return untyped __dollar__hash(name.__s);
 
198
        }
 
199
 
170
200
        public function getVar( name:String ) : String {
171
 
                return "__ctx.get($hash(\""+name+"\"))";
 
201
                return "__ctx.get("+hash(name)+")";
172
202
        }
173
203
 
174
204
        public function setVar( name:String, exp:String ){
175
 
                add("__ctx.set($hash(\""+name+"\"), "+exp+");\n");
 
205
                add("__ctx.set("+hash(name)+", "+exp+");\n");
176
206
        }
177
207
 
178
208
        public function flushHtml(){