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.
- data/README.txt +36 -0
- data/lib/EFL.rb +494 -0
- data/lib/EFL_array.rb +20 -0
- data/lib/EFL_errors.rb +48 -0
- data/lib/EFL_hash.rb +18 -0
- data/lib/EFL_production.rb +49 -0
- data/lib/EFL_regexp.rb +112 -0
- data/lib/EFL_regexp_generator.rb +70 -0
- data/lib/EFL_substitution.rb +221 -0
- data/lib/EFL_syntactic_sugar.rb +67 -0
- data/lib/Hash Doc.doc +0 -0
- data/lib/Limitaciones.txt +3 -0
- data/lib/doc/classes/Generator.html +634 -0
- data/lib/doc/classes/Generator.src/M000008.html +18 -0
- data/lib/doc/classes/Generator.src/M000009.html +18 -0
- data/lib/doc/classes/Generator.src/M000010.html +18 -0
- data/lib/doc/classes/Generator.src/M000011.html +18 -0
- data/lib/doc/classes/Generator.src/M000012.html +18 -0
- data/lib/doc/classes/Generator.src/M000013.html +18 -0
- data/lib/doc/classes/Generator.src/M000014.html +18 -0
- data/lib/doc/classes/Generator.src/M000015.html +18 -0
- data/lib/doc/classes/Generator.src/M000016.html +28 -0
- data/lib/doc/classes/Generator.src/M000017.html +24 -0
- data/lib/doc/classes/Generator.src/M000018.html +157 -0
- data/lib/doc/classes/Generator.src/M000019.html +25 -0
- data/lib/doc/classes/Generator.src/M000020.html +30 -0
- data/lib/doc/classes/Generator.src/M000021.html +32 -0
- data/lib/doc/classes/Generator.src/M000022.html +22 -0
- data/lib/doc/classes/Generator.src/M000023.html +18 -0
- data/lib/doc/classes/Generator.src/M000024.html +27 -0
- data/lib/doc/classes/Generator.src/M000025.html +22 -0
- data/lib/doc/classes/Generator.src/M000026.html +18 -0
- data/lib/doc/classes/Generator.src/M000027.html +27 -0
- data/lib/doc/classes/Regexp.html +271 -0
- data/lib/doc/classes/Regexp.src/M000028.html +37 -0
- data/lib/doc/classes/Regexp.src/M000029.html +29 -0
- data/lib/doc/classes/Regexp.src/M000030.html +32 -0
- data/lib/doc/created.rid +1 -0
- data/lib/doc/files/EFL_rb.html +147 -0
- data/lib/doc/files/EFL_regexp_generator_rb.html +242 -0
- data/lib/doc/files/EFL_regexp_generator_rb.src/M000003.html +27 -0
- data/lib/doc/files/EFL_regexp_generator_rb.src/M000004.html +27 -0
- data/lib/doc/files/EFL_regexp_generator_rb.src/M000005.html +19 -0
- data/lib/doc/files/EFL_regexp_generator_rb.src/M000006.html +20 -0
- data/lib/doc/files/EFL_regexp_generator_rb.src/M000007.html +19 -0
- data/lib/doc/files/EFL_regexp_rb.html +139 -0
- data/lib/doc/files/EFL_syntactic_sugar_rb.html +208 -0
- data/lib/doc/files/EFL_syntactic_sugar_rb.src/M000001.html +29 -0
- data/lib/doc/files/EFL_syntactic_sugar_rb.src/M000002.html +19 -0
- data/lib/doc/fr_class_index.html +28 -0
- data/lib/doc/fr_file_index.html +30 -0
- data/lib/doc/fr_method_index.html +56 -0
- data/lib/doc/index.html +24 -0
- data/tests/Add_Sup_1.rb +223 -0
- data/tests/Add_Sup_1.rb.bak +223 -0
- data/tests/Add_Sup_1_NI.rb +25 -0
- data/tests/Add_Sup_2.rb +142 -0
- data/tests/Add_Sup_2.rb.bak +140 -0
- data/tests/All.rb +2 -0
- data/tests/All_1.rb +7 -0
- data/tests/All_2.rb +7 -0
- data/tests/All_2.rb.bak +5 -0
- data/tests/BeforeAfter.rb +83 -0
- data/tests/Bloques.rb +34 -0
- data/tests/Bloques.rb.bak +34 -0
- data/tests/Complementary.rb +144 -0
- data/tests/ComplementaryZoom.rb +78 -0
- data/tests/Del.rb +126 -0
- data/tests/Dup.rb +55 -0
- data/tests/Dup.rb.bak +54 -0
- data/tests/Error.rb +11 -0
- data/tests/ErrorArgClass.rb +169 -0
- data/tests/ErrorArgClass.rb.bak +158 -0
- data/tests/ErrorCollision.rb +218 -0
- data/tests/ErrorCollision.rb.bak +219 -0
- data/tests/ErrorWithoutDeclaration.rb +60 -0
- data/tests/ErrorWithoutDeclaration.rb.bak +60 -0
- data/tests/Extract.rb +56 -0
- data/tests/ExtractDollar.rb +17 -0
- data/tests/HashTest.rb +54 -0
- data/tests/HashTest.rb.bak +54 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/List.cpp +75 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/ListTransformer.rb +69 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/ListTransformer.rb.bak +100 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/ejecutame.bat +1 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/outDir/MyClassList.cpp +75 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/runme.bat +1 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/specification1.txt +5 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/specification2.txt +3 -0
- data/tests/Lista Czarnecki/AntiguaInterfaz/specification3.txt +5 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/List.cpp +75 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/ListTransformer.rb +58 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/ListTransformer.rb.bak +57 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/ejecutame.bat +1 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/outDir/MyClassList.cpp +75 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/outDir/NewClassList.cpp +75 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/specification1.txt +5 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/specification1.txt.bak +5 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/specification2.txt +3 -0
- data/tests/Lista Czarnecki/NuevaInterfaz/specification3.txt +5 -0
- data/tests/Minus.rb +89 -0
- data/tests/Plus.rb.bak +48 -0
- data/tests/REVit.rb +84 -0
- data/tests/RenameTest.rb +46 -0
- data/tests/RenameTest.rb.bak +46 -0
- data/tests/SubCrash.rb +26 -0
- data/tests/SubList.rb.bak +43 -0
- data/tests/archAuxiliares/1.txt +328 -0
- data/tests/archAuxiliares/2.txt +328 -0
- data/tests/archAuxiliares/Bloques/s1.txt +328 -0
- data/tests/archAuxiliares/Copia de Matriz.java +19 -0
- data/tests/archAuxiliares/Gen/Tesis_156_1.lgi +10 -0
- data/tests/archAuxiliares/Gen/Tesis_156_2.lgi +10 -0
- data/tests/archAuxiliares/Gen/t01.txt +328 -0
- data/tests/archAuxiliares/Gen/t01.txt.bak +328 -0
- data/tests/archAuxiliares/Gen/t02.txt +328 -0
- data/tests/archAuxiliares/Gen/t02.txt.bak +328 -0
- data/tests/archAuxiliares/Gen/t03.txt +328 -0
- data/tests/archAuxiliares/Gen/t03.txt.bak +328 -0
- data/tests/archAuxiliares/Gen/t04.txt +328 -0
- data/tests/archAuxiliares/Gen/t04.txt.bak +328 -0
- data/tests/archAuxiliares/Gen/t1.txt +328 -0
- data/tests/archAuxiliares/Gen/t1.txt.bak +328 -0
- data/tests/archAuxiliares/Gen/t2.txt +328 -0
- data/tests/archAuxiliares/Gen/t2.txt.bak +328 -0
- data/tests/archAuxiliares/Gen/t5.txt +328 -0
- data/tests/archAuxiliares/Gen/t9.txt +328 -0
- data/tests/archAuxiliares/Gen/t9.txt.bak +328 -0
- data/tests/archAuxiliares/GenTesis_156_1.lgi +10 -0
- data/tests/archAuxiliares/Matriz.java +74 -0
- data/tests/archAuxiliares/MatrizOut.java +74 -0
- data/tests/archAuxiliares/MatrizOut10.java +68 -0
- data/tests/archAuxiliares/MatrizOut11.java +86 -0
- data/tests/archAuxiliares/MatrizOut2.java +74 -0
- data/tests/archAuxiliares/MatrizOut3.java +74 -0
- data/tests/archAuxiliares/MatrizOut4.java +74 -0
- data/tests/archAuxiliares/MatrizOut5.java +21 -0
- data/tests/archAuxiliares/MatrizOut6.java +21 -0
- data/tests/archAuxiliares/MatrizOut7.java +21 -0
- data/tests/archAuxiliares/MatrizOut8.java +16 -0
- data/tests/archAuxiliares/MatrizOut9.java +86 -0
- data/tests/archAuxiliares/MatrizOut_9.java +86 -0
- data/tests/archAuxiliares/Matriz_1.java +74 -0
- data/tests/archAuxiliares/Matriz_10.java +68 -0
- data/tests/archAuxiliares/Matriz_11.java +86 -0
- data/tests/archAuxiliares/Matriz_2.java +74 -0
- data/tests/archAuxiliares/Matriz_3.java +74 -0
- data/tests/archAuxiliares/Matriz_4.java +74 -0
- data/tests/archAuxiliares/Matriz_5.java +21 -0
- data/tests/archAuxiliares/Matriz_6.java +21 -0
- data/tests/archAuxiliares/Matriz_7.java +21 -0
- data/tests/archAuxiliares/Matriz_8.java +16 -0
- data/tests/archAuxiliares/Matriz_9.java +86 -0
- data/tests/archAuxiliares/Matriz_N_1.java +21 -0
- data/tests/archAuxiliares/Matriz_N_2.java +91 -0
- data/tests/archAuxiliares/N1.txt +18 -0
- data/tests/archAuxiliares/N1_EXPECTED.txt +18 -0
- data/tests/archAuxiliares/N1_OUT.txt +18 -0
- data/tests/archAuxiliares/N2_EXPECTED.txt +18 -0
- data/tests/archAuxiliares/N2_OUT.txt +18 -0
- data/tests/archAuxiliares/N3.txt +23 -0
- data/tests/archAuxiliares/N3_EXPECTED.txt +22 -0
- data/tests/archAuxiliares/N3_OUT.txt +22 -0
- data/tests/archAuxiliares/N4_EXPECTED.txt +10 -0
- data/tests/archAuxiliares/N4_OUT.txt +10 -0
- data/tests/archAuxiliares/N5_OUT.txt +18 -0
- data/tests/archAuxiliares/N6_OUT.txt +18 -0
- data/tests/archAuxiliares/PedidorTerceroWS.jsp +142 -0
- data/tests/archAuxiliares/Tesis_156.lgi +7 -0
- data/tests/archAuxiliares/aspectgen.rb +328 -0
- data/tests/archAuxiliares/aspectgenCopy.rb +328 -0
- data/tests/archAuxiliares/extract_dollar.txt +1 -0
- data/tests/archAuxiliares/minus.txt +26 -0
- data/tests/archAuxiliares/minus_expected_1.txt +26 -0
- data/tests/archAuxiliares/minus_expected_2.txt +26 -0
- data/tests/archAuxiliares/minus_out_1.txt +26 -0
- data/tests/archAuxiliares/minus_out_2.txt +26 -0
- data/tests/archAuxiliares/p1.txt +328 -0
- data/tests/archAuxiliares/p2.txt +328 -0
- data/tests/archAuxiliares/s1.txt +328 -0
- data/tests/archAuxiliares/s2.txt +328 -0
- data/tests/archAuxiliares/s3.txt +328 -0
- data/tests/archAuxiliares/s4.txt +328 -0
- data/tests/archAuxiliares/s5.txt +328 -0
- data/tests/archAuxiliares/s7.txt +328 -0
- data/tests/archAuxiliares/s8.txt +328 -0
- data/tests/archAuxiliares/s9.txt +328 -0
- data/tests/archAuxiliares/text.txt +1 -0
- data/tests/delay.rb +33 -0
- data/tests/delay.rb.bak +33 -0
- data/tests/satisfy.rb +44 -0
- data/tests/satisfy.rb.bak +34 -0
- metadata +252 -0
|
@@ -0,0 +1,29 @@
|
|
|
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>- (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 69</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">minus_regular_expression</span>)
|
|
15
|
+
<span class="ruby-identifier">op2</span> = <span class="ruby-identifier">minus_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">minus_list</span> <span class="ruby-keyword kw">then</span>
|
|
17
|
+
<span class="ruby-identifier">op2</span>.<span class="ruby-identifier">minus_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>
|
|
22
|
+
<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">op2</span>.<span class="ruby-identifier">minus_list</span>
|
|
23
|
+
<span class="ruby-keyword kw">else</span>
|
|
24
|
+
<span class="ruby-identifier">op1</span>.<span class="ruby-identifier">minus_list</span> = <span class="ruby-identifier">op2</span>.<span class="ruby-identifier">minus_list</span>
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">op1</span>
|
|
27
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
28
|
+
</body>
|
|
29
|
+
</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>o (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 94</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">o</span>
|
|
15
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
|
|
16
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">zoom_list</span> <span class="ruby-keyword kw">then</span>
|
|
17
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">zoom_list</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">complemented</span> <span class="ruby-keyword kw">then</span>
|
|
18
|
+
<span class="ruby-identifier">result</span>.<span class="ruby-identifier">zoom_list</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">complemented</span> = <span class="ruby-keyword kw">true</span>
|
|
19
|
+
<span class="ruby-keyword kw">else</span>
|
|
20
|
+
<span class="ruby-identifier">result</span>.<span class="ruby-identifier">zoom_list</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">complemented</span> = <span class="ruby-keyword kw">false</span>
|
|
21
|
+
<span class="ruby-keyword kw">end</span>
|
|
22
|
+
<span class="ruby-keyword kw">else</span>
|
|
23
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">complemented</span> <span class="ruby-keyword kw">then</span>
|
|
24
|
+
<span class="ruby-identifier">result</span>.<span class="ruby-identifier">complemented</span> = <span class="ruby-keyword kw">true</span>
|
|
25
|
+
<span class="ruby-keyword kw">else</span>
|
|
26
|
+
<span class="ruby-identifier">result</span>.<span class="ruby-identifier">complemented</span> = <span class="ruby-keyword kw">false</span>
|
|
27
|
+
<span class="ruby-keyword kw">end</span>
|
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
|
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>
|
data/lib/doc/created.rid
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Fri, 16 Nov 2007 18:44:17 +0100
|
|
@@ -0,0 +1,147 @@
|
|
|
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>File: EFL.rb</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="fileHeader">
|
|
50
|
+
<h1>EFL.rb</h1>
|
|
51
|
+
<table class="header-table">
|
|
52
|
+
<tr class="top-aligned-row">
|
|
53
|
+
<td><strong>Path:</strong></td>
|
|
54
|
+
<td>EFL.rb
|
|
55
|
+
</td>
|
|
56
|
+
</tr>
|
|
57
|
+
<tr class="top-aligned-row">
|
|
58
|
+
<td><strong>Last Update:</strong></td>
|
|
59
|
+
<td>Fri Nov 16 17:36:17 +0100 2007</td>
|
|
60
|
+
</tr>
|
|
61
|
+
</table>
|
|
62
|
+
</div>
|
|
63
|
+
<!-- banner header -->
|
|
64
|
+
|
|
65
|
+
<div id="bodyContent">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<div id="contextContent">
|
|
70
|
+
|
|
71
|
+
<div id="description">
|
|
72
|
+
<p>
|
|
73
|
+
<em>Copyright � 2007 by Ruben Heradio Gil, Jose Antonio Cerrada Somolinos,
|
|
74
|
+
Jose Ramon Coz Fernandez and Jose Carlos Lopez Ruiz.</em> <em>This file is
|
|
75
|
+
part of <b>EFL-A Ruby implementation of the Exemplar Flexibilization
|
|
76
|
+
Language.</em></b> <em>EFL is distributed under the terms of the GNU Lesser
|
|
77
|
+
General Public License (LGPL).</em> <em>EFL is free software: you can
|
|
78
|
+
redistribute it and/or modify it under the terms of the GNU Lesser General
|
|
79
|
+
Public License as published by the Free Software Foundation, either version
|
|
80
|
+
3 of the License, or (at your option) any later version.</em> <em>EFL is
|
|
81
|
+
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
82
|
+
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
83
|
+
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
|
84
|
+
details.</em> <em>You should have received a copy of the GNU Lesser General
|
|
85
|
+
Public License along with this program. If not, see <<a
|
|
86
|
+
href="http://www.gnu.org/licenses">www.gnu.org/licenses</a>/>.</em>
|
|
87
|
+
<em>Contact Information: Ruben Heradio Gil (rheradio@issi.uned.es). Phone
|
|
88
|
+
number: 00 34 91 398 8242, Postal address: Dpto. de Ingenier�a de SW y
|
|
89
|
+
Sistemas Inform�ticos. E.T.S.I. Inform�tica, UNED. C/ Juan del Rosal, 16.
|
|
90
|
+
28040 Madrid.</em>
|
|
91
|
+
</p>
|
|
92
|
+
<p>
|
|
93
|
+
<b>With EFL you can write program generators by analogy (see the <a
|
|
94
|
+
href="../classes/Generator.html">Generator</a> class).</b> <b>EFL is
|
|
95
|
+
integrated in the Exemplar Driven Development (EDD) process.</b> <b>EDD has
|
|
96
|
+
been developed by Ruben Heradio to build Software Product Lines (SPLs) in a
|
|
97
|
+
reactive and an extractive way.</b> <b>The theoretical basis of EDD and
|
|
98
|
+
EFL, and a wide variety of examples can be found in <a
|
|
99
|
+
href="http://www.issi.uned.es/miembros/pagpersonales/ruben_heradio/rheradio_english.html">www.issi.uned.es/miembros/pagpersonales/ruben_heradio/rheradio_english.html</a></b>
|
|
100
|
+
</p>
|
|
101
|
+
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div id="requires-list">
|
|
105
|
+
<h3 class="section-bar">Required files</h3>
|
|
106
|
+
|
|
107
|
+
<div class="name-list">
|
|
108
|
+
EFL_substitution
|
|
109
|
+
EFL_production
|
|
110
|
+
<a href="EFL_regexp_rb.html">EFL_regexp</a>
|
|
111
|
+
EFL_hash
|
|
112
|
+
EFL_array
|
|
113
|
+
<a href="EFL_syntactic_sugar_rb.html">EFL_syntactic_sugar</a>
|
|
114
|
+
EFL_errors
|
|
115
|
+
<a href="EFL_regexp_generator_rb.html">EFL_regexp_generator</a>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
<!-- if includes -->
|
|
126
|
+
|
|
127
|
+
<div id="section">
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
<!-- if method_list -->
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
<div id="validator-badges">
|
|
143
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
</body>
|
|
147
|
+
</html>
|
|
@@ -0,0 +1,242 @@
|
|
|
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>File: EFL_regexp_generator.rb</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="fileHeader">
|
|
50
|
+
<h1>EFL_regexp_generator.rb</h1>
|
|
51
|
+
<table class="header-table">
|
|
52
|
+
<tr class="top-aligned-row">
|
|
53
|
+
<td><strong>Path:</strong></td>
|
|
54
|
+
<td>EFL_regexp_generator.rb
|
|
55
|
+
</td>
|
|
56
|
+
</tr>
|
|
57
|
+
<tr class="top-aligned-row">
|
|
58
|
+
<td><strong>Last Update:</strong></td>
|
|
59
|
+
<td>Fri Nov 16 17:25:55 +0100 2007</td>
|
|
60
|
+
</tr>
|
|
61
|
+
</table>
|
|
62
|
+
</div>
|
|
63
|
+
<!-- banner header -->
|
|
64
|
+
|
|
65
|
+
<div id="bodyContent">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<div id="contextContent">
|
|
70
|
+
|
|
71
|
+
<div id="description">
|
|
72
|
+
<p>
|
|
73
|
+
<em>Copyright � 2007 by Ruben Heradio Gil, Jose Antonio Cerrada Somolinos,
|
|
74
|
+
Jose Ramon Coz Fernandez and Jose Carlos Lopez Ruiz.</em> <em>This file is
|
|
75
|
+
part of <b>EFL-A Ruby implementation of the Exemplar Flexibilization
|
|
76
|
+
Language.</em></b> <em>EFL is distributed under the terms of the GNU Lesser
|
|
77
|
+
General Public License (LGPL).</em> <em>EFL is free software: you can
|
|
78
|
+
redistribute it and/or modify it under the terms of the GNU Lesser General
|
|
79
|
+
Public License as published by the Free Software Foundation, either version
|
|
80
|
+
3 of the License, or (at your option) any later version.</em> <em>EFL is
|
|
81
|
+
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
82
|
+
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
83
|
+
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
|
84
|
+
details.</em> <em>You should have received a copy of the GNU Lesser General
|
|
85
|
+
Public License along with this program. If not, see <<a
|
|
86
|
+
href="http://www.gnu.org/licenses">www.gnu.org/licenses</a>/>.</em>
|
|
87
|
+
<em>Contact Information: Ruben Heradio Gil (rheradio@issi.uned.es). Phone
|
|
88
|
+
number: 00 34 91 398 8242, Postal address: Dpto. de Ingenier�a de SW y
|
|
89
|
+
Sistemas Inform�ticos. E.T.S.I. Inform�tica, UNED. C/ Juan del Rosal, 16.
|
|
90
|
+
28040 Madrid.</em>
|
|
91
|
+
</p>
|
|
92
|
+
<h1>Regular expression generators and facilities</h1>
|
|
93
|
+
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<div id="method-list">
|
|
100
|
+
<h3 class="section-bar">Methods</h3>
|
|
101
|
+
|
|
102
|
+
<div class="name-list">
|
|
103
|
+
<a href="#M000007">inside_nested_symbols</a>
|
|
104
|
+
<a href="#M000006">nested_quotes</a>
|
|
105
|
+
<a href="#M000004">nested_symbol</a>
|
|
106
|
+
<a href="#M000003">nested_symbols</a>
|
|
107
|
+
<a href="#M000005">regexp2string</a>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
<!-- if includes -->
|
|
115
|
+
|
|
116
|
+
<div id="section">
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
<!-- if method_list -->
|
|
126
|
+
<div id="methods">
|
|
127
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
128
|
+
|
|
129
|
+
<div id="method-M000007" class="method-detail">
|
|
130
|
+
<a name="M000007"></a>
|
|
131
|
+
|
|
132
|
+
<div class="method-heading">
|
|
133
|
+
<a href="EFL_regexp_generator_rb.src/M000007.html" target="Code" class="method-signature"
|
|
134
|
+
onclick="popupCode('EFL_regexp_generator_rb.src/M000007.html');return false;">
|
|
135
|
+
<span class="method-name">inside_nested_symbols</span><span class="method-args">(beginSymbol, endSymbol, levels=50)</span>
|
|
136
|
+
</a>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<div class="method-description">
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<div id="method-M000006" class="method-detail">
|
|
144
|
+
<a name="M000006"></a>
|
|
145
|
+
|
|
146
|
+
<div class="method-heading">
|
|
147
|
+
<a href="EFL_regexp_generator_rb.src/M000006.html" target="Code" class="method-signature"
|
|
148
|
+
onclick="popupCode('EFL_regexp_generator_rb.src/M000006.html');return false;">
|
|
149
|
+
<span class="method-name">nested_quotes</span><span class="method-args">(levels=10)</span>
|
|
150
|
+
</a>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<div class="method-description">
|
|
154
|
+
<p>
|
|
155
|
+
Returns a Regular Expression who matches nested quotes
|
|
156
|
+
("…"…"…"). By default, 10 is the
|
|
157
|
+
maximum possible nested levels.
|
|
158
|
+
</p>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div id="method-M000004" class="method-detail">
|
|
163
|
+
<a name="M000004"></a>
|
|
164
|
+
|
|
165
|
+
<div class="method-heading">
|
|
166
|
+
<a href="EFL_regexp_generator_rb.src/M000004.html" target="Code" class="method-signature"
|
|
167
|
+
onclick="popupCode('EFL_regexp_generator_rb.src/M000004.html');return false;">
|
|
168
|
+
<span class="method-name">nested_symbol</span><span class="method-args">(symbol, levels=10)</span>
|
|
169
|
+
</a>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<div class="method-description">
|
|
173
|
+
<p>
|
|
174
|
+
Returns a Regular Expression who matches nested symbols. By default, 10 is
|
|
175
|
+
the maximum possible nested levels.
|
|
176
|
+
</p>
|
|
177
|
+
<p>
|
|
178
|
+
Example:
|
|
179
|
+
</p>
|
|
180
|
+
<pre>
|
|
181
|
+
puts nested_symbol('=', 2)
|
|
182
|
+
------------>
|
|
183
|
+
(?mx-i:[=]([^=] | [=]([^=])*[=] )*[=])
|
|
184
|
+
</pre>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div id="method-M000003" class="method-detail">
|
|
189
|
+
<a name="M000003"></a>
|
|
190
|
+
|
|
191
|
+
<div class="method-heading">
|
|
192
|
+
<a href="EFL_regexp_generator_rb.src/M000003.html" target="Code" class="method-signature"
|
|
193
|
+
onclick="popupCode('EFL_regexp_generator_rb.src/M000003.html');return false;">
|
|
194
|
+
<span class="method-name">nested_symbols</span><span class="method-args">(beginSymbol, endSymbol, levels=10)</span>
|
|
195
|
+
</a>
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
<div class="method-description">
|
|
199
|
+
<p>
|
|
200
|
+
Returns a Regular Expression who matches nested symbols. By default, 10 is
|
|
201
|
+
the maximum possible nested levels.
|
|
202
|
+
</p>
|
|
203
|
+
<p>
|
|
204
|
+
Example:
|
|
205
|
+
</p>
|
|
206
|
+
<pre>
|
|
207
|
+
y = '( 1 + (3 + 9 - (45 + 9) ) ) (89(14))'
|
|
208
|
+
y =~ nestedSymbols( '(' , ')' )
|
|
209
|
+
puts $&
|
|
210
|
+
------------>
|
|
211
|
+
1 + (3 + 9 - (45 + 9) )
|
|
212
|
+
</pre>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
<div id="method-M000005" class="method-detail">
|
|
217
|
+
<a name="M000005"></a>
|
|
218
|
+
|
|
219
|
+
<div class="method-heading">
|
|
220
|
+
<a href="EFL_regexp_generator_rb.src/M000005.html" target="Code" class="method-signature"
|
|
221
|
+
onclick="popupCode('EFL_regexp_generator_rb.src/M000005.html');return false;">
|
|
222
|
+
<span class="method-name">regexp2string</span><span class="method-args">(reg_exp)</span>
|
|
223
|
+
</a>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<div class="method-description">
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
<div id="validator-badges">
|
|
238
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
</body>
|
|
242
|
+
</html>
|