File: left_recursion_without_cache.rs

package info (click to toggle)
rust-peg 0.8.5-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid, trixie
  • size: 756 kB
  • sloc: makefile: 20; sh: 12
file content (19 lines) | stat: -rw-r--r-- 491 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
extern crate peg;

peg::parser!(grammar foo() for str {
    rule rec() = rec() //~ ERROR left recursive rules create an infinite loop: rec -> rec

    rule foo()
        = "foo" foo()
        / bar() //~ ERROR left recursive rules create an infinite loop: bar -> foo -> bar

    rule bar()
        = "bar" bar()
        / foo() //~ ERROR left recursive rules create an infinite loop: foo -> bar -> foo

    rule prec() = precedence! {
        prec() { () } //~ ERROR
    }
});

fn main() {}