파서까지 끝났으니 남은 길을 다시 적는다. 필드 단위 대여가 목록에 올라왔다 -- map 도 파서도 같은 자리에서 걸렸다. 224/224, 31/31.
16 lines
765 B
Markdown
16 lines
765 B
Markdown
# Ferro 로 쓴 Ferro 프런트엔드
|
|
|
|
셀프호스팅의 강제 함수. 언어가 자기 컴파일러를 쓸 만한지는 써 봐야 안다.
|
|
|
|
| 파일 | 무엇 |
|
|
|---|---|
|
|
| `tok.fe` | 토큰. 텍스트를 들지 않고 소스 안의 위치를 든다 (R4) |
|
|
| `scan.fe` | 렉서. `next(src, &mut at, &mut line)` |
|
|
| `main.fe` | 렉서 프로그램. 종류별로 세고 몇 개를 찍는다 |
|
|
| `ast.fe` | 노드. 자식은 노드 배열 안의 인덱스다 |
|
|
| `parse.fe` | 재귀 하강 파서. 토큰 하나를 앞서 본다 |
|
|
| `tree.fe` | 파서 프로그램. 식을 전위 표기로 다시 찍는다 |
|
|
|
|
전위 표기로 찍는 것이 요점이다. `1 + 2 * 3` 이 `(+ 1 (* 2 3))` 로 나오는 것
|
|
말고는 우선순위가 맞았는지 볼 방법이 없다.
|