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

Kam*_*i81 11 ruby

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

下面的页面完全混淆了我导致它显示了包含所有关键字的对象,但是这不是所有类使用的官方Object,这是不是从不同的类中混合了?

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

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

Mic*_*ohl 23

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

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
        ;
Run Code Online (Sandbox Code Playgroud)

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

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

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