Пишем JSON-парсер с нуля на Go
https://sushantdhiman.dev/lets-write-a-json-parser-from-scratch/
Sushant Dhiman разбирает, как написать JSON-парсер с нуля — от токенизации до AST.
Статья небольшая, но хорошо структурированная. Два основных этапа:
Токенизатор — проходит по строке посимвольно и разбивает её на токены: {, "key", :, 123 и т.д. Отдельно обрабатываются строки (с учётом экранирования), числа, литералы true, false, null.
Парсер — принимает токены и строит AST. Каждый узел — отдельный тип (StringNode, ObjectNode, ArrayNode и т.д.), всё через рекурсивный parseValue.
В конце задачка: попробуй преобразовать AST в нативные Go-структуры и использовать их. Неплохо для закрепления.
————
Традиционно люблю статьи «напиши X с нуля» — они хорошо прокачивают понимание внутреннего устройства привычных инструментов. Джэйсоны мы гоняем каждый день, даже не задумываясь что там внутри, а внутри всё хитро и интересно 👍
Код несложный, читается легко, исходники на GitHub.
#article #diy #parsing #ast
Post #330
6.92K
- 🔥 25
- 👍 10
- ❤ 5