kwartz 3.1.2 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. data/CHANGES +444 -0
  2. data/README.txt +4 -1
  3. data/bin/kwartz +2 -2
  4. data/doc-api/classes/Kwartz.html +16 -7
  5. data/doc-api/classes/Kwartz/Assertion.html +6 -6
  6. data/doc-api/classes/Kwartz/AssertionError.html +6 -6
  7. data/doc-api/classes/Kwartz/AttrInfo.html +71 -61
  8. data/doc-api/classes/Kwartz/BaseError.html +12 -12
  9. data/doc-api/classes/Kwartz/BaseTranslator.html +104 -74
  10. data/doc-api/classes/Kwartz/CharacterType.html +24 -24
  11. data/doc-api/classes/Kwartz/CommandOptionError.html +7 -7
  12. data/doc-api/classes/Kwartz/CommandOptions.html +50 -50
  13. data/doc-api/classes/Kwartz/Config.html +5 -0
  14. data/doc-api/classes/Kwartz/ConvertError.html +12 -12
  15. data/doc-api/classes/Kwartz/Converter.html +31 -33
  16. data/doc-api/classes/Kwartz/CssStyleParser.html +207 -168
  17. data/doc-api/classes/Kwartz/Defun.html +32 -31
  18. data/doc-api/classes/Kwartz/{HandlerArgument.html → Directive.html} +27 -53
  19. data/doc-api/classes/Kwartz/ElementInfo.html +68 -53
  20. data/doc-api/classes/Kwartz/EperlExpressionParser.html +185 -0
  21. data/doc-api/classes/Kwartz/EperlHandler.html +65 -58
  22. data/doc-api/classes/Kwartz/EperlTranslator.html +14 -7
  23. data/doc-api/classes/Kwartz/ErubisTranslator.html +14 -7
  24. data/doc-api/classes/Kwartz/ErubyTranslator.html +14 -7
  25. data/doc-api/classes/Kwartz/ExpandStatement.html +20 -20
  26. data/doc-api/classes/Kwartz/Expander.html +358 -0
  27. data/doc-api/classes/Kwartz/Handler.html +287 -157
  28. data/doc-api/classes/Kwartz/{StatementHelper.html → HandlerHelper.html} +307 -112
  29. data/doc-api/classes/Kwartz/Helper/ActionViewHelper.html +23 -23
  30. data/doc-api/classes/Kwartz/Helper/RailsTemplate.html +96 -96
  31. data/doc-api/classes/Kwartz/JstlExpressionParser.html +181 -0
  32. data/doc-api/classes/Kwartz/JstlHandler.html +134 -126
  33. data/doc-api/classes/Kwartz/JstlTranslator.html +21 -14
  34. data/doc-api/classes/Kwartz/KwartzError.html +6 -6
  35. data/doc-api/classes/Kwartz/Main.html +4 -4
  36. data/doc-api/classes/Kwartz/NativeExpression.html +19 -19
  37. data/doc-api/classes/Kwartz/NativeStatement.html +24 -24
  38. data/doc-api/classes/Kwartz/Node.html +7 -7
  39. data/doc-api/classes/Kwartz/PIErubisTranslator.html +21 -14
  40. data/doc-api/classes/Kwartz/ParseError.html +6 -6
  41. data/doc-api/classes/Kwartz/PerlExpressionParser.html +185 -0
  42. data/doc-api/classes/Kwartz/PerlHandler.html +353 -0
  43. data/doc-api/classes/Kwartz/PerlTranslator.html +226 -0
  44. data/doc-api/classes/Kwartz/PhpExpressionParser.html +185 -0
  45. data/doc-api/classes/Kwartz/PhpHandler.html +63 -56
  46. data/doc-api/classes/Kwartz/PhpTranslator.html +21 -14
  47. data/doc-api/classes/Kwartz/PresentationLogicParser.html +126 -123
  48. data/doc-api/classes/Kwartz/PrintStatement.html +18 -18
  49. data/doc-api/classes/Kwartz/RailsHandler.html +84 -85
  50. data/doc-api/classes/Kwartz/RailsTranslator.html +13 -6
  51. data/doc-api/classes/Kwartz/RubyExpressionParser.html +180 -0
  52. data/doc-api/classes/Kwartz/RubyHandler.html +73 -69
  53. data/doc-api/classes/Kwartz/RubyStyleParser.html +86 -86
  54. data/doc-api/classes/Kwartz/RubyTranslator.html +28 -21
  55. data/doc-api/classes/Kwartz/Ruleset.html +622 -1
  56. data/doc-api/classes/Kwartz/StrutsTranslator.html +14 -14
  57. data/doc-api/classes/Kwartz/TagInfo.html +52 -27
  58. data/doc-api/classes/Kwartz/TextConverter.html +75 -37
  59. data/doc-api/classes/Kwartz/Translator.html +54 -53
  60. data/doc-api/classes/Kwartz/Util.html +25 -25
  61. data/doc-api/created.rid +1 -1
  62. data/doc-api/files/__/README_txt.html +7 -2
  63. data/doc-api/files/kwartz/assert_rb.html +2 -2
  64. data/doc-api/files/kwartz/binding/eperl_rb.html +2 -2
  65. data/doc-api/files/kwartz/binding/erubis_rb.html +2 -2
  66. data/doc-api/files/kwartz/binding/eruby_rb.html +2 -2
  67. data/doc-api/files/kwartz/binding/jstl_rb.html +2 -2
  68. data/doc-api/files/kwartz/binding/perl_rb.html +115 -0
  69. data/doc-api/files/kwartz/binding/php_rb.html +2 -2
  70. data/doc-api/files/kwartz/binding/pierubis_rb.html +2 -2
  71. data/doc-api/files/kwartz/binding/rails_rb.html +2 -2
  72. data/doc-api/files/kwartz/binding/ruby_rb.html +2 -2
  73. data/doc-api/files/kwartz/binding/struts_rb.html +2 -2
  74. data/doc-api/files/kwartz/config_rb.html +2 -2
  75. data/doc-api/files/kwartz/converter_rb.html +2 -2
  76. data/doc-api/files/kwartz/defun_rb.html +2 -2
  77. data/doc-api/files/kwartz/error_rb.html +2 -2
  78. data/doc-api/files/kwartz/helper/rails_rb.html +2 -2
  79. data/doc-api/files/kwartz/main_rb.html +3 -2
  80. data/doc-api/files/kwartz/node_rb.html +2 -2
  81. data/doc-api/files/kwartz/parser_rb.html +2 -2
  82. data/doc-api/files/kwartz/translator_rb.html +2 -2
  83. data/doc-api/files/kwartz/util/assert-text-equal_rb.html +2 -2
  84. data/doc-api/files/kwartz/util/testcase-helper_rb.html +2 -2
  85. data/doc-api/files/kwartz/util_rb.html +2 -2
  86. data/doc-api/files/kwartz_rb.html +2 -2
  87. data/doc-api/fr_class_index.html +10 -5
  88. data/doc-api/fr_file_index.html +1 -0
  89. data/doc-api/fr_method_index.html +268 -239
  90. data/doc/docstyle.css +9 -3
  91. data/doc/img/fig05.png +0 -0
  92. data/doc/introduction-to-kwartz.html +3040 -0
  93. data/doc/pattern-catalog.html +5 -3
  94. data/doc/reference.html +680 -26
  95. data/doc/users-guide.html +222 -67
  96. data/kwartz.gemspec +4 -4
  97. data/lib/kwartz.rb +3 -3
  98. data/lib/kwartz/assert.rb +2 -2
  99. data/lib/kwartz/binding/eperl.rb +71 -31
  100. data/lib/kwartz/binding/erubis.rb +3 -2
  101. data/lib/kwartz/binding/eruby.rb +3 -2
  102. data/lib/kwartz/binding/jstl.rb +66 -29
  103. data/lib/kwartz/binding/perl.rb +230 -0
  104. data/lib/kwartz/binding/php.rb +69 -29
  105. data/lib/kwartz/binding/pierubis.rb +3 -2
  106. data/lib/kwartz/binding/rails.rb +18 -18
  107. data/lib/kwartz/binding/ruby.rb +74 -42
  108. data/lib/kwartz/binding/struts.rb +22 -21
  109. data/lib/kwartz/config.rb +4 -4
  110. data/lib/kwartz/converter.rb +465 -345
  111. data/lib/kwartz/defun.rb +2 -2
  112. data/lib/kwartz/error.rb +2 -2
  113. data/lib/kwartz/helper/rails.rb +2 -2
  114. data/lib/kwartz/main.rb +5 -4
  115. data/lib/kwartz/node.rb +92 -144
  116. data/lib/kwartz/parser.rb +112 -103
  117. data/lib/kwartz/translator.rb +14 -6
  118. data/lib/kwartz/util.rb +2 -2
  119. data/lib/kwartz/util/assert-text-equal.rb +2 -2
  120. data/lib/kwartz/util/testcase-helper.rb +1 -1
  121. data/test/test-compile.rb +2 -2
  122. data/test/test-compile.yaml +81 -0
  123. data/test/test-converter.rb +4 -8
  124. data/test/test-converter.yaml +152 -3
  125. data/test/test-directives.rb +2 -2
  126. data/test/test-directives.yaml +222 -0
  127. data/test/test-main.rb +6 -4
  128. data/test/test-main.yaml +66 -1
  129. data/test/test-parser.rb +12 -3
  130. data/test/test-parser.yaml +64 -51
  131. data/test/test-rails.rb +2 -2
  132. data/test/test-ruleset.rb +2 -2
  133. data/test/test-ruleset.yaml +465 -4
  134. data/test/test.log +6 -0
  135. data/test/test.rb +2 -2
  136. metadata +116 -106
  137. data/ChangeLog +0 -156
  138. data/doc-api/classes/Kwartz/DocumentRuleset.html +0 -369
  139. data/doc-api/classes/Kwartz/ElementExpander.html +0 -325
  140. data/doc-api/classes/Kwartz/ElementRuleset.html +0 -612
