|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Object java.io.StreamTokenizer
public class StreamTokenizer
StreamTokenizer
클래스는, 입력 스트림을 인수에 취해, 그것을 「토큰」에 구문 분석 해, 한 번에 1 개의 토큰을 읽을 수 있도록(듯이) 합니다. 구문 분석 처리는, 다양한 상태로 설정 가능한 몇개의 플래그와 1 개의 테이블에 의해 제어됩니다. 스트림토크나이자는, 식별자, 수치, 인용 캐릭터 라인, 및 각종의 코멘트 스타일을 인식할 수 있습니다.
입력 스트림로부터 읽히는 각 바이트는,'\u0000'
~ '\u00FF'
의 범위의 문자로 간주해집니다. 이 문자치를 사용해, 문자의 5 개의 속성, 즉, 「공백」, 「영문자」, 「수치」, 「인용 캐릭터 라인」, 및 「코멘트 문자」를 검색합니다. 각 문자는, 이러한 속성을 가지지 않는 것도, 복수 가질 수도 있습니다.
게다가 인스턴스에는 4 개의 플래그가 있습니다. 이러한 플래그가 가리키는 내용은 다음과 같습니다.
일반적인 어플리케이션은, 최초로 이 클래스의 인스턴스를 생성하고 나서, 구문 테이블을 설정해, 그 후에 루프의 각 반복내에서 nextToken
메소드를 호출해, 값 TT_EOF
가 돌려주어질 때까지 이 루프를 반복합니다.
nextToken()
,
TT_EOF
필드의 개요 | |
---|---|
double |
nval
현재의 토큰이 수치의 경우, 이 필드에는 그 수치가 들어갑니다. |
String |
sval
현재의 토큰이 워드 토큰의 경우, 이 필드에는, 워드 토큰의 문자를 나타내는 캐릭터 라인이 들어갑니다. |
static int |
TT_EOF
스트림의 마지막이 읽힌 것을 나타내는 정수입니다. |
static int |
TT_EOL
행의 마지막이 읽힌 것을 나타내는 정수입니다. |
static int |
TT_NUMBER
수치 토큰이 읽힌 것을 나타내는 정수입니다. |
static int |
TT_WORD
워드 토큰이 읽힌 것을 나타내는 정수입니다. |
int |
ttype
nextToken 메소드의 호출뒤, 이 필드에는 읽힌지 얼마 안된 토큰의 형태가 들어갑니다. |
생성자 의 개요 | |
---|---|
StreamTokenizer (InputStream is)
추천 되고 있지 않습니다. JDK 1.1 현재, 입력 스트림을 토큰화하려면 , 다음과 같이 해 입력 스트림을 문자 스트림로 변환할 방법이 적절합니다. Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r); |
|
StreamTokenizer (Reader r)
지정된 문자 스트림을 구문 분석 하는 토크나이자를 작성합니다. |
메소드의 개요 | |
---|---|
void |
commentChar (int ch)
인수로 지정된 문자 이후는, 1 행의 코멘트행인 것을 지정합니다. |
void |
eolIsSignificant (boolean flag)
행의 마지막을 토큰으로서 처리할지 어떨지를 판별합니다. |
int |
lineno ()
현재의 행 번호를 돌려줍니다. |
void |
lowerCaseMode (boolean fl)
워드 토큰을 자동적으로 소문자로 할지 어떨지를 판별합니다. |
int |
nextToken ()
이 토크나이자의 입력 스트림의 다음의 토큰을 구문 분석 합니다. |
void |
ordinaryChar (int ch)
문자 인수가 이 토크나이자의 「일반적으로」문자인 것을 지정합니다. |
void |
ordinaryChars (int low,
int hi)
low <= c <= high 의 범위내의 모든 문자 c 가, 이 토크나이자의 「일반적으로」문자인 것을 지정합니다. |
void |
parseNumbers ()
이 토크나이자로 수치를 구문 분석 하도록(듯이) 지정합니다. |
void |
pushBack ()
이 토크나이자의 다음의 nextToken 메소드 호출로 ttype 필드의 현행치를 돌려주어,nval 또는 sval 필드의 값은 변경하지 않게 합니다. |
void |
quoteChar (int ch)
이 문자에 일치하는 페어로, 이 토크나이자의 캐릭터 라인 정수를 단락짓도록(듯이) 지정합니다. |
void |
resetSyntax ()
이 토크나이자의 구문 테이블을 리셋 해, 모든 문자를 「일반적으로」문자로 합니다. |
void |
slashSlashComments (boolean flag)
토크나이자가 C++ 스타일의 코멘트를 인식할지 어떨지를 판별합니다. |
void |
slashStarComments (boolean flag)
토크나이자가 C 스타일의 코멘트를 인식할지 어떨지를 판별합니다. |
String |
toString ()
현재의 스트림 토큰의 캐릭터 라인 표현과 그것이 발생하는 행 번호를 돌려줍니다. |
void |
whitespaceChars (int low,
int hi)
low <= c <= high 의 범위내의 모든 문자 c 가 공백 문자인 것을 지정합니다. |
void |
wordChars (int low,
int hi)
low <= c <= high 의 범위내의 모든 문자 c 가 워드 원가요소인 것을 지정합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
필드의 상세 |
---|
public int ttype
nextToken
메소드의 호출뒤, 이 필드에는 읽힌지 얼마 안된 토큰의 형태가 들어갑니다. 단일 문자 토큰의 경우, 그 값은 정수에 변환된 단일 문자입니다. 인용 캐릭터 라인 토큰의 경우, 그 값은 인용 문자입니다. 그 이외의 경우는, 다음의 값의 어느 쪽인가에 됩니다.
TT_WORD
는, 토큰이 워드인 것을 나타냅니다.
TT_NUMBER
는, 토큰이 수치인 것을 나타냅니다.
TT_EOL
는, 행의 마지막에 이른 것을 나타냅니다. 필드에 이 값이 들어오는 것은, 인수에 true
를 지정해 eolIsSignificant
메소드가 불려 갔을 경우만입니다.
TT_EOF
는, 입력 스트림의 마지막에 이른 것을 나타냅니다.
이 필드의 초기치는 -4 입니다.
eolIsSignificant(boolean)
,
nextToken()
,
quoteChar(int)
,
TT_EOF
,
TT_EOL
,
TT_NUMBER
,
TT_WORD
public static final int TT_EOF
public static final int TT_EOL
public static final int TT_NUMBER
public static final int TT_WORD
public String sval
ttype
필드의 값이 TT_WORD
의 경우, 현재의 토큰은 워드입니다. ttype
필드의 값이 인용 문자의 경우, 현재의 토큰은 인용 캐릭터 라인 토큰입니다.
이 필드의 초기치는 null 입니다.
quoteChar(int)
,
TT_WORD
,
ttype
public double nval
ttype
필드가 TT_NUMBER
의 경우, 현재의 토큰은 수치입니다. 이 필드의 초기치는 0.0 입니다.
TT_NUMBER
,
ttype
생성자 의 상세 |
---|
@Deprecated public StreamTokenizer(InputStream is)
Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r);
'A'
~ 'Z'
,'a'
~ 'z'
, 및 '\u00A0'
~ '\u00FF'
의 바이트치는 모두 영문자로 간주한다
'\u0000'
~ '\u0020'
의 바이트치는 모두 공백으로 간주한다
'/'
는 코멘트 문자
'\''
와 이중 인용부호 '"'
는 캐릭터 라인의 인용 문자
is
- 입력 스트림BufferedReader
,
InputStreamReader
,
StreamTokenizer(java.io.Reader)
public StreamTokenizer(Reader r)
r
- 입력 스트림을 제공하는 Reader 객체메소드의 상세 |
---|
public void resetSyntax()
ordinaryChar
메소드를 참조해 주세요.
ordinaryChar(int)
public void wordChars(int low, int hi)
low <= c <= high
의 범위내의 모든 문자 c 가 워드 원가요소인 것을 지정합니다. 워드 토큰은, 워드 원가요소의 뒤로 제로개이상의 워드 원가요소 또는 수치 원가요소가 계속된 것입니다.
low
- 범위의 최소치hi
- 범위의 최대치public void whitespaceChars(int low, int hi)
low <= c <= high
의 범위내의 모든 문자 c 가 공백 문자인 것을 지정합니다. 공백 문자의 기능은, 입력 스트림내에서 토큰을 단락짓는 것 뿐입니다.
지정된 범위내의 문자에 대한 그 외의 속성의 설정은 모두 클리어 됩니다.
low
- 범위의 최소치hi
- 범위의 최대치public void ordinaryChars(int low, int hi)
low <= c <= high
의 범위내의 모든 문자 c 가, 이 토크나이자의 「일반적으로」문자인 것을 지정합니다. 일반적으로 문자의 자세한 것은,ordinaryChar
메소드를 참조해 주세요.
low
- 범위의 최소치hi
- 범위의 최대치ordinaryChar(int)
public void ordinaryChar(int ch)
ttype
필드에 문자의 값을 설정합니다.
줄 끝 기호를 「일반적으로」문자로 하면(자),StreamTokenizer
가 행을 카운트 하는 기능에 간섭할 가능성이 있습니다. lineno
메소드가, 행의 카운트로 그러한 줄 끝 기호의 존재를 고려하지 않게 되는 일이 있습니다.
ch
- 문자ttype
public void commentChar(int ch)
지정된 문자에 대한 그 외의 속성의 설정은 모두 클리어 됩니다.
ch
- 문자public void quoteChar(int ch)
nextToken
메소드가 캐릭터 라인 정수를 검출하면(자),ttype
필드에는 캐릭터 라인 단락 문자가 설정되어sval
필드에는 캐릭터 라인의 본체가 설정됩니다.
캐릭터 라인의 인용 문자가 검출되면(자), 캐릭터 라인의 인용 문자 (이것은 포함하지 않는다)의 뒤로부터, 같은 캐릭터 라인의 인용 문자의 다음의 출현 장소, 줄 끝 기호, 또는 파일의 마지막 (이것들은 포함하지 않는다)까지의 모든 문자로 캐릭터 라인이 구성되어 있다고 인식됩니다. "\n"
나 "\t"
등의 일반적으로의 escape sequence는 인식되어 캐릭터 라인의 구문 분석시에 단일 문자에 변환됩니다.
지정된 문자에 대한 그 외의 속성의 설정은 모두 클리어 됩니다.
ch
- 문자nextToken()
,
sval
,
ttype
public void parseNumbers()
0 1 2 3 4 5 6 7 8 9 . -
이것들 12 개의 각 문자가 「수치」속성을 가지게 됩니다.
퍼서는, 배정밀도의 부동 소수점수(실수)의 형식의 워드 토큰을 검출하면(자),ttype
필드에 값 TT_NUMBER
를 설정해, 토큰의 수치를 nval
필드에 들어갈 수 있어, 이 토큰을 워드는 아니고 수치로서 취급합니다.
nval
,
TT_NUMBER
,
ttype
public void eolIsSignificant(boolean flag)
nextToken
메소드는 TT_EOL
를 돌려주어,ttype
필드에 이 값을 설정합니다.
행은, 왕복대 리턴 문자 ('\r'
) 또는 개행 문자 ('\n'
)로 끝나는 문자 순서입니다. 또, 직후에 개행 문자가 계속되는 왕복대 리턴 문자는, 줄 끝을 나타내는 단일의 토큰으로서 다루어집니다.
flag
가 false 의 경우, 줄 끝 문자는 공백으로서 다루어져 그 기능은 토큰을 단락지을 뿐입니다.
flag
- true
는, 줄 끝 문자가 독립한 토큰인 것을 나타낸다. false
는, 줄 끝 문자가 공백인 것을 나타내는nextToken()
,
ttype
,
TT_EOL
public void slashStarComments(boolean flag)
true
의 경우, 이 스트림토크나이자는 C 스타일의 코멘트를 인식합니다. /*
(와)과 */
의 사이의 텍스트는 모두 파기됩니다.
false
인수가 false 의 경우, C 스타일의 코멘트는 특별히는 다루어지지 않습니다.
flag
- true
는, C 스타일의 코멘트를 인식해 무시하는 것을 나타낸다public void slashSlashComments(boolean flag)
true
의 경우, 이 스트림토크나이자는 C++ 스타일의 코멘트를 인식합니다. slash 문자 ('/'
)가 2 개 계속되는 경우, 이것은 행의 마지막까지 계속되는 코멘트의 시작을 의미합니다.
false
인수가 false 의 경우, C++ 스타일의 코멘트는 특별히는 다루어지지 않습니다.
flag
- true
는, C++ 스타일의 코멘트를 인식해 무시하는 것을 나타낸다public void lowerCaseMode(boolean fl)
true
의 경우, 워드 토큰이 돌려주어질 때마다 sval
필드의 값이 소문자로 됩니다. ttype
필드가 가지는 값 TT_WORD
는, 이 토크나이자의 nextToken
메소드로부터의 것입니다.
flag 인수가 false
의 경우,sval
필드는 변경되지 않습니다.
fl
- true
는, 모든 워드 토큰을 소문자로 하는 것을 나타내는nextToken()
,
ttype
,
TT_WORD
public int nextToken() throws IOException
ttype
필드에 돌려주어집니다. 토큰에 관한 추가 정보는, 이 토크나이자의 nval
필드 또는 sval
필드에 있습니다. 이 클래스의 일반적인 클라이언트는, 최초로 구문 테이블을 설정하고 나서 nextToken 를 호출하는 루프에 들어가, TT_EOF 가 돌려주어질 때까지 토큰을 차례차례 구문 분석 합니다.
ttype
필드의 값
IOException
- 입출력 에러가 발생했을 경우nval
,
sval
,
ttype
public void pushBack()
nextToken
메소드 호출로 ttype
필드의 현행치를 돌려주어,nval
또는 sval
필드의 값은 변경하지 않게 합니다.
nextToken()
,
nval
,
sval
,
ttype
public int lineno()
public String toString()
다음의 예를 일반적인 것이라고 생각할 수 있습니다만, 반환되는 캐릭터 라인은 정확하게 지정되고 있지 않습니다.
Token['a'], line 10
Object
내의 toString
nval
,
sval
,
ttype
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.