XX(k)에서 k는 derivation에서 한 step 이동할 때 의존하는 input token의 수이다.


LR(0)에서 "0"의 진짜 의미 🤖

LR(0) 파서도 실제로는 **입력의 맨 앞 토큰(lookahead)**을 보고 shift할지 말지를 판단하는 데 사용합니다.

그래서 “lookahead가 0개인데 왜 입력 토큰을 보냐?”라는 의문이 충분히 생길 수 있어요.

이 의문은 shift/reduce decision과 reduce decision을 분리해서 보면 깔끔하게 해소됩니다.

<aside> 📌

LR(0)에서 괄호 속 **0은 "reduce 할 때 lookahead를 보지 않는다"**는 뜻입니다.

</aside>

구분 lookahead 사용 여부 설명
shift 여부 결정 ✅ 사용함 (다음 토큰 보고 shift함) 다음 토큰이 어떤 terminal이면 shift할지 결정
reduce 여부 결정 ❌ 사용하지 않음 (lookahead 없이 reduce함) 오직 상태만 보고 reduce할 수 있어야 함

🔸 예를 들어

S → A
A → a

이런 문법에서 a가 들어오면:

🔧 참고로