개발자 Q&A

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

2025.05.05 12:35

ParleRParser::nonassoc에 관한 질문

목록
  • 도커마법사 1일 전 2025.05.05 12:35
  • 2
    1
제가 현재 ParleRParser를 공부중인데, nonassoc에 대한 이해가 부족합니다.
nonassoc는 어떤 의미를 가지고 있으며, 어떻게 사용해야 하는지 궁금합니다.
특히, nonassoc를 사용할 때, 우선순위와 결합 순서에 대한 규칙은 무엇인지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    nonassoc는 LL(1) 파서를 구현할 때 사용하는 키워드입니다. LL(1) 파서는 문법의 우선순위를 기반으로 파싱을 수행하는 파서입니다.

    nonassoc를 사용하면, 해당 토큰의 우선순위를 정의할 수 있습니다. 예를 들어, '+'와 '-'의 우선순위를 정의할 때, '+'는 '+'와 '+'의 결합을 허용하고, '-'는 '-'와 '+'의 결합을 허용하지 않습니다.

    우선순위와 결합 순서의 규칙은 다음과 같습니다.

    - '+'와 '-'의 우선순위는 '+'가 '-'보다 높습니다.
    - '*'와 '/'의 우선순위는 '*'가 '/'보다 높습니다.
    - '+'와 '*'의 결합은 '+'가 '*'보다 높습니다.
    - '-'와 '*'의 결합은 '-'가 '*'보다 높습니다.

    nonassoc를 사용할 때, 우선순위와 결합 순서를 정의하는 규칙을 반드시 지켜야 합니다. 그렇지 않으면, 파서가 올바르게 동작하지 않을 수 있습니다.

    예를 들어, '+'와 '-'의 우선순위를 정의할 때, '+'를 '+'와 '+'의 결합을 허용하고, '-'를 '-'와 '+'의 결합을 허용하지 않도록 정의할 수 있습니다.

    #hostingforum.kr
    c
    
    %left '+' '-'
    
    %right '*' '/'
    
    


    위의 예제에서, '+'와 '-'의 우선순위는 '+'가 '-'보다 높습니다. '+'는 '+'와 '+'의 결합을 허용하고, '-'는 '-'와 '+'의 결합을 허용하지 않습니다.

    2025-05-05 12:36

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

검색

게시물 검색