@@ -98,17 +98,18 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
98
98
  <h3 class="section-bar">Methods</h3>
99
99
 
100
100
  <div class="name-list">
101
- <a href="#M000130">add_debug_expr</a>&nbsp;&nbsp;
102
- <a href="#M000129">add_escaped_expr</a>&nbsp;&nbsp;
103
- <a href="#M000128">add_plain_expr</a>&nbsp;&nbsp;
104
- <a href="#M000121">new</a>&nbsp;&nbsp;
105
- <a href="#M000131">optimize_print_stmts</a>&nbsp;&nbsp;
106
- <a href="#M000127">parse_embedded_expr</a>&nbsp;&nbsp;
107
- <a href="#M000122">translate</a>&nbsp;&nbsp;
108
- <a href="#M000125">translate_native_expr</a>&nbsp;&nbsp;
109
- <a href="#M000123">translate_native_stmt</a>&nbsp;&nbsp;
110
- <a href="#M000124">translate_print_stmt</a>&nbsp;&nbsp;
111
- <a href="#M000126">translate_string</a>&nbsp;&nbsp;
101
+ <a href="#M000135">add_debug_expr</a>&nbsp;&nbsp;
102
+ <a href="#M000134">add_escaped_expr</a>&nbsp;&nbsp;
103
+ <a href="#M000133">add_plain_expr</a>&nbsp;&nbsp;
104
+ <a href="#M000125">new</a>&nbsp;&nbsp;
105
+ <a href="#M000136">optimize_print_stmts</a>&nbsp;&nbsp;
106
+ <a href="#M000131">parse_embedded_expr</a>&nbsp;&nbsp;
107
+ <a href="#M000132">parse_expr_str!</a>&nbsp;&nbsp;
108
+ <a href="#M000126">translate</a>&nbsp;&nbsp;
109
+ <a href="#M000129">translate_native_expr</a>&nbsp;&nbsp;
110
+ <a href="#M000127">translate_native_stmt</a>&nbsp;&nbsp;
111
+ <a href="#M000128">translate_print_stmt</a>&nbsp;&nbsp;
112
+ <a href="#M000130">translate_string</a>&nbsp;&nbsp;
112
113
  </div>
113
114
  </div>
114
115
 
@@ -153,19 +154,19 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
153
154
  <div id="methods">
154
155
  <h3 class="section-bar">Public Class methods</h3>
155
156
 
156
- <div id="method-M000121" class="method-detail">
157
- <a name="M000121"></a>
157
+ <div id="method-M000125" class="method-detail">
158
+ <a name="M000125"></a>
158
159
 
159
160
  <div class="method-heading">
160
- <a href="#M000121" class="method-signature">
161
+ <a href="#M000125" class="method-signature">
161
162
  <span class="method-name">new</span><span class="method-args">(marks=[], properties={})</span>
162
163
  </a>
163
164
  </div>
164
165
 
165
166
  <div class="method-description">
166
167
  <p><a class="source-toggle" href="#"
167
- onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
168
- <div class="method-source-code" id="M000121-source">
168
+ onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
169
+ <div class="method-source-code" id="M000125-source">
169
170
  <pre>
170
171
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 83</span>
171
172
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">marks</span>=[], <span class="ruby-identifier">properties</span>={})
@@ -183,19 +184,19 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
183
184
 
184
185
  <h3 class="section-bar">Public Instance methods</h3>
185
186
 
186
- <div id="method-M000122" class="method-detail">
187
- <a name="M000122"></a>
187
+ <div id="method-M000126" class="method-detail">
188
+ <a name="M000126"></a>
188
189
 
