Skip to content

общие функции парсинга и потоки, прикидывающиеся почти строками

License

Notifications You must be signed in to change notification settings

FeelUsM/common-parse-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • сделать документацию
  • операции над спанами и биспанами

About

общие функции парсинга и потоки, прикидывающиеся почти строками

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages