Examples
See xo-reader/examples for built examples
1 #include "xo/reader/reader.h"
2
3 int
4 main() {
5 using namespace xo::scm;
6 using namespace std;
7
8 reader rdr;
9 rdr.begin_translation_unit();
10
11 bool eof = false;
12 while (!eof) {
13 auto input = ins.read_some();
14
15 eof = ins.eof();
16
17 for (auto rem = input; !rem.empty();) {
18 // res: (parsed-expr, used)
19 auto [expr, rem2, _] = rdr.read_expr(rem, eof);
20
21 if (expr) {
22 cout << expr << endl;
23 }
24
25 rem = rem.suffix_after(rem2);
26 }
27 }
28
29 if (rdr.has_prefix()) {
30 cout << "error: unparsed input after expression" << endl;
31 }
32 }