
nonassoc 키워드는 LL(1) 파서 생성 알고리즘에서 사용되는 키워드입니다. LL(1) 파서 생성 알고리즘은 우선순위가 같을 때, 우선순위가 더 높은 연산자를 선택하는 알고리즘입니다.
nonassoc 키워드를 사용해야 하는 상황은 다음과 같습니다.
- 우선순위가 같을 때, 우선순위가 더 높은 연산자를 선택해야 하는 경우
- 우선순위가 같을 때, 우선순위가 더 높은 연산자를 선택해야 하는 경우, 예를 들어, '+'와 '-' 연산자가 우선순위가 같을 때, '+' 연산자를 선택해야 하는 경우
nonassoc 키워드를 사용하면, 파서 생성 알고리즘은 우선순위가 더 높은 연산자를 선택하도록 강제합니다.
예를 들어, 다음과 같은 parser를 생성할 경우, nonassoc 키워드를 사용해야 하는 상황은 '+'와 '-' 연산자가 우선순위가 같을 때입니다.
#hostingforum.kr
cpp
class MyParser : public ParleParser {
public:
MyParser() : ParleParser() {
// parser 생성
// '+'와 '-' 연산자가 우선순위가 같을 때, '+' 연산자를 선택해야 함
addRule("+", 1, nonassoc); // nonassoc 키워드를 사용
addRule("-", 1, nonassoc); // nonassoc 키워드를 사용
}
};
nonassoc 키워드는 parser 생성에 영향을 미칩니다. 파서 생성 알고리즘은 우선순위가 더 높은 연산자를 선택하도록 강제합니다. 이로 인해, parser는 더 정확하고 효율적으로 작동합니다.
2025-04-13 00:55