189
190
  <div class="method-heading">
190
- <a href="#M000122" class="method-signature">
191
+ <a href="#M000126" class="method-signature">
191
192
  <span class="method-name">translate</span><span class="method-args">(stmt_list)</span>
192
193
  </a>
193
194
  </div>
194
195
 
195
196
  <div class="method-description">
196
197
  <p><a class="source-toggle" href="#"
197
- onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
198
- <div class="method-source-code" id="M000122-source">
198
+ onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
199
+ <div class="method-source-code" id="M000126-source">
199
200
  <pre>
200
201
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 96</span>
201
202
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">translate</span>(<span class="ruby-identifier">stmt_list</span>)
@@ -212,19 +213,19 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
212
213
  </div>
213
214
  </div>
214
215
 
215
- <div id="method-M000125" class="method-detail">
216
- <a name="M000125"></a>
216
+ <div id="method-M000129" class="method-detail">
217
+ <a name="M000129"></a>
217
218
 
218
219
  <div class="method-heading">
219
- <a href="#M000125" class="method-signature">
220
+ <a href="#M000129" class="method-signature">
220
221
  <span class="method-name">translate_native_expr</span><span class="method-args">(expr)</span>
221
222
  </a>
222
223
  </div>
223
224
 
224
225
  <div class="method-description">
225
226
  <p><a class="source-toggle" href="#"
226
- onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
227
- <div class="method-source-code" id="M000125-source">
227
+ onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
228
+ <div class="method-source-code" id="M000129-source">
228
229
  <pre>
229
230
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 128</span>
230
231
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">translate_native_expr</span>(<span class="ruby-identifier">expr</span>)
@@ -242,19 +243,19 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
242
243
  </div>
243
244
  </div>
244
245
 
245
- <div id="method-M000123" class="method-detail">
246
- <a name="M000123"></a>
246
+ <div id="method-M000127" class="method-detail">
247
+ <a name="M000127"></a>
247
248
 
248
249
  <div class="method-heading">
249
- <a href="#M000123" class="method-signature">
250
+ <a href="#M000127" class="method-signature">
250
251
  <span class="method-name">translate_native_stmt</span><span class="method-args">(stmt)</span>
251
252
  </a>
252
253
  </div>
253
254
 
254
255
  <div class="method-description">
255
256
  <p><a class="source-toggle" href="#"
256
- onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
257
- <div class="method-source-code" id="M000123-source">
257
+ onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
258
+ <div class="method-source-code" id="M000127-source">
258
259
  <pre>
259
260
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 107</span>
260
261
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">translate_native_stmt</span>(<span class="ruby-identifier">stmt</span>)
@@ -266,19 +267,19 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
266
267
  </div>
267
268
  </div>
268
269
 
269
- <div id="method-M000124" class="method-detail">
270
- <a name="M000124"></a>
270
+ <div id="method-M000128" class="method-detail">
271
+ <a name="M000128"></a>
271
272
 
272
273
  <div class="method-heading">
273
- <a href="#M000124" class="method-signature">
274
+ <a href="#M000128" class="method-signature">
274
275
  <span class="method-name">translate_print_stmt</span><span class="method-args">(stmt)</span>
275
276
  </a>
