xo-umbrella2/xo-reader/docs/example.rst
Roland Conybeare 510fbdc578 git subrepo clone (merge) git@github.com:Rconybea/xo-reader.git xo-reader
subrepo:
  subdir:   "xo-reader"
  merged:   "cb652195"
upstream:
  origin:   "git@github.com:Rconybea/xo-reader.git"
  branch:   "main"
  commit:   "cb652195"
git-subrepo:
  version:  "0.4.9"
  origin:   "???"
  commit:   "???"
2026-06-06 22:23:57 -04:00

45 lines
885 B
ReStructuredText

.. _examples:
.. toctree::
:maxdepth: 2
Examples
========
See ``xo-reader/examples`` for built examples
.. code-block:: cpp
:linenos:
#include "xo/reader/reader.h"
int
main() {
using namespace xo::scm;
using namespace std;
reader rdr;
rdr.begin_translation_unit();
bool eof = false;
while (!eof) {
auto input = ins.read_some();
eof = ins.eof();
for (auto rem = input; !rem.empty();) {
// res: (parsed-expr, used)
auto [expr, rem2, _] = rdr.read_expr(rem, eof);
if (expr) {
cout << expr << endl;
}
rem = rem.suffix_after(rem2);
}
}
if (rdr.has_prefix()) {
cout << "error: unparsed input after expression" << endl;
}
}