Based on a call stack rather than function calls
Like running a Push Down Automaton (PDA)
- scan from left to right, and perform leftmost derivation
- look ahead at most one input symbol
- L - from Left to right
- L - Leftmost
- (1) - lookahead
- Begin by pushing the start nonterminal to the stack
- Perform actions based on stack and next token
- Accept if both stack and input become empty
Two Actions:
- If stack top is a nonterminal A and A à ⍺, replace A with ⍺ (generate)
- If stack top is a terminal (token), match it with input token
- If matched, pop stack and advance input
- Otherwise, throw an error
LL 파서 - 위키백과, 우리 모두의 백과사전
LL 파서(LL parser)는 문맥 자유 문법의 일부를 파싱할 수 있는 하향식 파서 이다. LL 파서는 입력 문자열의 왼쪽(Left)에서부터 파싱을 시작하여, 좌측유도(Leftmost derivation) 방식으로 동작한다. LL 파서로 파싱이 가능한 문법은 LL 문법이라고 부른다. 만약 LL 파서가 lookahead에 최대 k개의 토큰(token)을 사용한다면, 그 파서는 LL(k) 파서라고 부른다. LL(k) 파서로 파싱이 가능한 문법은 LL(k) 문법이라고 부른다.
https://ko.wikipedia.org/wiki/LL_%ED%8C%8C%EC%84%9C

LL(1) 파싱 알고리듬 - 파싱 테이블과 파싱 방법
앞의 글 에서 문법에 대해 RDP(Recursive Descent Parser)를 직접 만드는 방법을 살펴보았습니다. 그러나 문법이 아주 큰 경우 모든 넌터미널 심볼에 대해 직접 메소드를 만들고 모든 터미널 심볼을 직접 다루는 것은 결코 쉬운 일이 아닙니다. 그래서 많은 경우 토큰을 읽어들이는 일은 Lexer라는 툴을 많이 이용하고 파서는 역시 파서를 만들어주는 툴을 많이 사용합니다.
https://plas.tistory.com/90

Seonglae Cho