summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/lib/eregex.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/lib/eregex.rb')
-rw-r--r--ruby_1_8_6/lib/eregex.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/ruby_1_8_6/lib/eregex.rb b/ruby_1_8_6/lib/eregex.rb
new file mode 100644
index 0000000000..cc7a7f6f46
--- /dev/null
+++ b/ruby_1_8_6/lib/eregex.rb
@@ -0,0 +1,37 @@
+# this is just a proof of concept toy.
+
+class RegOr
+ def initialize(re1, re2)
+ @re1 = re1
+ @re2 = re2
+ end
+
+ def =~ (str)
+ @re1 =~ str or @re2 =~ str
+ end
+end
+
+class RegAnd
+ def initialize(re1, re2)
+ @re1 = re1
+ @re2 = re2
+ end
+
+ def =~ (str)
+ @re1 =~ str and @re2 =~ str
+ end
+end
+
+class Regexp
+ def |(other)
+ RegOr.new(self, other)
+ end
+ def &(other)
+ RegAnd.new(self, other)
+ end
+end
+
+if __FILE__ == $0
+ p "abc" =~ /b/|/c/
+ p "abc" =~ /b/&/c/
+end