Skip to content

Latest commit

 

History

History
26 lines (22 loc) · 1.43 KB

TODO.md

File metadata and controls

26 lines (22 loc) · 1.43 KB

Core:

  • аналог LLVM MemoryBuffer - обертка над готовым буфером (строкой), или memory mapped файлом => дает bidirectional итераторы

    • stdin не поддерживаем
    • llvm::MemoryBuffer
    • boost::iostreams::mapped_file
    • wheels::ConstMemView
  • буфер должен жить все время работы с парсером и AST => string_value токенов это string_view в буфер

    • решает todo dont store string_value if it is equal to pattern
  • токен знает, с какого байта начинается => хранить доп инфу про \n => уметь мапить токены в source location

  • рефакторить Children в AST

  • замена optional на expected

  • замена std::regex на ctre => токены имеют static constexpr не паттерн, а скомпилированный регекс

  • добавить Visit в LangNodeBase

  • конструкторы для токенов от string_value и тп

  • не бросать в NextToken

  • ? шаблон вместо макроса PFW_TOKEN

  • cmake и структура папок (target_include_directories)

  • camelCase для функций в clang tidy

Тесты:

  • декларативное построение AST
  • сравнение AST
  • google test