| // pest. The Elegant Parser |
| // Copyright (c) 2018 DragoČ™ Tiselice |
| // |
| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT |
| // license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your |
| // option. All files in the project carrying such notice may not be copied, |
| // modified, or distributed except according to those terms. |
| |
| item = { (!"\n" ~ ANY)* } |
| |
| lists = _{ lines ~ EOI } |
| lines = _{ top_first ~ ("\n" ~ top_continue)* } |
| top_first = _{ "- " ~ item ~ ("\n" ~ children)? } |
| top_continue = _{ PEEK_ALL ~ "- " ~ item ~ ("\n" ~ children)? } |
| |
| indentation = _{ (" " | "\t")+ } |
| children = { PEEK_ALL ~ PUSH(indentation) ~ lines ~ DROP } |