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,22 @@
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>+ (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 421</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">generator</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">'generator'</span>, <span class="ruby-value str">'Generator'</span>])
16
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">collision</span>(<span class="ruby-value str">'add'</span>)
17
+ <span class="ruby-identifier">gen1</span> = <span class="ruby-identifier">rename</span>
18
+ <span class="ruby-identifier">gen2</span> = <span class="ruby-identifier">generator</span>.<span class="ruby-identifier">rename</span>
19
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">gen1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">gen2</span>
20
+ <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </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>add (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 432</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">generator</span>)
15
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">generator</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,27 @@
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>add? (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 439</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add?</span>(<span class="ruby-identifier">generator</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">'generator'</span>, <span class="ruby-value str">'Generator'</span>])
16
+ <span class="ruby-identifier">gen1</span> = <span class="ruby-identifier">rename</span>
17
+ <span class="ruby-identifier">gen2</span> = <span class="ruby-identifier">generator</span>.<span class="ruby-identifier">rename</span>
18
+ <span class="ruby-identifier">gen1</span>.<span class="ruby-identifier">sub_hash</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">gen2</span>.<span class="ruby-identifier">sub_hash</span>)
19
+ <span class="ruby-identifier">gen1</span>.<span class="ruby-identifier">prod_hash</span>.<span class="ruby-identifier">each_value</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p1</span><span class="ruby-operator">|</span>
20
+ <span class="ruby-identifier">gen2</span>.<span class="ruby-identifier">prod_hash</span>.<span class="ruby-identifier">each_value</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p2</span><span class="ruby-operator">|</span>
21
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p1</span>.<span class="ruby-identifier">crash?</span>(<span class="ruby-identifier">gen1</span>.<span class="ruby-identifier">sub_hash</span>, <span class="ruby-identifier">p2</span>)
22
+ } <span class="ruby-comment cmt">#prod_hash2</span>
23
+ } <span class="ruby-comment cmt">#prod_hash1</span>
24
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
25
+ <span class="ruby-keyword kw">end</span></pre>
26
+ </body>
27
+ </html>
@@ -0,0 +1,22 @@
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>&lt;&lt; (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 458</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">generator</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">'generator'</span>, <span class="ruby-value str">'Generator'</span>])
16
+ <span class="ruby-identifier">eval</span> <span class="ruby-constant">Error</span>.<span class="ruby-identifier">collision</span>(<span class="ruby-value str">'sup'</span>)
17
+ <span class="ruby-ivar">@sub_hash</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">generator</span>.<span class="ruby-identifier">sub_hash</span>)
18
+ <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">generator</span>.<span class="ruby-identifier">prod_hash</span>)
19
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
20
+ <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </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>sup! (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 469</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sup!</span>(<span class="ruby-identifier">generator</span>)
15
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">generator</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,27 @@
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>sup? (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 476</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sup?</span>(<span class="ruby-identifier">generator</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">'generator'</span>, <span class="ruby-value str">'Generator'</span>])
16
+ <span class="ruby-identifier">sub_hashAux</span> = <span class="ruby-ivar">@sub_hash</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">generator</span>.<span class="ruby-identifier">sub_hash</span>)
17
+ <span class="ruby-identifier">generator</span>.<span class="ruby-identifier">prod_hash</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k1</span>, <span class="ruby-identifier">v1</span><span class="ruby-operator">|</span>
18
+ <span class="ruby-ivar">@prod_hash</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k2</span>, <span class="ruby-identifier">v2</span><span class="ruby-operator">|</span>
19
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">k1</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">k2</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">v1</span>.<span class="ruby-identifier">crash?</span>(<span class="ruby-identifier">sub_hashAux</span>, <span class="ruby-identifier">v2</span>))
20
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
21
+ <span class="ruby-keyword kw">end</span>
22
+ }
23
+ }
24
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
25
+ <span class="ruby-keyword kw">end</span></pre>
26
+ </body>
27
+ </html>
@@ -0,0 +1,271 @@
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Regexp</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Regexp</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/EFL_regexp_rb.html">
59
+ EFL_regexp.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <p>
83
+ <em>Copyright � 2007 by Ruben Heradio Gil, Jose Antonio Cerrada Somolinos,
84
+ Jose Ramon Coz Fernandez and Jose Carlos Lopez Ruiz.</em> <em>This file is
85
+ part of <b>EFL-A Ruby implementation of the Exemplar Flexibilization
86
+ Language.</em></b> <em>EFL is distributed under the terms of the GNU Lesser
87
+ General Public License (LGPL).</em> <em>EFL is free software: you can
88
+ redistribute it and/or modify it under the terms of the GNU Lesser General
89
+ Public License as published by the Free Software Foundation, either version
90
+ 3 of the License, or (at your option) any later version.</em> <em>EFL is
91
+ distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
92
+ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
93
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
94
+ details.</em> <em>You should have received a copy of the GNU Lesser General
95
+ Public License along with this program. If not, see &lt;<a
96
+ href="http://www.gnu.org/licenses">www.gnu.org/licenses</a>/&gt;.</em>
97
+ <em>Contact Information: Ruben Heradio Gil (rheradio@issi.uned.es). Phone
98
+ number: 00 34 91 398 8242, Postal address: Dpto. de Ingenier�a de SW y
99
+ Sistemas Inform�ticos. E.T.S.I. Inform�tica, UNED. C/ Juan del Rosal, 16.
100
+ 28040 Madrid.</em>
101
+ </p>
102
+ <h1>Extensions of the Ruby regular expressions</h1>
103
+ <p>
104
+ The next operators are included:
105
+ </p>
106
+ <ul>
107
+ <li>zoom <a href="Regexp.html">Regexp</a>#&gt;
108
+
109
+ </li>
110
+ <li>complement <a href="Regexp.html#M000030">Regexp#o</a>
111
+
112
+ </li>
113
+ <li>minus <a href="Regexp.html">Regexp</a>#-
114
+
115
+ </li>
116
+ </ul>
117
+
118
+ </div>
119
+
120
+
121
+ </div>
122
+
123
+ <div id="method-list">
124
+ <h3 class="section-bar">Methods</h3>
125
+
126
+ <div class="name-list">
127
+ <a href="#M000029">-</a>&nbsp;&nbsp;
128
+ <a href="#M000028">&gt;</a>&nbsp;&nbsp;
129
+ <a href="#M000030">o</a>&nbsp;&nbsp;
130
+ </div>
131
+ </div>
132
+
133
+ </div>
134
+
135
+
136
+ <!-- if includes -->
137
+
138
+ <div id="section">
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ <!-- if method_list -->
148
+ <div id="methods">
149
+ <h3 class="section-bar">Public Instance methods</h3>
150
+
151
+ <div id="method-M000029" class="method-detail">
152
+ <a name="M000029"></a>
153
+
154
+ <div class="method-heading">
155
+ <a href="Regexp.src/M000029.html" target="Code" class="method-signature"
156
+ onclick="popupCode('Regexp.src/M000029.html');return false;">
157
+ <span class="method-name">-</span><span class="method-args">(minus_regular_expression)</span>
158
+ </a>
159
+ </div>
160
+
161
+ <div class="method-description">
162
+ <p>
163
+ Using the &quot;minus operator&quot;, regular expressions can be refined by
164
+ deleting specific patterns. For example, let suppose we have the text:
165
+ <tt>text_1, text_2, text_3, text_4</tt>.
166
+ </p>
167
+ <p>
168
+ The matching of the regular expression <tt>/text_[0-9]/</tt> is
169
+ <tt>[&#8216;text_1&#8217;, &#8216;text_2&#8217;, &#8216;text_3&#8217;,
170
+ &#8216;text_4&#8217;]</tt>.
171
+ </p>
172
+ <p>
173
+ Applying the <tt>-</tt> operator: <tt>/text_[0-9]/ - /text_1/ -
174
+ /text_3/</tt>, the matching will be refined to <tt>[&#8216;text_2&#8217;,
175
+ &#8216;text_4&#8217;]</tt>.
176
+ </p>
177
+ <p>
178
+ Note that:
179
+ </p>
180
+ <ul>
181
+ <li><tt>re1 - re2</tt> deletes the <tt>re2</tt> matchings in the context of
182
+ <tt>re1</tt>. That is, <tt>re_1 &gt; re_2 &gt; &#8230; &gt; re_n -
183
+ re_minus</tt> it would be equivalent to <tt>re_1 &gt; re_2 &gt; &#8230;
184
+ &gt; re_n - (re_1 &gt; re_2 &gt; &#8230; &gt; re_n &gt; re_minus)</tt>
185
+
186
+ </li>
187
+ <li>To avoid inconsistent expressions, on the right side of the <tt>-</tt>
188
+ operator is not permitted the use of the <tt>&gt;</tt> operator.
189
+
190
+ </li>
191
+ </ul>
192
+ </div>
193
+ </div>
194
+
195
+ <div id="method-M000028" class="method-detail">
196
+ <a name="M000028"></a>
197
+
198
+ <div class="method-heading">
199
+ <a href="Regexp.src/M000028.html" target="Code" class="method-signature"
200
+ onclick="popupCode('Regexp.src/M000028.html');return false;">
201
+ <span class="method-name">&gt;</span><span class="method-args">(zoom_regular_expression)</span>
202
+ </a>
203
+ </div>
204
+
205
+ <div class="method-description">
206
+ <p>
207
+ Using the &quot;zoom operator&quot;, regular expressions can be chained to
208
+ specify progressively a text pattern.
209
+ </p>
210
+ <p>
211
+ For example: <tt>regular_expression_1 &gt; regular_expression_2 &gt;
212
+ regular_expression_3 &gt; &#8230; regular_expression_N</tt>
213
+ </p>
214
+ <p>
215
+ runs the <tt>regular_expression_2</tt> over the selection made by the
216
+ <tt>regular_expression_1</tt>,
217
+ </p>
218
+ <p>
219
+ the <tt>regular_expression_3</tt> over the selection made by the
220
+ <tt>regular_expression_2</tt>, etcetera
221
+ </p>
222
+ </div>
223
+ </div>
224
+
225
+ <div id="method-M000030" class="method-detail">
226
+ <a name="M000030"></a>
227
+
228
+ <div class="method-heading">
229
+ <a href="Regexp.src/M000030.html" target="Code" class="method-signature"
230
+ onclick="popupCode('Regexp.src/M000030.html');return false;">
231
+ <span class="method-name">o</span><span class="method-args">()</span>
232
+ </a>
233
+ </div>
234
+
235
+ <div class="method-description">
236
+ <p>
237
+ Complements a regular expression. For example: <tt>regular_expression_1.o
238
+ &gt; regular_expression_2</tt> matchs <tt>regular_expression_2</tt> outside
239
+ the text matched by <tt>regular_expression_1</tt>
240
+ </p>
241
+ <p>
242
+ Note that:
243
+ </p>
244
+ <ul>
245
+ <li><tt>regular_expresion.o.<a href="Regexp.html#M000030">o</a> =
246
+ regular_expresion</tt>
247
+
248
+ </li>
249
+ <li><tt>(regular_expression_1 &gt; regular_expression_2 &gt; &#8230; &gt;
250
+ regular_expression_N).<a href="Regexp.html#M000030">o</a> =
251
+ regular_expression_1 &gt; regular_expression_2 &gt; &#8230; &gt;
252
+ regular_expresion_N.o</tt>
253
+
254
+ </li>
255
+ </ul>
256
+ </div>
257
+ </div>
258
+
259
+
260
+ </div>
261
+
262
+
263
+ </div>
264
+
265
+
266
+ <div id="validator-badges">
267
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
268
+ </div>
269
+
270
+ </body>
271
+ </html>
@@ -0,0 +1,37 @@
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>&gt; (Regexp)</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_regexp.rb, line 32</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">zoom_regular_expression</span>)
15
+ <span class="ruby-identifier">op2</span> = <span class="ruby-identifier">zoom_regular_expression</span>.<span class="ruby-identifier">dup</span>
16
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">op2</span>.<span class="ruby-identifier">zoom_list</span> <span class="ruby-keyword kw">then</span>
17
+ <span class="ruby-identifier">op2</span>.<span class="ruby-identifier">zoom_list</span> = [<span class="ruby-identifier">op2</span>]
18
+ <span class="ruby-keyword kw">end</span>
19
+
20
+ <span class="ruby-identifier">op1</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
21
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span> <span class="ruby-operator">!=</span>[]) <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt">#due '-' has major precedence than '&gt;', this error is detected here</span>
22
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;erroooor minus&quot;</span>
23
+ <span class="ruby-keyword kw">end</span>
24
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">zoom_list</span>
25
+ <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">zoom_list</span> = <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">zoom_list</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">op2</span>.<span class="ruby-identifier">zoom_list</span>
26
+ <span class="ruby-keyword kw">else</span>
27
+ <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">zoom_list</span> = [<span class="ruby-identifier">op1</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">op2</span>.<span class="ruby-identifier">zoom_list</span>
28
+ <span class="ruby-keyword kw">end</span>
29
+
30
+ <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span> = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span>
31
+ <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">zoom_list</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
32
+ <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span> = <span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">minus_list</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-operator">!</span><span class="ruby-identifier">e</span>.<span class="ruby-identifier">minus_list</span>
33
+ }
34
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">op1</span>
35
+ <span class="ruby-keyword kw">end</span></pre>
36
+ </body>
37
+ </html>