mirror of
https://github.com/yhirose/cpp-peglib.git
synced 2025-04-02 00:42:08 +00:00
Modified documentation and the calc sample.
This commit is contained in:
parent
681c754302
commit
cf574074c4
@ -241,10 +241,10 @@ The following are available operators:
|
||||
| cap | Capture character |
|
||||
| usr | User defiend parser |
|
||||
|
||||
Hybrid Parser
|
||||
-------------
|
||||
Adjust definitions
|
||||
------------------
|
||||
|
||||
It's even possible to mix parser grammar with parser operaters.
|
||||
It's possible to add and override definitions with parser operaters.
|
||||
|
||||
```c++
|
||||
auto syntax = R"(
|
||||
|
@ -15,12 +15,13 @@ using namespace std;
|
||||
//
|
||||
// PEG syntax:
|
||||
//
|
||||
// EXPRESSION <- TERM (TERM_OPERATOR TERM)*
|
||||
// EXPRESSION <- _ TERM (TERM_OPERATOR TERM)*
|
||||
// TERM <- FACTOR (FACTOR_OPERATOR FACTOR)*
|
||||
// FACTOR <- NUMBER / '(' EXPRESSION ')'
|
||||
// TERM_OPERATOR <- [-+]
|
||||
// FACTOR_OPERATOR <- [/*]
|
||||
// NUMBER <- [0-9]+
|
||||
// FACTOR <- NUMBER / '(' _ EXPRESSION ')' _
|
||||
// TERM_OPERATOR <- < [-+] > _
|
||||
// FACTOR_OPERATOR <- < [/*] > _
|
||||
// NUMBER <- < [0-9]+ > _
|
||||
// ~_ <- [ \t\r\n]*
|
||||
//
|
||||
int main(int argc, const char** argv)
|
||||
{
|
||||
@ -47,12 +48,13 @@ int main(int argc, const char** argv)
|
||||
};
|
||||
|
||||
const char* syntax =
|
||||
" EXPRESSION <- TERM (TERM_OPERATOR TERM)* "
|
||||
" EXPRESSION <- _ TERM (TERM_OPERATOR TERM)* "
|
||||
" TERM <- FACTOR (FACTOR_OPERATOR FACTOR)* "
|
||||
" FACTOR <- NUMBER / '(' EXPRESSION ')' "
|
||||
" TERM_OPERATOR <- [-+] "
|
||||
" FACTOR_OPERATOR <- [/*] "
|
||||
" NUMBER <- [0-9]+ "
|
||||
" FACTOR <- NUMBER / '(' _ EXPRESSION ')' _ "
|
||||
" TERM_OPERATOR <- < [-+] > _ "
|
||||
" FACTOR_OPERATOR <- < [/*] > _ "
|
||||
" NUMBER <- < [0-9]+ > _ "
|
||||
" ~_ <- [ \t\r\n]* "
|
||||
;
|
||||
|
||||
peg parser(syntax);
|
||||
|
Loading…
Reference in New Issue
Block a user