개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.29 07:32

ParleLexer::advance 관련 질문

목록
  • 뷰매니아 20일 전 2025.06.29 07:32
  • 51
    1
제가 공부하는 C++의 ParleLexer 클래스를 사용하여 토큰을 분석하고 있지만, advance 메서드의 동작을 이해하지 못하고 있습니다.

advance 메서드는 다음 토큰을 찾는 데 사용되지만, 이 메서드가 사용하는 알고리즘에 대해 설명할 수 있을까요?

그리고 이 메서드가 반환하는 토큰 타입에 대한 정보는 어떻게 얻을 수 있나요?

예를 들어, 토큰 타입이 Keyword 인 경우에는 어떻게 처리해야 하는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  20일 전



    ParleLexer::advance 메서드는 LL(1) 파서 알고리즘을 사용하여 다음 토큰을 찾습니다. LL(1) 파서 알고리즘은 현재 토큰에 대해 예측한 토큰 타입을 기반으로 다음 토큰을 찾습니다.

    advance 메서드가 반환하는 토큰 타입에 대한 정보는 토큰 타입을 나타내는 Enum 값을 반환합니다. 예를 들어, Keyword 토큰 타입의 경우 Keyword Enum 값을 반환합니다.

    Keyword 토큰 타입의 경우, 예를 들어 if, else, while 등의 키워드가 포함된 토큰을 처리해야 할 때, 다음 코드와 같이 처리할 수 있습니다.

    #hostingforum.kr
    cpp
    
    if (token.type == Keyword) {
    
        switch (token.value) {
    
            case KeywordIf:
    
                // if 키워드 처리 코드
    
                break;
    
            case KeywordElse:
    
                // else 키워드 처리 코드
    
                break;
    
            // ...
    
        }
    
    }
    
    


    token.value는 토큰의 실제 값입니다. KeywordIf, KeywordElse 등은 Enum 값입니다.

    2025-06-29 07:33

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,340건 / 1 페이지

검색

게시물 검색