EFL 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/EFL.rb +6 -5
- data/lib/EFL_regexp.rb +1 -1
- data/lib/ejemplar.txt +1 -0
- data/lib/pruebaEFL.rb +45 -0
- data/lib/salida2.txt +2 -0
- data/tests/Add_Sup_2.rb +3 -2
- data/tests/BeforeAfter.rb +5 -3
- data/tests/Minus.rb +3 -2
- data/tests/REVit.rb +3 -2
- data/tests/RenameTest.rb +2 -1
- data/tests/archAuxiliares/MatrizOut.java +1 -0
- data/tests/archAuxiliares/MatrizOut10.java +1 -0
- data/tests/archAuxiliares/MatrizOut11.java +1 -0
- data/tests/archAuxiliares/MatrizOut2.java +1 -0
- data/tests/archAuxiliares/MatrizOut3.java +1 -0
- data/tests/archAuxiliares/MatrizOut4.java +1 -0
- data/tests/archAuxiliares/MatrizOut5.java +1 -0
- data/tests/archAuxiliares/MatrizOut6.java +1 -0
- data/tests/archAuxiliares/MatrizOut7.java +1 -0
- data/tests/archAuxiliares/MatrizOut8.java +1 -0
- data/tests/archAuxiliares/MatrizOut9.java +1 -0
- data/tests/archAuxiliares/N1_OUT.txt +1 -0
- data/tests/archAuxiliares/N2_OUT.txt +1 -0
- data/tests/archAuxiliares/N3_OUT.txt +1 -0
- data/tests/archAuxiliares/N4_OUT.txt +1 -0
- data/tests/archAuxiliares/N5_OUT.txt +1 -0
- data/tests/archAuxiliares/N6_OUT.txt +1 -0
- data/tests/archAuxiliares/minus_out_1.txt +1 -0
- data/tests/archAuxiliares/p1.txt +1 -0
- data/tests/archAuxiliares/p2.txt +1 -0
- data/tests/archAuxiliares/s1.txt +1 -0
- metadata +5 -2
data/lib/EFL.rb
CHANGED
@@ -209,13 +209,14 @@ class Generator
|
|
209
209
|
end #mixGen
|
210
210
|
|
211
211
|
def replace(source_str, replace_list) #:nodoc:
|
212
|
-
|
212
|
+
source_str = "#{source_str} "
|
213
|
+
delta_length = 0
|
213
214
|
result_str = source_str.dup
|
214
215
|
replace_list.each { |rep|
|
215
|
-
text_without_the_quote_problem = @sub_hash[rep[2]].text.gsub(/"/, '\"')
|
216
|
-
|
216
|
+
text_without_the_quote_problem = @sub_hash[rep[2]].text.gsub(/"/, '\"')
|
217
|
+
str1 = result_str[0, rep[0] + delta_length]
|
217
218
|
str2 = result_str[rep[0] + delta_length, rep[1] - rep[0] +1]
|
218
|
-
str3 = result_str[rep[1] + 1 + delta_length, result_str.length
|
219
|
+
str3 = result_str[rep[1] + 1 + delta_length, result_str.length]
|
219
220
|
str2 =~ @sub_hash[rep[2]].reg_exp.zoom_list.last
|
220
221
|
str = ''
|
221
222
|
eval("str = " + '"' + text_without_the_quote_problem + '"')
|
@@ -226,7 +227,7 @@ class Generator
|
|
226
227
|
end
|
227
228
|
|
228
229
|
def mix_subs(sub_list, i_file) #:nodoc:
|
229
|
-
|
230
|
+
result = []
|
230
231
|
sub_list.each { |s|
|
231
232
|
begin
|
232
233
|
|
data/lib/EFL_regexp.rb
CHANGED
@@ -37,7 +37,7 @@ class Regexp
|
|
37
37
|
|
38
38
|
op1 = self.dup
|
39
39
|
if op1.minus_list && (op1.minus_list !=[]) then #due '-' has major precedence than '>', this error is detected here
|
40
|
-
raise "
|
40
|
+
raise "error minus"
|
41
41
|
end
|
42
42
|
if op1.zoom_list
|
43
43
|
op1.zoom_list = op1.zoom_list + op2.zoom_list
|
data/lib/ejemplar.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Esto es Eso es
|
data/lib/pruebaEFL.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'EFL'
|
2
|
+
|
3
|
+
class Uno < Generator
|
4
|
+
def initialize
|
5
|
+
super()
|
6
|
+
#~ gsub(/Estos/, 'ESTO', 's1')
|
7
|
+
#~ sub(/Eso/, 'XXX','s1')
|
8
|
+
|
9
|
+
before(/Esto/, '-ESTO-', 's1')
|
10
|
+
after(/Eso/, '-ESO-', 's2')
|
11
|
+
gbefore(/es/, '-ES-', 's3')
|
12
|
+
|
13
|
+
prod('ejemplar.txt', 'salida2.txt')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Dos < Generator
|
18
|
+
def initialize
|
19
|
+
super
|
20
|
+
sub(/es/, 'ES', 's1')
|
21
|
+
sub(/una/, 'UNA')
|
22
|
+
prod('ejemplar.txt', 'salida.txt')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Tres < Generator
|
27
|
+
def initialize
|
28
|
+
super
|
29
|
+
sub(/cosa/, 'COSA', 's1')
|
30
|
+
prod('ejemplar.txt', 'salida.txt')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class Cuatro < Generator
|
35
|
+
def initialize
|
36
|
+
super
|
37
|
+
sub(/COSA/, 'cosa', 's1')
|
38
|
+
# prod('ejemplar.txt', 'salida.txt')
|
39
|
+
prod('salida.txt', 'salida.txt')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
(Uno.new).gen
|
44
|
+
#~ (Uno.new + Dos.new + Tres.new).gen
|
45
|
+
#~ Cuatro.new.gen
|
data/lib/salida2.txt
ADDED
data/tests/Add_Sup_2.rb
CHANGED
@@ -12,12 +12,13 @@ require 'EFL'
|
|
12
12
|
def identicalFiles? (f1, f2)
|
13
13
|
result = false
|
14
14
|
File.open(f1) { |fi1|
|
15
|
-
|
15
|
+
content1 = fi1.read
|
16
16
|
File.open(f2) { |fi2|
|
17
17
|
content2 = fi2.read
|
18
|
-
result =
|
18
|
+
result = (content1.strip == content2.strip)
|
19
19
|
}
|
20
20
|
}
|
21
|
+
return result
|
21
22
|
end #identicalFiles
|
22
23
|
|
23
24
|
class Gen < Test::Unit::TestCase
|
data/tests/BeforeAfter.rb
CHANGED
@@ -10,12 +10,13 @@ require "EFL"
|
|
10
10
|
def identicalFiles? (f1, f2)
|
11
11
|
result = false
|
12
12
|
File.open(f1) { |fi1|
|
13
|
-
|
13
|
+
content1 = fi1.read
|
14
14
|
File.open(f2) { |fi2|
|
15
15
|
content2 = fi2.read
|
16
|
-
result =
|
16
|
+
result = (content1.strip == content2.strip)
|
17
17
|
}
|
18
18
|
}
|
19
|
+
return result
|
19
20
|
end #identicalFiles
|
20
21
|
|
21
22
|
|
@@ -50,7 +51,8 @@ class BeforeAfter < Test::Unit::TestCase
|
|
50
51
|
(g1+g2+g3).gen
|
51
52
|
assert( identicalFiles?('archAuxiliares/Matriz_3.java', 'archAuxiliares/MatrizOut3.java') )
|
52
53
|
end
|
53
|
-
|
54
|
+
|
55
|
+
def test_2
|
54
56
|
g1 = generator {
|
55
57
|
reg_exp_str_1 = nested_symbols( '{' , '}' ).to_s
|
56
58
|
reg_exp_str_2 = nested_symbols( '(' , ')' ).to_s
|
data/tests/Minus.rb
CHANGED
@@ -10,12 +10,13 @@ require "EFL"
|
|
10
10
|
def identicalFiles? (f1, f2)
|
11
11
|
result = false
|
12
12
|
File.open(f1) { |fi1|
|
13
|
-
|
13
|
+
content1 = fi1.read
|
14
14
|
File.open(f2) { |fi2|
|
15
15
|
content2 = fi2.read
|
16
|
-
result =
|
16
|
+
result = (content1.strip == content2.strip)
|
17
17
|
}
|
18
18
|
}
|
19
|
+
return result
|
19
20
|
end #identicalFiles
|
20
21
|
|
21
22
|
class Minus < Test::Unit::TestCase
|
data/tests/REVit.rb
CHANGED
@@ -10,12 +10,13 @@ require "EFL"
|
|
10
10
|
def identicalFiles? (f1, f2)
|
11
11
|
result = false
|
12
12
|
File.open(f1) { |fi1|
|
13
|
-
|
13
|
+
content1 = fi1.read
|
14
14
|
File.open(f2) { |fi2|
|
15
15
|
content2 = fi2.read
|
16
|
-
result =
|
16
|
+
result = (content1.strip == content2.strip)
|
17
17
|
}
|
18
18
|
}
|
19
|
+
return result
|
19
20
|
end #identicalFiles
|
20
21
|
|
21
22
|
|
data/tests/RenameTest.rb
CHANGED
@@ -13,9 +13,10 @@ def identicalFiles? (f1, f2)
|
|
13
13
|
content1 = fi1.read
|
14
14
|
File.open(f2) { |fi2|
|
15
15
|
content2 = fi2.read
|
16
|
-
result = content1 == content2
|
16
|
+
result = (content1.strip == content2.strip)
|
17
17
|
}
|
18
18
|
}
|
19
|
+
return result
|
19
20
|
end #identicalFiles
|
20
21
|
|
21
22
|
class Rename < Test::Unit::TestCase
|
data/tests/archAuxiliares/p1.txt
CHANGED
data/tests/archAuxiliares/p2.txt
CHANGED
data/tests/archAuxiliares/s1.txt
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: EFL
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date:
|
6
|
+
version: 1.0.2
|
7
|
+
date: 2009-04-15 00:00:00 +02:00
|
8
8
|
summary: A Ruby implementation of the Exemplar Flexibilization Language
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -87,9 +87,12 @@ files:
|
|
87
87
|
- lib/EFL_regexp_generator.rb
|
88
88
|
- lib/EFL_substitution.rb
|
89
89
|
- lib/EFL_syntactic_sugar.rb
|
90
|
+
- lib/ejemplar.txt
|
90
91
|
- lib/Hash Doc.doc
|
91
92
|
- lib/lib.zip
|
92
93
|
- lib/Limitaciones.txt
|
94
|
+
- lib/pruebaEFL.rb
|
95
|
+
- lib/salida2.txt
|
93
96
|
- tests/Add_Sup_1.rb
|
94
97
|
- tests/Add_Sup_1.rb.bak
|
95
98
|
- tests/Add_Sup_1_NI.rb
|