キーワードはオブジェクトではなく、Rubyソースのparse.y
にあるパーサーで定義されています。ここでは、そのファイルから該当部分です:あなたは、2011年
またルビーKaigiからRubyConf 2009またはParse.y famtourからプレゼンテーションHacking 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
;
どこでも利用可能な方法(例えば、puts
)は、Kernelモジュールで定義されています。
EDIT:list of key words in the documentationもあります。ありがとうございました@antinomeを指摘してください。
この意味で「すべてが対象」と考えると、それは真実ではありません。キーワードはオブジェクトではありません。そして私が最初に混乱させたものではない別のものはブロックです。ブロックはオブジェクトでもありません。 – sawa