EFL 1.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 (193) hide show
  1. data/README.txt +36 -0
  2. data/lib/EFL.rb +494 -0
  3. data/lib/EFL_array.rb +20 -0
  4. data/lib/EFL_errors.rb +48 -0
  5. data/lib/EFL_hash.rb +18 -0
  6. data/lib/EFL_production.rb +49 -0
  7. data/lib/EFL_regexp.rb +112 -0
  8. data/lib/EFL_regexp_generator.rb +70 -0
  9. data/lib/EFL_substitution.rb +221 -0
  10. data/lib/EFL_syntactic_sugar.rb +67 -0
  11. data/lib/Hash Doc.doc +0 -0
  12. data/lib/Limitaciones.txt +3 -0
  13. data/lib/doc/classes/Generator.html +634 -0
  14. data/lib/doc/classes/Generator.src/M000008.html +18 -0
  15. data/lib/doc/classes/Generator.src/M000009.html +18 -0
  16. data/lib/doc/classes/Generator.src/M000010.html +18 -0
  17. data/lib/doc/classes/Generator.src/M000011.html +18 -0
  18. data/lib/doc/classes/Generator.src/M000012.html +18 -0
  19. data/lib/doc/classes/Generator.src/M000013.html +18 -0
  20. data/lib/doc/classes/Generator.src/M000014.html +18 -0
  21. data/lib/doc/classes/Generator.src/M000015.html +18 -0
  22. data/lib/doc/classes/Generator.src/M000016.html +28 -0
  23. data/lib/doc/classes/Generator.src/M000017.html +24 -0
  24. data/lib/doc/classes/Generator.src/M000018.html +157 -0
  25. data/lib/doc/classes/Generator.src/M000019.html +25 -0
  26. data/lib/doc/classes/Generator.src/M000020.html +30 -0
  27. data/lib/doc/classes/Generator.src/M000021.html +32 -0
  28. data/lib/doc/classes/Generator.src/M000022.html +22 -0
  29. data/lib/doc/classes/Generator.src/M000023.html +18 -0
  30. data/lib/doc/classes/Generator.src/M000024.html +27 -0
  31. data/lib/doc/classes/Generator.src/M000025.html +22 -0
  32. data/lib/doc/classes/Generator.src/M000026.html +18 -0
  33. data/lib/doc/classes/Generator.src/M000027.html +27 -0
  34. data/lib/doc/classes/Regexp.html +271 -0
  35. data/lib/doc/classes/Regexp.src/M000028.html +37 -0
  36. data/lib/doc/classes/Regexp.src/M000029.html +29 -0
  37. data/lib/doc/classes/Regexp.src/M000030.html +32 -0
  38. data/lib/doc/created.rid +1 -0
  39. data/lib/doc/files/EFL_rb.html +147 -0
  40. data/lib/doc/files/EFL_regexp_generator_rb.html +242 -0
  41. data/lib/doc/files/EFL_regexp_generator_rb.src/M000003.html +27 -0
  42. data/lib/doc/files/EFL_regexp_generator_rb.src/M000004.html +27 -0
  43. data/lib/doc/files/EFL_regexp_generator_rb.src/M000005.html +19 -0
  44. data/lib/doc/files/EFL_regexp_generator_rb.src/M000006.html +20 -0
  45. data/lib/doc/files/EFL_regexp_generator_rb.src/M000007.html +19 -0
  46. data/lib/doc/files/EFL_regexp_rb.html +139 -0
  47. data/lib/doc/files/EFL_syntactic_sugar_rb.html +208 -0
  48. data/lib/doc/files/EFL_syntactic_sugar_rb.src/M000001.html +29 -0
  49. data/lib/doc/files/EFL_syntactic_sugar_rb.src/M000002.html +19 -0
  50. data/lib/doc/fr_class_index.html +28 -0
  51. data/lib/doc/fr_file_index.html +30 -0
  52. data/lib/doc/fr_method_index.html +56 -0
  53. data/lib/doc/index.html +24 -0
  54. data/tests/Add_Sup_1.rb +223 -0
  55. data/tests/Add_Sup_1.rb.bak +223 -0
  56. data/tests/Add_Sup_1_NI.rb +25 -0
  57. data/tests/Add_Sup_2.rb +142 -0
  58. data/tests/Add_Sup_2.rb.bak +140 -0
  59. data/tests/All.rb +2 -0
  60. data/tests/All_1.rb +7 -0
  61. data/tests/All_2.rb +7 -0
  62. data/tests/All_2.rb.bak +5 -0
  63. data/tests/BeforeAfter.rb +83 -0
  64. data/tests/Bloques.rb +34 -0
  65. data/tests/Bloques.rb.bak +34 -0
  66. data/tests/Complementary.rb +144 -0
  67. data/tests/ComplementaryZoom.rb +78 -0
  68. data/tests/Del.rb +126 -0
  69. data/tests/Dup.rb +55 -0
  70. data/tests/Dup.rb.bak +54 -0
  71. data/tests/Error.rb +11 -0
  72. data/tests/ErrorArgClass.rb +169 -0
  73. data/tests/ErrorArgClass.rb.bak +158 -0
  74. data/tests/ErrorCollision.rb +218 -0
  75. data/tests/ErrorCollision.rb.bak +219 -0
  76. data/tests/ErrorWithoutDeclaration.rb +60 -0
  77. data/tests/ErrorWithoutDeclaration.rb.bak +60 -0
  78. data/tests/Extract.rb +56 -0
  79. data/tests/ExtractDollar.rb +17 -0
  80. data/tests/HashTest.rb +54 -0
  81. data/tests/HashTest.rb.bak +54 -0
  82. data/tests/Lista Czarnecki/AntiguaInterfaz/List.cpp +75 -0
  83. data/tests/Lista Czarnecki/AntiguaInterfaz/ListTransformer.rb +69 -0
  84. data/tests/Lista Czarnecki/AntiguaInterfaz/ListTransformer.rb.bak +100 -0
  85. data/tests/Lista Czarnecki/AntiguaInterfaz/ejecutame.bat +1 -0
  86. data/tests/Lista Czarnecki/AntiguaInterfaz/outDir/MyClassList.cpp +75 -0
  87. data/tests/Lista Czarnecki/AntiguaInterfaz/runme.bat +1 -0
  88. data/tests/Lista Czarnecki/AntiguaInterfaz/specification1.txt +5 -0
  89. data/tests/Lista Czarnecki/AntiguaInterfaz/specification2.txt +3 -0
  90. data/tests/Lista Czarnecki/AntiguaInterfaz/specification3.txt +5 -0
  91. data/tests/Lista Czarnecki/NuevaInterfaz/List.cpp +75 -0
  92. data/tests/Lista Czarnecki/NuevaInterfaz/ListTransformer.rb +58 -0
  93. data/tests/Lista Czarnecki/NuevaInterfaz/ListTransformer.rb.bak +57 -0
  94. data/tests/Lista Czarnecki/NuevaInterfaz/ejecutame.bat +1 -0
  95. data/tests/Lista Czarnecki/NuevaInterfaz/outDir/MyClassList.cpp +75 -0
  96. data/tests/Lista Czarnecki/NuevaInterfaz/outDir/NewClassList.cpp +75 -0
  97. data/tests/Lista Czarnecki/NuevaInterfaz/specification1.txt +5 -0
  98. data/tests/Lista Czarnecki/NuevaInterfaz/specification1.txt.bak +5 -0
  99. data/tests/Lista Czarnecki/NuevaInterfaz/specification2.txt +3 -0
  100. data/tests/Lista Czarnecki/NuevaInterfaz/specification3.txt +5 -0
  101. data/tests/Minus.rb +89 -0
  102. data/tests/Plus.rb.bak +48 -0
  103. data/tests/REVit.rb +84 -0
  104. data/tests/RenameTest.rb +46 -0
  105. data/tests/RenameTest.rb.bak +46 -0
  106. data/tests/SubCrash.rb +26 -0
  107. data/tests/SubList.rb.bak +43 -0
  108. data/tests/archAuxiliares/1.txt +328 -0
  109. data/tests/archAuxiliares/2.txt +328 -0
  110. data/tests/archAuxiliares/Bloques/s1.txt +328 -0
  111. data/tests/archAuxiliares/Copia de Matriz.java +19 -0
  112. data/tests/archAuxiliares/Gen/Tesis_156_1.lgi +10 -0
  113. data/tests/archAuxiliares/Gen/Tesis_156_2.lgi +10 -0
  114. data/tests/archAuxiliares/Gen/t01.txt +328 -0
  115. data/tests/archAuxiliares/Gen/t01.txt.bak +328 -0
  116. data/tests/archAuxiliares/Gen/t02.txt +328 -0
  117. data/tests/archAuxiliares/Gen/t02.txt.bak +328 -0
  118. data/tests/archAuxiliares/Gen/t03.txt +328 -0
  119. data/tests/archAuxiliares/Gen/t03.txt.bak +328 -0
  120. data/tests/archAuxiliares/Gen/t04.txt +328 -0
  121. data/tests/archAuxiliares/Gen/t04.txt.bak +328 -0
  122. data/tests/archAuxiliares/Gen/t1.txt +328 -0
  123. data/tests/archAuxiliares/Gen/t1.txt.bak +328 -0
  124. data/tests/archAuxiliares/Gen/t2.txt +328 -0
  125. data/tests/archAuxiliares/Gen/t2.txt.bak +328 -0
  126. data/tests/archAuxiliares/Gen/t5.txt +328 -0
  127. data/tests/archAuxiliares/Gen/t9.txt +328 -0
  128. data/tests/archAuxiliares/Gen/t9.txt.bak +328 -0
  129. data/tests/archAuxiliares/GenTesis_156_1.lgi +10 -0
  130. data/tests/archAuxiliares/Matriz.java +74 -0
  131. data/tests/archAuxiliares/MatrizOut.java +74 -0
  132. data/tests/archAuxiliares/MatrizOut10.java +68 -0
  133. data/tests/archAuxiliares/MatrizOut11.java +86 -0
  134. data/tests/archAuxiliares/MatrizOut2.java +74 -0
  135. data/tests/archAuxiliares/MatrizOut3.java +74 -0
  136. data/tests/archAuxiliares/MatrizOut4.java +74 -0
  137. data/tests/archAuxiliares/MatrizOut5.java +21 -0
  138. data/tests/archAuxiliares/MatrizOut6.java +21 -0
  139. data/tests/archAuxiliares/MatrizOut7.java +21 -0
  140. data/tests/archAuxiliares/MatrizOut8.java +16 -0
  141. data/tests/archAuxiliares/MatrizOut9.java +86 -0
  142. data/tests/archAuxiliares/MatrizOut_9.java +86 -0
  143. data/tests/archAuxiliares/Matriz_1.java +74 -0
  144. data/tests/archAuxiliares/Matriz_10.java +68 -0
  145. data/tests/archAuxiliares/Matriz_11.java +86 -0
  146. data/tests/archAuxiliares/Matriz_2.java +74 -0
  147. data/tests/archAuxiliares/Matriz_3.java +74 -0
  148. data/tests/archAuxiliares/Matriz_4.java +74 -0
  149. data/tests/archAuxiliares/Matriz_5.java +21 -0
  150. data/tests/archAuxiliares/Matriz_6.java +21 -0
  151. data/tests/archAuxiliares/Matriz_7.java +21 -0
  152. data/tests/archAuxiliares/Matriz_8.java +16 -0
  153. data/tests/archAuxiliares/Matriz_9.java +86 -0
  154. data/tests/archAuxiliares/Matriz_N_1.java +21 -0
  155. data/tests/archAuxiliares/Matriz_N_2.java +91 -0
  156. data/tests/archAuxiliares/N1.txt +18 -0
  157. data/tests/archAuxiliares/N1_EXPECTED.txt +18 -0
  158. data/tests/archAuxiliares/N1_OUT.txt +18 -0
  159. data/tests/archAuxiliares/N2_EXPECTED.txt +18 -0
  160. data/tests/archAuxiliares/N2_OUT.txt +18 -0
  161. data/tests/archAuxiliares/N3.txt +23 -0
  162. data/tests/archAuxiliares/N3_EXPECTED.txt +22 -0
  163. data/tests/archAuxiliares/N3_OUT.txt +22 -0
  164. data/tests/archAuxiliares/N4_EXPECTED.txt +10 -0
  165. data/tests/archAuxiliares/N4_OUT.txt +10 -0
  166. data/tests/archAuxiliares/N5_OUT.txt +18 -0
  167. data/tests/archAuxiliares/N6_OUT.txt +18 -0
  168. data/tests/archAuxiliares/PedidorTerceroWS.jsp +142 -0
  169. data/tests/archAuxiliares/Tesis_156.lgi +7 -0
  170. data/tests/archAuxiliares/aspectgen.rb +328 -0
  171. data/tests/archAuxiliares/aspectgenCopy.rb +328 -0
  172. data/tests/archAuxiliares/extract_dollar.txt +1 -0
  173. data/tests/archAuxiliares/minus.txt +26 -0
  174. data/tests/archAuxiliares/minus_expected_1.txt +26 -0
  175. data/tests/archAuxiliares/minus_expected_2.txt +26 -0
  176. data/tests/archAuxiliares/minus_out_1.txt +26 -0
  177. data/tests/archAuxiliares/minus_out_2.txt +26 -0
  178. data/tests/archAuxiliares/p1.txt +328 -0
  179. data/tests/archAuxiliares/p2.txt +328 -0
  180. data/tests/archAuxiliares/s1.txt +328 -0
  181. data/tests/archAuxiliares/s2.txt +328 -0
  182. data/tests/archAuxiliares/s3.txt +328 -0
  183. data/tests/archAuxiliares/s4.txt +328 -0
  184. data/tests/archAuxiliares/s5.txt +328 -0
  185. data/tests/archAuxiliares/s7.txt +328 -0
  186. data/tests/archAuxiliares/s8.txt +328 -0
  187. data/tests/archAuxiliares/s9.txt +328 -0
  188. data/tests/archAuxiliares/text.txt +1 -0
  189. data/tests/delay.rb +33 -0
  190. data/tests/delay.rb.bak +33 -0
  191. data/tests/satisfy.rb +44 -0
  192. data/tests/satisfy.rb.bak +34 -0
  193. metadata +252 -0
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>sub (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 40</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sub</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub_aux</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span>, <span class="ruby-value str">'local'</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>del (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 51</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">del</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-value str">''</span>, <span class="ruby-identifier">name</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>before (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 62</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub_aux</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span>, <span class="ruby-value str">'before local'</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>after (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 73</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub_aux</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span>, <span class="ruby-value str">'after local'</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>gsub (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 84</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub_aux</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span>, <span class="ruby-value str">'global'</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>gdel (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 95</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gdel</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-value str">''</span>, <span class="ruby-identifier">name</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>gbefore (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 106</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gbefore</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub_aux</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span>, <span class="ruby-value str">'before global'</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>gafter (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 116</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gafter</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-identifier">sub_aux</span>(<span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">name</span>, <span class="ruby-value str">'after global'</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>prod (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 150</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prod</span>(<span class="ruby-identifier">i_file</span>, <span class="ruby-identifier">o_file</span>, <span class="ruby-identifier">sub_list</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-ivar">@sub_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sub_hash</span>
16
+ <span class="ruby-ivar">@prod_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@prod_hash</span>
17
+ <span class="ruby-identifier">sub_list</span> = <span class="ruby-ivar">@sub_hash</span>.<span class="ruby-identifier">keys</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">sub_list</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">sub_list</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all'</span>
18
+ <span class="ruby-identifier">name</span> = <span class="ruby-value str">'anonymous_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">name</span>
19
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">arg_class</span>([<span class="ruby-value str">'i_file'</span>, <span class="ruby-value str">'String'</span>],
20
+ [<span class="ruby-value str">'o_file'</span>, <span class="ruby-value str">'String'</span>],
21
+ [<span class="ruby-value str">'sub_list'</span>, <span class="ruby-value str">'Array'</span>],
22
+ [<span class="ruby-value str">'name'</span>, <span class="ruby-value str">'String'</span>])
23
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">without_declaration</span>(<span class="ruby-value str">'sub'</span>)
24
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">collision</span>(<span class="ruby-value str">'prod'</span>)
25
+ <span class="ruby-ivar">@prod_hash</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-constant">Production</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">i_file</span>, <span class="ruby-identifier">o_file</span>, <span class="ruby-identifier">sub_list</span>)
26
+ <span class="ruby-keyword kw">end</span></pre>
27
+ </body>
28
+ </html>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>prod? (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 167</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prod?</span>(<span class="ruby-identifier">i_file</span>, <span class="ruby-identifier">o_file</span>, <span class="ruby-identifier">sub_list</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-ivar">@sub_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sub_hash</span>
16
+ <span class="ruby-identifier">sub_list</span> = <span class="ruby-ivar">@sub_hash</span>.<span class="ruby-identifier">keys</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">sub_list</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">sub_list</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all'</span>
17
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">arg_class</span>([<span class="ruby-value str">'i_file'</span>, <span class="ruby-value str">'String'</span>],
18
+ [<span class="ruby-value str">'o_file'</span>, <span class="ruby-value str">'String'</span>],
19
+ [<span class="ruby-value str">'sub_list'</span>, <span class="ruby-value str">'Array'</span>])
20
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">without_declaration</span>(<span class="ruby-value str">'sub'</span>)
21
+ <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-constant">Production</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">i_file</span>, <span class="ruby-identifier">o_file</span>, <span class="ruby-identifier">sub_list</span>).<span class="ruby-identifier">crash?</span>(<span class="ruby-ivar">@sub_hash</span>)
22
+ <span class="ruby-keyword kw">end</span></pre>
23
+ </body>
24
+ </html>
@@ -0,0 +1,157 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>gen (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 183</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gen</span>(<span class="ruby-identifier">prod_list</span> = <span class="ruby-keyword kw">nil</span>)
15
+
16
+ <span class="ruby-comment cmt">#####################################################</span>
17
+ <span class="ruby-comment cmt"># &lt;gen auxiliar methods&gt;</span>
18
+ <span class="ruby-comment cmt">#####################################################</span>
19
+
20
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mixGen</span>(<span class="ruby-identifier">prod_list</span>) <span class="ruby-comment cmt">#:nodoc:</span>
21
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">prod_list</span>, <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">dup</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
22
+ <span class="ruby-identifier">mixedList</span> = []
23
+ <span class="ruby-identifier">prod_hashMixed</span> = <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">dup</span>
24
+ <span class="ruby-value">0</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">2</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
25
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">mixedList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">i</span>))
26
+ (<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>).<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
27
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">mixedList</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">j</span>))
28
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prod_hashMixed</span>[<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">i</span>)].<span class="ruby-identifier">o_file</span> <span class="ruby-operator">==</span>
29
+ <span class="ruby-ivar">@prod_hash</span>[<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">j</span>)].<span class="ruby-identifier">o_file</span>
30
+ <span class="ruby-identifier">mixedList</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">j</span>))
31
+ <span class="ruby-identifier">prod_hashMixed</span>[<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">i</span>)].<span class="ruby-identifier">sub_list</span> <span class="ruby-operator">+=</span>
32
+ <span class="ruby-ivar">@prod_hash</span>[<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">j</span>)].<span class="ruby-identifier">sub_list</span>
33
+ <span class="ruby-identifier">prod_hashMixed</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">j</span>))
34
+ <span class="ruby-keyword kw">end</span>
35
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#if</span>
36
+ } <span class="ruby-comment cmt">#j</span>
37
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#if</span>
38
+ } <span class="ruby-comment cmt">#i</span>
39
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">prod_list</span><span class="ruby-operator">-</span><span class="ruby-identifier">mixedList</span>, <span class="ruby-identifier">prod_hashMixed</span>
40
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#mixGen</span>
41
+
42
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">source_str</span>, <span class="ruby-identifier">replace_list</span>) <span class="ruby-comment cmt">#:nodoc:</span>
43
+ <span class="ruby-identifier">delta_length</span> = <span class="ruby-value">0</span>
44
+ <span class="ruby-identifier">result_str</span> = <span class="ruby-identifier">source_str</span>.<span class="ruby-identifier">dup</span>
45
+ <span class="ruby-identifier">replace_list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">rep</span><span class="ruby-operator">|</span>
46
+ <span class="ruby-identifier">str1</span> = <span class="ruby-identifier">result_str</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">rep</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">delta_length</span>]
47
+ <span class="ruby-identifier">str2</span> = <span class="ruby-identifier">result_str</span>[<span class="ruby-identifier">rep</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">delta_length</span>, <span class="ruby-identifier">rep</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">rep</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span><span class="ruby-value">1</span>]
48
+ <span class="ruby-identifier">str3</span> = <span class="ruby-identifier">result_str</span>[<span class="ruby-identifier">rep</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">delta_length</span>, <span class="ruby-identifier">result_str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
49
+ <span class="ruby-identifier">str2</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">rep</span>[<span class="ruby-value">2</span>]].<span class="ruby-identifier">reg_exp</span>.<span class="ruby-identifier">zoom_list</span>.<span class="ruby-identifier">last</span>
50
+ <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
51
+ <span class="ruby-identifier">eval</span>(<span class="ruby-value str">&quot;str = &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">rep</span>[<span class="ruby-value">2</span>]].<span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot;'</span>)
52
+ <span class="ruby-identifier">result_str</span> = <span class="ruby-identifier">str1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">str3</span>
53
+ <span class="ruby-identifier">delta_length</span> = <span class="ruby-identifier">result_str</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">source_str</span>.<span class="ruby-identifier">length</span>
54
+ }
55
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result_str</span>
56
+ <span class="ruby-keyword kw">end</span>
57
+
58
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mix_subs</span>(<span class="ruby-identifier">sub_list</span>, <span class="ruby-identifier">i_file</span>) <span class="ruby-comment cmt">#:nodoc:</span>
59
+ <span class="ruby-identifier">result</span> = []
60
+ <span class="ruby-identifier">sub_list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
61
+ <span class="ruby-comment cmt"># local substitutions</span>
62
+ <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/local/</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">scope</span> <span class="ruby-keyword kw">then</span>
63
+ <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/before/</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">scope</span> <span class="ruby-keyword kw">then</span>
64
+ <span class="ruby-identifier">element</span> = <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">i_file</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">dup</span>
65
+ <span class="ruby-identifier">element</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">element</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
66
+ <span class="ruby-identifier">element</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
67
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
68
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-regexp re">/after/</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">scope</span> <span class="ruby-keyword kw">then</span>
69
+ <span class="ruby-identifier">element</span> = <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">i_file</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">dup</span>
70
+ <span class="ruby-identifier">element</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">element</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
71
+ <span class="ruby-identifier">element</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
72
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
73
+ <span class="ruby-keyword kw">else</span>
74
+ <span class="ruby-identifier">element</span> = <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">i_file</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">dup</span>
75
+ <span class="ruby-identifier">element</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
76
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
77
+ <span class="ruby-keyword kw">end</span>
78
+ <span class="ruby-comment cmt"># global substitutions</span>
79
+ <span class="ruby-keyword kw">else</span>
80
+ <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/before/</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">scope</span> <span class="ruby-keyword kw">then</span>
81
+ <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">i_file</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
82
+ <span class="ruby-identifier">element</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">dup</span>
83
+ <span class="ruby-identifier">element</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">element</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
84
+ <span class="ruby-identifier">element</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
85
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
86
+ }
87
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-regexp re">/after/</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">scope</span> <span class="ruby-keyword kw">then</span>
88
+ <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">i_file</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
89
+ <span class="ruby-identifier">element</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">dup</span>
90
+ <span class="ruby-identifier">element</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">element</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
91
+ <span class="ruby-identifier">element</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
92
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
93
+ }
94
+ <span class="ruby-keyword kw">else</span>
95
+ <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">i_file</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
96
+ <span class="ruby-identifier">element</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">dup</span>
97
+ <span class="ruby-identifier">element</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
98
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
99
+ }
100
+ <span class="ruby-keyword kw">end</span>
101
+ <span class="ruby-keyword kw">end</span>
102
+ }
103
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e1</span>, <span class="ruby-identifier">e2</span><span class="ruby-operator">|</span>
104
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e1</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">e2</span>[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">then</span>
105
+ <span class="ruby-identifier">e1</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">e2</span>[<span class="ruby-value">1</span>]
106
+ <span class="ruby-keyword kw">else</span>
107
+ <span class="ruby-identifier">e1</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">e2</span>[<span class="ruby-value">0</span>]
108
+ <span class="ruby-keyword kw">end</span>
109
+ }
110
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
111
+ <span class="ruby-keyword kw">end</span>
112
+
113
+ <span class="ruby-comment cmt">#####################################################</span>
114
+ <span class="ruby-comment cmt"># &lt;/gen auxiliar methods&gt;</span>
115
+ <span class="ruby-comment cmt">#####################################################</span>
116
+
117
+ <span class="ruby-ivar">@sub_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sub_hash</span>
118
+ <span class="ruby-ivar">@prod_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@prod_hash</span>
119
+ <span class="ruby-identifier">prod_list</span> = <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">keys</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">prod_list</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">prod_list</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all'</span>
120
+
121
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">arg_class</span>([<span class="ruby-value str">'prod_list'</span>, <span class="ruby-value str">'Array'</span>])
122
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">without_declaration</span>(<span class="ruby-value str">'prod'</span>)
123
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">collision</span>(<span class="ruby-value str">'gen'</span>)
124
+ <span class="ruby-identifier">prod_listM</span>, <span class="ruby-identifier">prod_hashM</span> = <span class="ruby-identifier">mixGen</span>(<span class="ruby-identifier">prod_list</span>)
125
+
126
+ <span class="ruby-identifier">prod_listM</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
127
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">i_file</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
128
+ <span class="ruby-identifier">exemplar_code</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
129
+
130
+ <span class="ruby-comment cmt"># force the match of every substitution</span>
131
+ <span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">sub_list</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
132
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">i_file</span>] <span class="ruby-keyword kw">then</span>
133
+ <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">match_hash</span>[<span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">i_file</span>] = <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">get_match_pos</span>(<span class="ruby-identifier">exemplar_code</span>, <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">reg_exp</span>, <span class="ruby-ivar">@sub_hash</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">scope</span>)
134
+ <span class="ruby-keyword kw">end</span>
135
+ }
136
+
137
+ <span class="ruby-identifier">exemplar_code</span> = <span class="ruby-identifier">replace</span>( <span class="ruby-identifier">exemplar_code</span>, <span class="ruby-identifier">mix_subs</span>(<span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">sub_list</span>, <span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">i_file</span>) )
138
+
139
+ <span class="ruby-identifier">o_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">o_file</span>)
140
+ <span class="ruby-keyword kw">begin</span>
141
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">o_dir</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">o_dir</span>)
142
+ <span class="ruby-keyword kw">rescue</span>
143
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">o_dir</span>) <span class="ruby-keyword kw">then</span>
144
+ <span class="ruby-identifier">operating_system_command</span> = <span class="ruby-node">&quot;`mkdir #{o_dir.gsub(/\\/, '\\\\\\')}`&quot;</span>
145
+ <span class="ruby-identifier">eval</span> <span class="ruby-identifier">operating_system_command</span>
146
+ <span class="ruby-keyword kw">end</span>
147
+ <span class="ruby-keyword kw">end</span>
148
+
149
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">prod_hashM</span>[<span class="ruby-identifier">p</span>].<span class="ruby-identifier">o_file</span>, <span class="ruby-value str">&quot;w+&quot;</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">o_file</span><span class="ruby-operator">|</span>
150
+ <span class="ruby-identifier">o_file</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">exemplar_code</span>)
151
+ } <span class="ruby-comment cmt">#File.open(prod_hashM[p].o_file, &quot;w+&quot;) </span>
152
+ } <span class="ruby-comment cmt">#File.open(prod_hashM[p].i_file) </span>
153
+ } <span class="ruby-comment cmt">#@prod_listM.each</span>
154
+
155
+ <span class="ruby-keyword kw">end</span></pre>
156
+ </body>
157
+ </html>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>gen? (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 329</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gen?</span>(<span class="ruby-identifier">prod_list</span> = <span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-ivar">@sub_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sub_hash</span>
16
+ <span class="ruby-ivar">@prod_hash</span> = {} <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@prod_hash</span>
17
+ <span class="ruby-identifier">prod_list</span> = <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">keys</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">prod_list</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">prod_list</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all'</span>
18
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">arg_class</span>([<span class="ruby-value str">'prod_list'</span>, <span class="ruby-value str">'Array'</span>])
19
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">without_declaration</span>(<span class="ruby-value str">'prod'</span>)
20
+ <span class="ruby-operator">!</span><span class="ruby-identifier">prod_list</span>.<span class="ruby-identifier">oneOnRest</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p1</span>, <span class="ruby-identifier">p2</span><span class="ruby-operator">|</span>
21
+ <span class="ruby-ivar">@prod_hash</span>[<span class="ruby-identifier">p1</span>].<span class="ruby-identifier">crash?</span>(<span class="ruby-ivar">@sub_hash</span>, <span class="ruby-ivar">@prod_hash</span>[<span class="ruby-identifier">p2</span>])
22
+ }
23
+ <span class="ruby-keyword kw">end</span></pre>
24
+ </body>
25
+ </html>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>extract (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 344</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">reg_exp</span>)
15
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">arg_class</span>([<span class="ruby-value str">'file'</span>, <span class="ruby-value str">'String'</span>], [<span class="ruby-value str">'reg_exp'</span>, <span class="ruby-value str">'Regexp'</span>])
16
+ <span class="ruby-identifier">result</span> = []
17
+ <span class="ruby-identifier">file_code</span> = <span class="ruby-value str">''</span>
18
+ <span class="ruby-identifier">pos</span> = []
19
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
20
+ <span class="ruby-identifier">file_code</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">read</span>
21
+ <span class="ruby-identifier">s</span> = <span class="ruby-constant">Substitution</span>.<span class="ruby-identifier">new</span>(<span class="ruby-regexp re">//</span>,<span class="ruby-value str">''</span>,<span class="ruby-value str">'global'</span>)
22
+ <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">get_match_pos</span>(<span class="ruby-identifier">file_code</span>, <span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">s</span>.<span class="ruby-identifier">scope</span>)
23
+ }
24
+ <span class="ruby-identifier">pos</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
25
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file_code</span>[<span class="ruby-identifier">p</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">p</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
26
+ }
27
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
28
+ <span class="ruby-keyword kw">end</span></pre>
29
+ </body>
30
+ </html>
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>extract_dollar (Generator)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File EFL.rb, line 382</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract_dollar</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">number</span>)
15
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">arg_class</span>([<span class="ruby-value str">'file'</span>, <span class="ruby-value str">'String'</span>], [<span class="ruby-value str">'reg_exp'</span>, <span class="ruby-value str">'Regexp'</span>], [<span class="ruby-value str">'number'</span>, <span class="ruby-value str">'Integer'</span>])
16
+
17
+ <span class="ruby-identifier">result</span> = []
18
+ <span class="ruby-identifier">file_code</span> = <span class="ruby-value str">''</span>
19
+ <span class="ruby-identifier">pos</span> = []
20
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
21
+ <span class="ruby-identifier">file_code</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">read</span>
22
+ <span class="ruby-identifier">s</span> = <span class="ruby-constant">Substitution</span>.<span class="ruby-identifier">new</span>(<span class="ruby-regexp re">//</span>,<span class="ruby-value str">''</span>,<span class="ruby-value str">'global'</span>)
23
+ <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">get_match_pos</span>(<span class="ruby-identifier">file_code</span>, <span class="ruby-identifier">reg_exp</span>, <span class="ruby-identifier">s</span>.<span class="ruby-identifier">scope</span>)
24
+ }
25
+ <span class="ruby-identifier">pos</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
26
+ <span class="ruby-identifier">file_code</span>[<span class="ruby-identifier">p</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">p</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">p</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span>] <span class="ruby-operator">=~</span> <span class="ruby-identifier">reg_exp</span>.<span class="ruby-identifier">zoom_list</span>.<span class="ruby-identifier">last</span>
27
+ <span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;result &lt;&lt; $#{number}&quot;</span>
28
+ }
29
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
30
+ <span class="ruby-keyword kw">end</span></pre>
31
+ </body>
32
+ </html>