vak: (Знайка)
[personal profile] vak
Оказывается, кланг умеет выгружать синтаксическое дерево в формате JSON. Так что на парсере на первых порах можно сэкономить. Например, возьмём один из файлов ядра Unix v7.
$ git clone https://github.com/besm6/v7besm
$ cd v7besm/kernel
$ clang -target i486-unknown-linux-gnu -ffreestanding -Xclang -ast-dump=json -fsyntax-only -I../include -DKERNEL utab.c > utab.ast
Вот такой файл utab.ast получается: gist.github.com/sergev/a99a668b1419dc6dee584dea9c322fd5

Date: 2025-05-09 06:01 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Там же вроде среди исходников УНИХ есть и K&R-Си компилятор об нескольких проходах. Он генерирует дерево в каком-то виде.