
ParleParser::nonassoc는 연산자 우선순위를 명시적으로 지정하는 키워드입니다.
예를 들어, 다음과 같은 문법을 가지는 파서를 작성할 때,
E -> E + T
E -> T
T -> T * F
T -> F
nonassoc 키워드가 사용되는 곳은 '+' 연산자에 있습니다.
그리고 nonassoc 키워드가 없을 때와 있을 때의 차이점은 다음과 같습니다.
- nonassoc 키워드가 없을 때: '+' 연산자는 '+' 연산자보다 우선순위가 낮은 '*' 연산자와 동일한 우선순위를 가집니다. 따라서 '+' 연산자는 '*' 연산자보다 우선순위가 낮아 '*' 연산자가 '+' 연산자보다 먼저 적용됩니다.
- nonassoc 키워드가 있을 때: '+' 연산자는 '+' 연산자보다 우선순위가 높습니다. 따라서 '+' 연산자는 '*' 연산자보다 우선순위가 높아 '*' 연산자가 '+' 연산자보다 먼저 적용되지 않습니다.
따라서, nonassoc 키워드는 연산자 우선순위를 명시적으로 지정하여 파서의 동작을 제어할 수 있습니다.
2025-03-26 11:53