Updated README.

pull/3/head
yhirose 9 years ago
parent 9765e095ab
commit 5ed7c738a8
  1. 23
      README.md

@ -242,7 +242,7 @@ There are some ways to *search* a peg pattern in a document.
using namespace peglib;
auto syntax = R"(
ROOT <- '[' $< [a-z0-9]+ > ']'
ROOT <- '[' $< [a-z0-9]+ > ']'
)";
auto s = " [tag1] [tag2] [tag3] ";
@ -253,23 +253,23 @@ size_t pos = 0;
auto n = strlen(s);
match m;
while (peg_search(pg, s + pos, n - pos, m)) {
cout << m.str() << endl; // entire match
cout << m.str(1) << endl; // submatch #1
pos += m.length();
cout << m.str() << endl; // entire match
cout << m.str(1) << endl; // submatch #1
pos += m.length();
}
// peglib::peg_token_iterator
peg_token_iterator it(syntax, s);
while (it != peg_token_iterator()) {
cout << it->str() << endl; // entire match
cout << it->str(1) << endl; // submatch #1
++it;
cout << it->str() << endl; // entire match
cout << it->str(1) << endl; // submatch #1
++it;
}
// peglib::peg_token_range
for (auto& m: peg_token_range(syntax, s)) {
cout << m.str() << endl; // entire match
cout << m.str(1) << endl; // submatch #1
cout << m.str() << endl; // entire match
cout << m.str(1) << endl; // submatch #1
}
```
@ -330,10 +330,10 @@ Rules additional_rules = {
static vector<string> names = { "PEG", "BNF" };
for (const auto& name: names) {
if (name.size() <= n && !name.compare(0, name.size(), s, name.size())) {
return name.size();
return name.size(); // processed length
}
}
return -1;
return -1; // parse error
})
},
{
@ -363,7 +363,6 @@ Tested Compilers
TODO
----
* Predicate control
* Unicode support
License

Loading…
Cancel
Save