全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.io.StreamTokenizer
StreamTokenizer クラスは入力ストリームを取ってこれを 「トークン」 に解析し、一度に 1 つのトークンを読めるようにします。解析処理は、様々な状態に設定可能な多くのフラグと 1 つのテーブルで制御します。ストリーム tokenizer は、識別子、数、引用文字列、および各種のコメントスタイルを認識できます。
 
入力ストリームから読み込まれる各バイトは、'\u0000' から '\u00FF' の範囲の文字と見なされます。この文字値を使って、文字の 5 つの属性を検索します。つまり、空白、英字、数値、 引用文字列、およびコメント文字です。各文字は、これらの属性を持たないことも、複数持つこともできます。
 
さらに、インスタンスには 4 つのフラグがあります。これらのフラグが示す内容は次のとおりです。
一般的なアプリケーションは、最初にこのクラスのインスタンスを構築してから、構文テーブルを設定し、その後で各反復ループ内で nextToken メソッドを呼び出して、値 TT_EOF が返るまでこのループを繰り返します。
 
 nval
	nval
   sval
	sval
   TT_EOF
	TT_EOF
   TT_EOL
	TT_EOL
   TT_NUMBER
	TT_NUMBER
   TT_WORD
	TT_WORD
   ttype
	ttype
  nextToken メソッドを呼び出したあとで、このフィールドには読み込んだばかりのトークンの型が入る。
 
 StreamTokenizer(InputStream)
	StreamTokenizer(InputStream)
   StreamTokenizer(Reader)
	StreamTokenizer(Reader)
   
 commentChar(int)
	commentChar(int)
   eolIsSignificant(boolean)
	eolIsSignificant(boolean)
   lineno()
	lineno()
   lowerCaseMode(boolean)
	lowerCaseMode(boolean)
   nextToken()
	nextToken()
   ordinaryChar(int)
	ordinaryChar(int)
   ordinaryChars(int, int)
	ordinaryChars(int, int)
  low <= c <= high の範囲内のすべての文字 c が、この tokenizer の 「通常」 であることを指定する。
   parseNumbers()
	parseNumbers()
   pushBack()
	pushBack()
  nextToken メソッドの次の呼び出しが、ttype フィールドの現行値を返し、nval または sval フィールド内の値は変更しないようにする。
   quoteChar(int)
	quoteChar(int)
   resetSyntax()
	resetSyntax()
  ordinaryChar メソッドを参照。
   slashSlashComments(boolean)
	slashSlashComments(boolean)
   slashStarComments(boolean)
	slashStarComments(boolean)
   toString()
	toString()
   whitespaceChars(int, int)
	whitespaceChars(int, int)
  low <= c <= high の範囲内のすべての文字  c が空白文字であると指定する。
   wordChars(int, int)
	wordChars(int, int)
  low <= c <= high 範囲内のすべての文字 c が、ワード構成成分であると指定する。
 
 ttype
ttype
public int ttype
nextToken メソッドを呼び出したあとで、このフィールドには読み込まれたばかりのトークンの型が入ります。単一トークンの場合、値は整数に変換された単一文字です。
引用文字列トークンの場合、その値は引用文字です。それ以外のものは、次のどれか 1 つの値になります。 
 TT_WORD は、トークンがワードであることを示す。
 TT_NUMBER は、トークンが数値であることを示す。
 TT_EOL は、行の終わりに達したことを示す。
フィールドにこの値が入るのは、引数 true を用いて eolIsSignificant メソッドが呼び出された場合だけである。
 TT_EOF は、入力ストリームの終わりに達したことを示す。
 
 TT_EOF
TT_EOF
public static final int TT_EOF
 TT_EOL
TT_EOL
public static final int TT_EOL
 TT_NUMBER
TT_NUMBER
public static final int TT_NUMBER
 TT_WORD
TT_WORD
public static final int TT_WORD
 sval
sval
public String sval
ttype フィールドの値が TT_WORD のとき、現在のトークンはワードです。ttype フィールドの値が引用文字のとき、現在のトークンは引用文字列トークンです。
 nval
nval
public double nval
ttypeフィールドが TT_NUMBER のとき、現在のトークンは数値です。 
 
 StreamTokenizer
StreamTokenizer
public StreamTokenizer(InputStream is)
Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r);
'A' から 'Z'、'a' から 'z'、および '\u00A0' から '\u00FF' のバイト値はすべて英字と見なす。
 '\u0000' から '\u0020' のバイト値はすべて空白と見なす。
 '/' はコメント文字。
 '\'' と二重引用符 '"' は文字列の引用文字。
 
 StreamTokenizer
StreamTokenizer
public StreamTokenizer(Reader r)
 
 resetSyntax
