# 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))` 로 나오는 것 말고는 우선순위가 맞았는지 볼 방법이 없다.