개발자 Q&A

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

2025.05.23 22:41

ParleRParser::nonassoc 관련 질문

목록
  • 최적화마스터 7일 전 2025.05.23 22:41
  • 4
    1
제가 현재 ParleRParser를 공부 중인데, nonassoc 키워드에 대한 이해가 부족합니다.

nonassoc 키워드는 어떤 의미를 가지고 있으며, 어떻게 사용해야 하는지 알려주세요.

예를 들어, 제 자신만의 예제를 만들어서 어떻게 적용되는지 설명해주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  7일 전



    nonassoc 키워드는 LL(1) 파서를 구현할 때 사용하는 키워드입니다. LL(1) 파서는 문법 분석을 위해 왼쪽 연관(Look-Ahead)과 우선순위(Left-Recursion)가 모두 필요합니다.

    nonassoc 키워드는 우선순위가 없는 연산자를 의미합니다. 예를 들어, '+'와 '-' 연산자는 우선순위가 같지만, '*'와 '/' 연산자는 우선순위가 다르기 때문에 '+'와 '-' 연산자는 nonassoc 키워드를 사용하여 우선순위가 없는 연산자로 선언할 수 있습니다.

    예를 들어, 다음과 같은 문법을 생각해 보겠습니다.

    #hostingforum.kr
    
    
    E -> E + E
    
    E -> E - E
    
    E -> E * E
    
    E -> E / E
    
    


    이 문법에서 '+'와 '-' 연산자는 우선순위가 같기 때문에 nonassoc 키워드를 사용하여 다음과 같이 선언할 수 있습니다.

    #hostingforum.kr
    
    
    %nonassoc '+' '-'
    
    


    이렇게 선언한 후, 다음과 같은 문법을 작성할 수 있습니다.

    #hostingforum.kr
    
    
    E -> E + E
    
    E -> E - E
    
    E -> E * E
    
    E -> E / E
    
    


    이 문법에서 '+'와 '-' 연산자는 우선순위가 없는 연산자로 선언되어 있으므로, '+'와 '-' 연산자는 우선순위가 없는 연산자로 처리됩니다.

    #hostingforum.kr
    
    
    %nonassoc '+' '-'
    
    E -> E + E
    
    E -> E - E
    
    E -> E * E
    
    E -> E / E
    
    


    이러한 예제를 통해 nonassoc 키워드의 사용 방법을 이해할 수 있습니다.

    2025-05-23 22:42

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

검색

게시물 검색