
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