resetSyntax
public void resetSyntax()
ordinaryChar メソッドを参照してください。
 wordChars
wordChars
  public void wordChars(int low,
                        int hi)
low <= c <= high の範囲内のすべての 文字  c がワード文字であることを指定します。ワードトークンは、ワード構成成分の後にゼロ個以上のワード構成成分または数値構成成分が続いたものです。
 whitespaceChars
whitespaceChars
  public void whitespaceChars(int low,
                              int hi)
low <= c <= high の範囲内のすべての文字 c が、空白文字であると指定します。空白文字の機能は、入力ストリーム内でトークンを区切るだけです。
 ordinaryChars
ordinaryChars
  public void ordinaryChars(int low,
                            int hi)
low <= c <= high の範囲内のすべての文字  c が、この tokenizer の 「通常」であると指定します。通常文字の詳細情報は、ordinaryChar メソッドを参照してください。
 ordinaryChar
ordinaryChar
public void ordinaryChar(int ch)
ttype フィールドに文字の値を設定します。
 commentChar
commentChar
public void commentChar(int ch)
 quoteChar
quoteChar
public void quoteChar(int ch)
nextToken メソッドが文字列定数を見つけると、ttype フィールドには文字列区切り文字が設定され、sval フィールドには文字列の本体が設定されます。
 
文字列の引用文字が見つかると、文字列の構成は次のように認識されます。文字列の引用文字 (これは含まない) の後に続くすべての文字、同じ文字列の引用文字の次の出現場所 (これは含まない) までのすべての文字、または行終端子、またはファイルの終わり。通常の ESC シーケンス (例えば "\n" や "\t" など) は認識され、文字列の解析時に単一文字に変換されます。
 parseNumbers
parseNumbers
public void parseNumbers()
      0 1 2 3 4 5 6 7 8 9 . -
 が 「数値」 属性を持ちます。
解析プログラムは、形式が倍精度の浮動小数点数のワードトークンを見つけると、ttype フィールドに値 TT_NUMBER を設定し、トークンの数値を nval フィールドに入れて、このトークンをワードではなく数値として扱います。
 eolIsSignificant
eolIsSignificant
public void eolIsSignificant(boolean flag)
nextToken メソッドは TT_EOL を返し、ttype フィールドにこの値を設定します。
 
行は、復帰文字 ('\r') または改行文字 ('\n') で終わる一連の文字です。また、直後に改行文字が続く復帰文字は、単一の行の終わりトークンとして処理されます。
 
flag が false の場合、行の終わり文字は空白として扱われ、その機能はトークンを区切るだけです。
true は、行の終わり文字が独立したトークンであることを示す。false は、行の終わり文字が空白であることを示す。
     slashStarComments
slashStarComments
public void slashStarComments(boolean flag)
true の場合、このストリーム tokenizer は C スタイルのコメントを認識します。 /* と */ の間のテキストはすべて、破棄されます。 
 
 flag 引数が false の場合、C スタイルのコメントは特に処理されません。
true は、C スタイルのコメントを認識して無視することを示す。
   slashSlashComments
slashSlashComments
public void slashSlashComments(boolean flag)
true の場合、このストリーム tokenizer は C++ スタイルのコメントを認識します。スラッシュ文字 ('/') が 2 つ続く場合、これは行の終わりまで続くコメントの始まりを意味します。 
 
 flag 引数が false の場合、C++ スタイルのコメントは特に処理されません。
true は、C++ スタイルのコメントを認識して無視することを示す。
   lowerCaseMode
lowerCaseMode
public void lowerCaseMode(boolean fl)
true の場合、ワードトークンが返されるたびに sval フィールドの値が小文字にされます。ttype フィールドが持つ値 TT_WORD は、この tokenizer の nextToken メソッドからのものです。
 
 flag 引数が false の場合、sval フィールドは変りません。
true は、すべてのワードトークンを小文字にすることを示す。
     nextToken
nextToken
public int nextToken() throws IOException
ttype フィールドに返されます。トークンに関する補足情報は、 この tokenizer の nval フィールドまたは sval フィールドにあります。
 このクラスの一般的なクライアントは、まず最初に構文テーブルを設定してから nextToken を呼び出すループに入り、TT_EOF が返されるまでトークンを順次解析します。
ttype フィールドの値
     pushBack
pushBack
public void pushBack()
nextToken メソッド呼び出しで ttype フィールドの現行値を返し、nval または sval フィールドの値は変更しないようにします。
 lineno
lineno
public int lineno()
 toString
toString
public String toString()
ttype, nval, および sval フィールドが指定したトークンの文字列表示
    全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス