ひらメソッドで読むJDT

JDT(EclipseJavaコンパイラ) はどれくらい苦労して実装されているのかを調べたくなったので,ソースを読むことにした.

package org.eclipse.jdt.internal.compiler.ast; の頭から開始

AbstractMethodDeclaration.java

public abstract class AbstractMethodDeclaration
	extends ASTNode

いきなりASTNode という未探索のクラス発見

ASTNode.java

public abstract class ASTNode implements TypeConstants, TypeIds {

次にTypeConstans と TypeIds を発見

TypeConstants.java

public interface TypeConstants {
...
}

読了

TypeIds.java

public interface TypeIds {
...
}

この2つには,いろんな型の定数があるけど.java.io のクラスまで入っているのはどういうことだろう(java.lang.配下ならともかく)

ASTNode.java

に戻ってきた.

  ...
	private static int checkInvocationArgument(
BlockScope scope, Expression argument, TypeBinding parameterType, 
TypeBinding argumentType, TypeBinding originalParameterType) {

BlockScope.java

public class BlockScope extends Scope {

Scope.java

	public static int compareTypes(TypeBinding left, TypeBinding right) {

えーと,ここまで.

たまにインデントがずれているところがあるが,ここは自動生成されているのか..?

よく見たら,ひらメソッド

関数単位でWikiにメモを残しながら,ボトムアップに読み進める.

と書いてある.関数...オブジェクト指向言語にはメソッドしかないけど,この読み方は向いているのかな?なんか新しい型があるたびに他のクラスに飛ばされるのでせわしない.まあ,順序を考えずに読めるのがいいのか.