Skip to content

Latest commit

 

History

History
46 lines (24 loc) · 2.03 KB

README.md

File metadata and controls

46 lines (24 loc) · 2.03 KB

common-parse-lib

Статья

Основная идея:

поток ввода (на FILE* или stdin (с выключенной буферизацией) (можно добавить на файловых дескрипторах unix)) прикидывается сишной строкой с forward итераторами (конец строки определяется при помощи функции bool atend(it)).

Плюс набор шаблонных функций (работающих и на си-строках и на итераторах потока), пытающихся что-то прочитать с заданной позиции.

Поток ввода - двух видов: обычный и с возможностью узнать номер строки/столбца по итератору.

Примеры

  • test/calc.cpp - пример калькулятора на strin-е
  • test/winreg.cpp - пример анализа и простого преобразования файлов реестра винды
  • test/instantiation.cpp - файл, в котором инстанцируются разные шаблоны для проверки их полной компилируемости

Файлы

  • base_parse.h - общие функции парсинга, - которые можно использовать как с сишными строками, так и с forward_tream ("документацию" см в комментариях, начинающихся со слов "ТАБЛИЧКА")
  • forward_stream.h - потоки, прикидывающиеся си-строками с forward итераторами
  • strin.h - поток над stdin
  • strin.cpp - инстанцирование потока над stdin

  • README.md - этот файл

PS используется c++11

todo

  • освоить doxigen
  • сделать документацию
  • операции над спанами и биспанами