|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.ObjectTopLevelClass
public class TopLevelClass
¬<><∪∪ (notavaCC) 1.0.3 によって出力された構文表現です。通常 GPL にしたがってライセンスされます。
このクラスの完全限定名は、ParserDeclarationで指定されます。このクラスは、ParserDeclarationが$protected
と指定されていればデフォルトスコープ(パッケージスコープ)、そうでなければpublic
になります。
--target オプションの値が 1.4 より小さい場合、CharSequence
の代わりに StringBuffer
が、AssertionError
の代わりに RuntimeException
が使用されます。
メソッド
parseType(java.io.File, java.lang.String)
はテキストを構文解析し、抽象構文木を出力します。
ツリーのノードは、TopLevelClass.Node
のサブタイプのインスタンスになります。
このクラス、およびネストしたクラスは、同期化されません。
入れ子のクラスの概要 | |
---|---|
static interface |
TopLevelClass.Default
デフォルトの実装を保持する名前空間です。 |
static class |
TopLevelClass.LexicalAnalyzer
TopLevelClass.Token の列を生成するオブジェクト。 |
static interface |
TopLevelClass.Node
構文解析の結果として得られる抽象構文木のノード。 |
protected static class |
TopLevelClass.NodeInitializationParameters
ノードの構築に必要な情報を private なフィールドで保持するオブジェクト。 |
static class |
TopLevelClass.ParseException
解析対象のテキストが、何らかの誤りを持っていることをあらわします。 |
static interface |
TopLevelClass.Token
トークン(構文解析対象のテキストの断片)。 |
static interface |
TopLevelClass.Type
抽象構文木のノード Type . |
static class |
TopLevelClass.Visitor
ツリーをトラバースしながら何らかの処理を行うオブジェクト。 |
フィールドの概要 | |
---|---|
static int |
EOF_TOKEN
EOF をあらわします. |
static int |
TOKEN_TERMINAL
終端記号 TERMINAL をあらわします。 |
コンストラクタの概要 | |
---|---|
TopLevelClass()
パーザを構築します。 |
メソッドの概要 | |
---|---|
protected TopLevelClass.LexicalAnalyzer |
createLexicalAnalyzer(java.lang.String sourceName,
java.lang.CharSequence text,
int tabStop)
字句解析器を構築します。 |
protected TopLevelClass.Node |
createNode(int symbolID,
TopLevelClass.NodeInitializationParameters parameters)
抽象構文木のノードを構築します。 |
protected TopLevelClass.Default.Node |
createNode(int symbolID,
TopLevelClass.NodeInitializationParameters parameters,
boolean compact)
抽象構文木のノードを構築します。 |
static void |
main(java.lang.String[] args)
引数に渡されたファイルをパーズし、構文木を出力します(サンプルプログラム)。 |
protected TopLevelClass.Node |
modifyWholeTree(TopLevelClass.Node root)
構文木全体が構築されたときに呼び出され、構文木を編集することができます。 |
TopLevelClass.Type |
parseType(java.io.File file,
java.lang.String charsetName)
ファイルに含まれる Type を構文解析します。 |
TopLevelClass.Type |
parseType(java.lang.String sourceName,
java.lang.CharSequence text,
int tabStop)
java.lang.CharSequence に含まれる Type を構文解析します。 |
TopLevelClass.Type |
parseType(java.lang.String sourceName,
java.io.File file,
java.lang.String charsetName,
int tabStop)
ファイルに含まれる Type を構文解析します。 |
TopLevelClass.Type |
parseType(java.lang.String sourceName,
java.io.Reader reader,
int tabStop)
文字ストリームに含まれる Type を構文解析します。 |
TopLevelClass.Type |
parseType(TopLevelClass.LexicalAnalyzer analyzer)
字句解析器が出力するトークンの列を構文解析します。 |
protected java.lang.CharSequence |
toCharSequence(java.io.File file,
java.lang.String charsetName)
ファイルに格納されている文字列を表す java.lang.CharSequence を得ます。 |
protected java.lang.CharSequence |
toCharSequence(java.io.Reader reader)
文字ストリームから得られる文字列を表す java.lang.CharSequence を得ます。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final int EOF_TOKEN
TopLevelClass.Token.getSymbolID()
,
public static final int TOKEN_TERMINAL
TERMINAL
をあらわします。
このフィールドは、TokenDefinition で定義された終端記号ごとに1つずつ出力されます。TERMINAL
は IDENITIFIER で与えられる名前です。
TopLevelClass.Token.getSymbolID()
,
コンストラクタの詳細 |
---|
public TopLevelClass()
メソッドの詳細 |
---|
protected TopLevelClass.Node createNode(int symbolID, TopLevelClass.NodeInitializationParameters parameters) throws TopLevelClass.ParseException
このメソッドは、引数で与えられた情報からノードを構築するファクトリーメソッドです。このメソッドをオーバーライドすることで、ノードの構築をカスタマイズすることができます。
構築すべきノードの型が、symbolID
によって、次のように指定されます。
symbolID | type to create |
---|---|
TopLevelClass.Type.ID |
TopLevelClass.Type |
このメソッドのデフォルトの実装は、createNode(symbolID, parameters, false)
と等価です。
symbolID
- 構築すべきノードの型。parameters
- ノード構築するのに必要な情報。
TopLevelClass.ParseException
- 構文解析対象のテキストが、満たすべき何らかの条件を満たしていない場合。protected final TopLevelClass.Default.Node createNode(int symbolID, TopLevelClass.NodeInitializationParameters parameters, boolean compact)
TopLevelClass.Default
に含まれるクラス(TopLevelClass.Default.Node
のサブクラス)のインスタンスです。
symbolID
- 構築すべきノードの型。createNode(int, TopLevelClass.NodeInitializationParameters)
を参照。parameters
- ノード構築するのに必要な情報。compact
- ラベル付けされたノードだけを子に持つノードを構築するかどうか。このメソッドは parameters
で指定された子を持つノードを構築しますが、compact == true
の場合、その際にラベル付けされていないノードを除外します。
protected TopLevelClass.Node modifyWholeTree(TopLevelClass.Node root) throws TopLevelClass.ParseException
root
- createNode(int, TopLevelClass.NodeInitializationParameters)
によって作られた構文木の根。
TopLevelClass.ParseException
protected final java.lang.CharSequence toCharSequence(java.io.File file, java.lang.String charsetName) throws java.io.IOException
java.lang.CharSequence
を得ます。
file
- ファイル。charsetName
- 文字セットの名前。デフォルトの文字セットを指定する場合 null
。
java.lang.CharSequence
。
java.io.IOException
- ファイルへのアクセス中にエラーが発生した場合。protected final java.lang.CharSequence toCharSequence(java.io.Reader reader) throws java.io.IOException
java.lang.CharSequence
を得ます。
このメソッドは、文字ストリームの終端に達するまで文字列を読み出し、その文字列をあらわす java.lang.CharSequence
を返します。
reader
- 文字ストリーム。このストリームは close()
されません。
java.lang.CharSequence
。
java.io.IOException
- 文字ストリームへのアクセス中にエラーが発生した場合。protected TopLevelClass.LexicalAnalyzer createLexicalAnalyzer(java.lang.String sourceName, java.lang.CharSequence text, int tabStop) throws TopLevelClass.ParseException
このメソッドは、字句解析器を構築するファクトリーメソッドです。このメソッドをオーバーライドすることで、字句解析をカスタマイズすることができます。
sourceName
- 解析すべきテキストの名前。これは、TopLevelClass.Token.getSourceName()
の戻り値を設定するためだけに使用されます。text
- 解析すべきテキスト。tabStop
- テキスト中で、タブ文字に対して何文字ごとの位置に移動すべきか。これは、TopLevelClass.Token.getColumn()
の戻り値を設定するためだけに使用されます。
TopLevelClass.ParseException
- 構文解析対象のテキストが、満たすべき何らかの条件を満たしていない場合。public TopLevelClass.Type parseType(java.io.File file, java.lang.String charsetName) throws java.io.IOException, TopLevelClass.ParseException
Type
を構文解析します。
ファイルに含まれるテキストを、非終端記号 Type
をゴール記号(開始記号)とする文法に基づき構文解析します。
このメソッドは、$parsable
な非終端記号 Type
に対して出力されます。Type
が $parsable-protected
の場合、このメソッドは protected
になります
このメソッドの呼び出しは、parseType(file.getPath(), file, charsetName, 8)
の呼び出しと等価です。
file
- 構文解析対象のテキストを含むファイル。charsetName
- 文字セットの名前。デフォルトの文字セットを指定する場合 null
。
java.io.IOException
- フェイルへのアクセス中にエラーが発生した場合。
TopLevelClass.ParseException
- ファイルに含まれるテキストが、満たすべき条件を満たしていなかった場合。public TopLevelClass.Type parseType(java.lang.String sourceName, java.io.File file, java.lang.String charsetName, int tabStop) throws java.io.IOException, TopLevelClass.ParseException
Type
を構文解析します。
ファイルに含まれるテキストを、非終端記号 Type
をゴール記号(開始記号)とする文法に基づき構文解析します。
このメソッドは、$parsable
な非終端記号 Type
に対して出力されます。Type
が $parsable-protected
の場合、このメソッドは protected
になります
sourceName
- 解析すべきテキストの名前。これは、TopLevelClass.Token.getSourceName()
の戻り値を設定するためだけに使用されます。file
- 構文解析対象のテキストを含むファイル。charsetName
- 文字セットの名前。デフォルトの文字セットを指定する場合 null
。tabStop
- テキスト中で、タブ文字に対して何文字ごとの位置に移動すべきか。これは、TopLevelClass.Token.getColumn()
の戻り値を設定するためだけに使用されます。
java.io.IOException
- フェイルへのアクセス中にエラーが発生した場合。
TopLevelClass.ParseException
- ファイルに含まれるテキストが、満たすべき条件を満たしていなかった場合。public TopLevelClass.Type parseType(java.lang.String sourceName, java.io.Reader reader, int tabStop) throws java.io.IOException, TopLevelClass.ParseException
Type
を構文解析します。
文字ストリームの終端に達するまで文字列を読み出し、その文字列を 非終端記号 Type
をゴール記号(開始記号)とする文法に基づき構文解析します。
このメソッドは、$parsable
な非終端記号 Type
に対して出力されます。Type
が $parsable-protected
の場合、このメソッドは protected
になります
sourceName
- 解析すべきテキストの名前。これは、TopLevelClass.Token.getSourceName()
の戻り値を設定するためだけに使用されます。reader
- 解析すべきテキストを含む文字ストリーム。このストリームは close()
されません。tabStop
- テキスト中で、タブ文字に対して何文字ごとの位置に移動すべきか。これは、TopLevelClass.Token.getColumn()
の戻り値を設定するためだけに使用されます。
java.io.IOException
- 文字ストリームへのアクセス中にエラーが発生した場合。
TopLevelClass.ParseException
- 文字ストリームに含まれるテキストが、満たすべき条件を満たしていなかった場合。public TopLevelClass.Type parseType(java.lang.String sourceName, java.lang.CharSequence text, int tabStop) throws TopLevelClass.ParseException
java.lang.CharSequence
に含まれる Type
を構文解析します。
java.lang.CharSequence
を 非終端記号 Type
をゴール記号(開始記号)とする文法に基づき構文解析します。
このメソッドは、$parsable
な非終端記号 Type
に対して出力されます。Type
が $parsable-protected
の場合、このメソッドは protected
になります
sourceName
- 解析すべきテキストの名前。これは、TopLevelClass.Token.getSourceName()
の戻り値を設定するためだけに使用されます。text
- 解析すべきテキストを含む java.lang.CharSequence
。tabStop
- テキスト中で、タブ文字に対して何文字ごとの位置に移動すべきか。これは、TopLevelClass.Token.getColumn()
の戻り値を設定するためだけに使用されます。
TopLevelClass.ParseException
- text
に含まれるテキストが、満たすべき条件を満たしていなかった場合。public TopLevelClass.Type parseType(TopLevelClass.LexicalAnalyzer analyzer) throws TopLevelClass.ParseException
字句解析器が出力するトークンの列を 非終端記号 Type
をゴール記号(開始記号)とする文法に基づき構文解析します。
このメソッドは、$parsable
な非終端記号 Type
に対して出力されます。Type
が $parsable-protected
の場合、このメソッドは protected
になります
analyzer
- トークンの列を与える字句解析器
TopLevelClass.ParseException
- text
に含まれるテキストが、満たすべき条件を満たしていなかった場合。public static void main(java.lang.String[] args)
このメソッドは、$parsable
な非終端記号が1つ存在する場合にだけ出力されます。このメソッドの仕様は、将来のバージョンでは変更になる可能性があります。
args
- 解析対象のファイルの名前
|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |