
consume 메서드는 ParleParser 클래스의 주요 메서드 중 하나로, 파서가 입력 스트림에서 다음 토큰을 소비하는 역할을 합니다.
consume 메서드의 responsibility는 다음과 같습니다.
- 입력 스트림에서 다음 토큰을 읽어오기
- 토큰의 유효성을 검사하고, 유효하지 않은 토큰이면 에러를 발생시키기
- 유효한 토큰이면 토큰의 내용을 반환하기
consume 메서드의 return 값은 토큰의 내용으로, 예를 들어 문자열, 숫자, 식별자 등이 될 수 있습니다.
예시 코드를 살펴보겠습니다.
#hostingforum.kr
java
public class ParleParser {
public Token consume() {
// 입력 스트림에서 다음 토큰을 읽어오기
String token = getNextToken();
// 토큰의 유효성을 검사하기
if (!isValidToken(token)) {
// 유효하지 않은 토큰이면 에러를 발생시키기
throw new ParserError("Invalid token: " + token);
}
// 유효한 토큰이면 토큰의 내용을 반환하기
return new Token(token);
}
private String getNextToken() {
// 입력 스트림에서 다음 토큰을 읽어오기
// ...
}
private boolean isValidToken(String token) {
// 토큰의 유효성을 검사하기
// ...
}
private class Token {
private String value;
public Token(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
}
consume 메서드가 에러를 발생시키는 경우, 에러를 처리하는 방법은 다음과 같습니다.
- 에러를 발생시키는 코드를 try-catch 블록으로 감싸기
- 에러를 처리하는 코드를 catch 블록에 작성하기
- 에러를 처리하는 코드를 별도의 메서드로 분리하기
예시 코드를 살펴보겠습니다.
#hostingforum.kr
java
public class ParleParser {
public Token consume() {
try {
// 입력 스트림에서 다음 토큰을 읽어오기
String token = getNextToken();
// 토큰의 유효성을 검사하기
if (!isValidToken(token)) {
// 유효하지 않은 토큰이면 에러를 발생시키기
throw new ParserError("Invalid token: " + token);
}
// 유효한 토큰이면 토큰의 내용을 반환하기
return new Token(token);
} catch (ParserError e) {
// 에러를 처리하기
System.out.println("Error: " + e.getMessage());
return null;
}
}
// ...
}
consume 메서드가 에러를 발생시키는 경우, 에러를 처리하는 방법은 위의 예시 코드를 참고하시기 바랍니다.
2025-04-18 11:36