276
277
  </div>
277
278
 
278
279
  <div class="method-description">
279
280
  <p><a class="source-toggle" href="#"
280
- onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
281
- <div class="method-source-code" id="M000124-source">
281
+ onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
282
+ <div class="method-source-code" id="M000128-source">
282
283
  <pre>
283
284
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 113</span>
284
285
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">translate_print_stmt</span>(<span class="ruby-identifier">stmt</span>)
@@ -299,19 +300,19 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
299
300
  </div>
300
301
  </div>
301
302
 
302
- <div id="method-M000126" class="method-detail">
303
- <a name="M000126"></a>
303
+ <div id="method-M000130" class="method-detail">
304
+ <a name="M000130"></a>
304
305
 
305
306
  <div class="method-heading">
306
- <a href="#M000126" class="method-signature">
307
+ <a href="#M000130" class="method-signature">
307
308
  <span class="method-name">translate_string</span><span class="method-args">(str)</span>
308
309
  </a>
309
310
  </div>
310
311
 
311
312
  <div class="method-description">
312
313
  <p><a class="source-toggle" href="#"
313
- onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
314
- <div class="method-source-code" id="M000126-source">
314
+ onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
315
+ <div class="method-source-code" id="M000130-source">
315
316
  <pre>
316
317
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 140</span>
317
318
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">translate_string</span>(<span class="ruby-identifier">str</span>)
@@ -324,21 +325,21 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
324
325
 
325
326
  <h3 class="section-bar">Protected Instance methods</h3>
326
327
 
327
- <div id="method-M000130" class="method-detail">
328
- <a name="M000130"></a>
328
+ <div id="method-M000135" class="method-detail">
329
+ <a name="M000135"></a>
329
330
 
330
331
  <div class="method-heading">
331
- <a href="#M000130" class="method-signature">
332
+ <a href="#M000135" class="method-signature">
332
333
  <span class="method-name">add_debug_expr</span><span class="method-args">(expr_code)</span>
333
334
  </a>
334
335
  </div>
335
336
 
336
337
  <div class="method-description">
337
338
  <p><a class="source-toggle" href="#"
338
- onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
339
- <div class="method-source-code" id="M000130-source">
339
+ onclick="toggleCode('M000135-source');return false;">[Source]</a></p>
340
+ <div class="method-source-code" id="M000135-source">
340
341
  <pre>
341
- <span class="ruby-comment cmt"># File kwartz/translator.rb, line 182</span>
342
+ <span class="ruby-comment cmt"># File kwartz/translator.rb, line 190</span>
342
343
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_debug_expr</span>(<span class="ruby-identifier">expr_code</span>)
343
344
  <span class="ruby-identifier">not_implemented</span>
344
345
  <span class="ruby-keyword kw">end</span>
@@ -347,21 +348,21 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
347
348
  </div>
348
349
  </div>
349
350
 
350
- <div id="method-M000129" class="method-detail">
351
- <a name="M000129"></a>
351
+ <div id="method-M000134" class="method-detail">
352
+ <a name="M000134"></a>
352
353
 
353
354
  <div class="method-heading">
354
- <a href="#M000129" class="method-signature">
355
+ <a href="#M000134" class="method-signature">
355
356
  <span class="method-name">add_escaped_expr</span><span class="method-args">(expr_code)</span>
356
357
  </a>
357
358
  </div>
358
359
 
359
360
  <div class="method-description">
360
361
  <p><a class="source-toggle" href="#"
361
- onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
362
- <div class="method-source-code" id="M000129-source">
362
+ onclick="toggleCode('M000134-source');return false;">[Source]</a></p>
363
+ <div class="method-source-code" id="M000134-source">
363
364
  <pre>
364
- <span class="ruby-comment cmt"># File kwartz/translator.rb, line 177</span>
365
+ <span class="ruby-comment cmt"># File kwartz/translator.rb, line 185</span>
365
366
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_escaped_expr</span>(<span class="ruby-identifier">expr_code</span>)
366
367
  <span class="ruby-ivar">@sb</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@escape_l</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">expr_code</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@escape_r</span> <span class="ruby-comment cmt"># ex. &lt;%=h expr_code %&gt;</span>
367
368
  <span class="ruby-keyword kw">end</span>
