From 88a7c8532f3f86206c25c40b81fc2e25f6ae2593 Mon Sep 17 00:00:00 2001 From: murphy Date: Wed, 20 Jan 2010 03:19:23 +0000 Subject: Experiments with token classes. --- etc/token_class_hierarchy.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 etc/token_class_hierarchy.rb (limited to 'etc/token_class_hierarchy.rb') 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 -- cgit v1.2.1