Ruby中定义的关键字在哪里?

我正在查看Ruby文档,我想知道如果一切都是对象,那么’关键字’也是对象,对吗? 如果是这样,他们在ruby中定义了什么?

下面的页面让我很困惑,因为它显示了包含所有关键字的对象,但是这不是所有类使用的官方对象,这是不是从不同的类中混合了?

http://ruby-doc.org/docs/keywords/1.9/Object.html

我猜上面有很多问题,主要的问题是:ruby关键字如何进入ruby?

关键字不是对象,而是在解析器中定义,可以在Ruby源代码中的parse.y中找到。 这是该文件的相关部分:

 reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__ | keyword_BEGIN | keyword_END | keyword_alias | keyword_and | keyword_begin | keyword_break | keyword_case | keyword_class | keyword_def | keyword_defined | keyword_do | keyword_else | keyword_elsif | keyword_end | keyword_ensure | keyword_false | keyword_for | keyword_in | keyword_module | keyword_next | keyword_nil | keyword_not | keyword_or | keyword_redo | keyword_rescue | keyword_retry | keyword_return | keyword_self | keyword_super | keyword_then | keyword_true | keyword_undef | keyword_when | keyword_yield | keyword_if | keyword_unless | keyword_while | keyword_until ; 

如果您想了解有关Ruby解析器的更多信息,请查看来自RubyConf 2009的Hacking parse.y或来自Ruby Kaigi 2011的Parse.y famtour的演示文稿。

此外,在内核模块中定义了许多可用的方法(例如puts )。

编辑: 文档中还有一个关键词列表 ,感谢@antinome指出这一点。