@@ -370,21 +371,21 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
370
371
  </div>
371
372
  </div>
372
373
 
373
- <div id="method-M000128" class="method-detail">
374
- <a name="M000128"></a>
374
+ <div id="method-M000133" class="method-detail">
375
+ <a name="M000133"></a>
375
376
 
376
377
  <div class="method-heading">
377
- <a href="#M000128" class="method-signature">
378
+ <a href="#M000133" class="method-signature">
378
379
  <span class="method-name">add_plain_expr</span><span class="method-args">(expr_code)</span>
379
380
  </a>
380
381
  </div>
381
382
 
382
383
  <div class="method-description">
383
384
  <p><a class="source-toggle" href="#"
384
- onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
385
- <div class="method-source-code" id="M000128-source">
385
+ onclick="toggleCode('M000133-source');return false;">[Source]</a></p>
386
+ <div class="method-source-code" id="M000133-source">
386
387
  <pre>
387
- <span class="ruby-comment cmt"># File kwartz/translator.rb, line 172</span>
388
+ <span class="ruby-comment cmt"># File kwartz/translator.rb, line 180</span>
388
389
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_plain_expr</span>(<span class="ruby-identifier">expr_code</span>)
389
390
  <span class="ruby-ivar">@sb</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@expr_l</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">expr_code</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@expr_r</span> <span class="ruby-comment cmt"># ex. &lt;%= expr_code %&gt;</span>
390
391
  <span class="ruby-keyword kw">end</span>
@@ -393,11 +394,11 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
393
394
  </div>
394
395
  </div>
395
396
 
396
- <div id="method-M000131" class="method-detail">
397
- <a name="M000131"></a>
397
+ <div id="method-M000136" class="method-detail">
398
+ <a name="M000136"></a>
398
399
 
399
400
  <div class="method-heading">
400
- <a href="#M000131" class="method-signature">
401
+ <a href="#M000136" class="method-signature">
401
402
  <span class="method-name">optimize_print_stmts</span><span class="method-args">(stmt_list)</span>
402
403
  </a>
403
404
  </div>
@@ -407,10 +408,10 @@ href="JstlTranslator.html">JstlTranslator</a>, and so on for detail.
407
408
  concat several print statements into a statement
408
409
  </p>
409
410
  <p><a class="source-toggle" href="#"
410
- onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
411
- <div class="method-source-code" id="M000131-source">
411
+ onclick="toggleCode('M000136-source');return false;">[Source]</a></p>
412
+ <div class="method-source-code" id="M000136-source">
412
413
  <pre>
413
- <span class="ruby-comment cmt"># File kwartz/translator.rb, line 188</span>
414
+ <span class="ruby-comment cmt"># File kwartz/translator.rb, line 196</span>
414
415
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optimize_print_stmts</span>(<span class="ruby-identifier">stmt_list</span>)
415
416
  <span class="ruby-identifier">stmt_list2</span> = []
416
417
  <span class="ruby-identifier">args</span> = []
@@ -437,11 +438,11 @@ concat several print statements into a statement
437
438
  </div>
438
439
  </div>
439
440
 
440
- <div id="method-M000127" class="method-detail">
441
- <a name="M000127"></a>
441
+ <div id="method-M000131" class="method-detail">
442
+ <a name="M000131"></a>
442
443
 
443
444
  <div class="method-heading">
444
- <a href="#M000127" class="method-signature">
445
+ <a href="#M000131" class="method-signature">
445
446
  <span class="method-name">parse_embedded_expr</span><span class="method-args">(text)</span>
446
447
  </a>
447
448
  </div>
@@ -457,21 +458,22 @@ def translate_text_expr(expr)
457
458
  end
458
459
  </p>
459
460
  <p><a class="source-toggle" href="#"
460
- onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
461
- <div class="method-source-code" id="M000127-source">
461
+ onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
462
+ <div class="method-source-code" id="M000131-source">
462
463
  <pre>
463
464
  <span class="ruby-comment cmt"># File kwartz/translator.rb, line 153</span>
464
465
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_embedded_expr</span>(<span class="ruby-identifier">text</span>)
465
466
  <span class="ruby-identifier">pos</span> = <span class="ruby-value">0</span>
