equal
deleted
inserted
replaced
29 def more() = s.length - i > 0 |
29 def more() = s.length - i > 0 |
30 |
30 |
31 def Regex() : Rexp = { |
31 def Regex() : Rexp = { |
32 val t = Term(); |
32 val t = Term(); |
33 if (more() && peek() == '|') { |
33 if (more() && peek() == '|') { |
34 eat ('|') ; |
34 eat ('|') ; |
35 val r = Regex(); |
35 ALT(t, Regex()) |
36 ALT(t, r) |
|
37 } |
36 } |
38 else t |
37 else t |
39 } |
38 } |
40 |
39 |
41 def Term() : Rexp = { |
40 def Term() : Rexp = { |
42 var f : Rexp = if (more() && peek() != ')' && peek() != '|') Factor() else ZERO; |
41 var f : Rexp = |
|
42 if (more() && peek() != ')' && peek() != '|') Factor() else ZERO; |
43 while (more() && peek() != ')' && peek() != '|') { |
43 while (more() && peek() != ')' && peek() != '|') { |
44 var nextf = Factor(); |
44 f = SEQ(f, Factor()) ; |
45 f = SEQ(f, nextf) ; |
|
46 } |
45 } |
47 |
46 |
48 f |
47 f |
49 } |
48 } |
50 |
49 |