docs: TODO 와 fixture README 를 지금 상태로
파서까지 끝났으니 남은 길을 다시 적는다. 필드 단위 대여가 목록에 올라왔다 -- map 도 파서도 같은 자리에서 걸렸다. 224/224, 31/31.
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# 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))` 로 나오는 것
|
||||
말고는 우선순위가 맞았는지 볼 방법이 없다.
|
||||
@@ -0,0 +1,5 @@
|
||||
# 트랩이 대는 파일
|
||||
|
||||
빌드 전체가 한 모듈이 되므로 트랩은 자기가 어느 유닛에서 왔는지 스스로 말해야
|
||||
한다. 여기서는 경계 검사가 `pick.fe` 에 있고 프로그램은 `main.fe` 다. 트랩이
|
||||
`main.fe` 를 대면 줄 번호가 맞아도 엉뚱한 줄을 가리킨다.
|
||||
Reference in New Issue
Block a user