466
- <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/@(!*)\{(.*?)\}@/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">indicator</span>, <span class="ruby-identifier">expr_code</span><span class="ruby-operator">|</span>
467
+ <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/@(!*)\{(.*?)\}@/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">indicator</span>, <span class="ruby-identifier">expr_str</span><span class="ruby-operator">|</span>
467
468
  <span class="ruby-identifier">m</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">last_match</span>
468
469
  <span class="ruby-identifier">s</span> = <span class="ruby-identifier">text</span>[<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">m</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>) <span class="ruby-operator">-</span> <span class="ruby-identifier">pos</span>]
469
470
  <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)
470
471
  <span class="ruby-identifier">translate_string</span>(<span class="ruby-identifier">s</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">empty?</span>
472
+ <span class="ruby-identifier">expr_str</span> = <span class="ruby-identifier">parse_expr_str!</span>(<span class="ruby-identifier">expr_str</span>)
471
473
  <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">indicator</span>
472
- <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ; <span class="ruby-identifier">add_escaped_expr</span>(<span class="ruby-identifier">expr_code</span>)
473
- <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span> ; <span class="ruby-identifier">add_plain_expr</span>(<span class="ruby-identifier">expr_code</span>)
474
- <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!!'</span> ; <span class="ruby-identifier">add_debug_expr</span>(<span class="ruby-identifier">expr_code</span>)
474
+ <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ; <span class="ruby-identifier">add_escaped_expr</span>(<span class="ruby-identifier">expr_str</span>)
475
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span> ; <span class="ruby-identifier">add_plain_expr</span>(<span class="ruby-identifier">expr_str</span>)
476
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!!'</span> ; <span class="ruby-identifier">add_debug_expr</span>(<span class="ruby-identifier">expr_str</span>)
475
477
  <span class="ruby-keyword kw">else</span> ; <span class="ruby-comment cmt"># do nothing</span>
476
478
  <span class="ruby-keyword kw">end</span>
477
479
  <span class="ruby-keyword kw">end</span>
@@ -483,6 +485,34 @@ end
483
485
  </div>
484
486
  </div>
485
487
 
488
+ <div id="method-M000132" class="method-detail">
489
+ <a name="M000132"></a>
490
+
491
+ <div class="method-heading">
492
+ <a href="#M000132" class="method-signature">
493
+ <span class="method-name">parse_expr_str!</span><span class="method-args">(expr_str)</span>
494
+ </a>
495
+ </div>
496
+
497
+ <div class="method-description">
498
+ <p>
499
+ (abstract) convert expression to native expression string. ex.
500
+ &#8216;item.name&#8217; =&gt; &#8217;$item-&gt;name&#8217;,
501
+ &#8217;$item-&gt;name&#8217; =&gt; &#8217;$item-&gt;name&#8216;
502
+ </p>
503
+ <p><a class="source-toggle" href="#"
504
+ onclick="toggleCode('M000132-source');return false;">[Source]</a></p>
505
+ <div class="method-source-code" id="M000132-source">
506
+ <pre>
507
+ <span class="ruby-comment cmt"># File kwartz/translator.rb, line 175</span>
508
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_expr_str!</span>(<span class="ruby-identifier">expr_str</span>)
509
+ <span class="ruby-identifier">not_implemented</span>
510
+ <span class="ruby-keyword kw">end</span>
511
+ </pre>
512
+ </div>
513
+ </div>
514
+ </div>
515
+
486
516
 
487
517
  </div>
488
518
 
@@ -80,10 +80,10 @@
80
80
  <h3 class="section-bar">Methods</h3>
81
81
 
82
82
  <div class="name-list">
83
- <a href="#M000019">is_alpha</a>&nbsp;&nbsp;
84
- <a href="#M000020">is_digit</a>&nbsp;&nbsp;
85
- <a href="#M000021">is_identchar</a>&nbsp;&nbsp;
86
- <a href="#M000018">is_whitespace</a>&nbsp;&nbsp;
83
+ <a href="#M000033">is_alpha</a>&nbsp;&nbsp;
84
+ <a href="#M000034">is_digit</a>&nbsp;&nbsp;
85
+ <a href="#M000035">is_identchar</a>&nbsp;&nbsp;
86
+ <a href="#M000032">is_whitespace</a>&nbsp;&nbsp;
87
87
  </div>
88
88
  </div>
89
89
 
@@ -105,19 +105,19 @@
105
105
  <div id="methods">
106
106
  <h3 class="section-bar">Public Instance methods</h3>
107
107
 
108
- <div id="method-M000019" class="method-detail">
109
- <a name="M000019"></a>
108
+ <div id="method-M000033" class="method-detail">
109
+ <a name="M000033"></a>
110
110
 
111
111
  <div class="method-heading">
112
- <a href="#M000019" class="method-signature">
112
+ <a href="#M000033" class="method-signature">
113
113
  <span class="method-name">is_alpha</span><span class="method-args">(ch)</span>
114
114
  </a>
115
115
  </div>
116
116
 
117
117
  <div class="method-description">
118
118
  <p><a class="source-toggle" href="#"
119
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
120
- <div class="method-source-code" id="M000019-source">
119
+ onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
120
+ <div class="method-source-code" id="M000033-source">
121
121
  <pre>
122
122
  <span class="ruby-comment cmt"># File kwartz/parser.rb, line 26</span>
123
123
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_alpha</span>(<span class="ruby-identifier">ch</span>)
@@ -128,19 +128,19 @@
128
128
  </div>
129
129
  </div>
130
130
 
131
- <div id="method-M000020" class="method-detail">
132
- <a name="M000020"></a>
131
+ <div id="method-M000034" class="method-detail">
132
+ <a name="M000034"></a>
133
133
 
134
134
  <div class="method-heading">
135
- <a href="#M000020" class="method-signature">
135
+ <a href="#M000034" class="method-signature">
136
136
  <span class="method-name">is_digit</span><span class="method-args">(ch)</span>
137
137
  </a>
138
138
  </div>
139
139
 
140
140
  <div class="method-description">
141
141
  <p><a class="source-toggle" href="#"
142
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
143
- <div class="method-source-code" id="M000020-source">
142
+ onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
143
+ <div class="method-source-code" id="M000034-source">
144
144
  <pre>
145
145
  <span class="ruby-comment cmt"># File kwartz/parser.rb, line 31</span>
146
146
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_digit</span>(<span class="ruby-identifier">ch</span>)
@@ -151,19 +151,19 @@
151
151
  </div>
152
152
  </div>
153
153
 
154
- <div id="method-M000021" class="method-detail">
155
- <a name="M000021"></a>
154
+ <div id="method-M000035" class="method-detail">
155
+ <a name="M000035"></a>
156
156
 
157
157
  <div class="method-heading">
158
- <a href="#M000021" class="method-signature">
158
+ <a href="#M000035" class="method-signature">
159
159
  <span class="method-name">is_identchar</span><span class="method-args">(ch)</span>
160
160
  </a>
161
161
  </div>
162
162
 
163
163
  <div class="method-description">
164
164
  <p><a class="source-toggle" href="#"
165
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
166
- <div class="method-source-code" id="M000021-source">
165
+ onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
166
+ <div class="method-source-code" id="M000035-source">
167
167
  <pre>
168
168
  <span class="ruby-comment cmt"># File kwartz/parser.rb, line 36</span>
169
169
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_identchar</span>(<span class="ruby-identifier">ch</span>)
@@ -174,19 +174,19 @@
174
174
  </div>
175
175
  </div>
176
176
 
177
- <div id="method-M000018" class="method-detail">
178
- <a name="M000018"></a>
177
+ <div id="method-M000032" class="method-detail">
178
+ <a name="M000032"></a>
179
179
 
180
180
  <div class="method-heading">
181
- <a href="#M000018" class="method-signature">
181
+ <a href="#M000032" class="method-signature">
182
182
  <span class="method-name">is_whitespace</span><span class="method-args">(ch)</span>
183
183
  </a>
184
184
  </div>
185
185
 
186
186
  <div class="method-description">
187
187
  <p><a class="source-toggle" href="#"
188
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
189
- <div class="method-source-code" id="M000018-source">
188
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
189
+ <div class="method-source-code" id="M000032-source">
190
190
  <pre>
191
191
  <span class="ruby-comment cmt"># File kwartz/parser.rb, line 21</span>
192
192
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_whitespace</span>(<span class="ruby-identifier">ch</span>)