CRubyでは、compile.c 内の、iseq_compile_each 関数で、
AST(抽象構文木)を、Ruby仮想マシン用の中間コードに、
コンパイルするのだが、

ASTノードの種類によって分岐する、
switch文は数千行もある

switch (ASTノードの種類){ }

「Rubyのしくみ」という本を参照