summaryrefslogtreecommitdiff
path: root/etc/token_class_hierarchy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'etc/token_class_hierarchy.rb')
-rw-r--r--etc/token_class_hierarchy.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/etc/token_class_hierarchy.rb b/etc/token_class_hierarchy.rb
new file mode 100644
index 0000000..4dc3f1f
--- /dev/null
+++ b/etc/token_class_hierarchy.rb
@@ -0,0 +1,22 @@
+class TokenClass
+ def self.const_missing name
+ const_set name, Class.new(self)
+ end
+ def self.method_missing name, &block
+ clas = const_missing name
+ if block
+ clas.instance_eval(&block)
+ end
+ end
+end
+
+class Comment < TokenClass
+ Multiline
+ class Shebang < self
+ Foo
+ end
+end
+
+p Comment::Blubb::Bla <= Comment::Blubb
+
+ObjectSpace.each_object(Class) { |o| p o if o < TokenClass } \ No newline at end of file