1// pest. The Elegant Parser 2// Copyright (c) 2018 Dragoș Tiselice 3// 4// Licensed under the Apache License, Version 2.0 5// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT 6// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your 7// option. All files in the project carrying such notice may not be copied, 8// modified, or distributed except according to those terms. 9 10item = { (!"\n" ~ ANY)* } 11 12lists = _{ lines ~ EOI } 13lines = _{ top_first ~ ("\n" ~ top_continue)* } 14top_first = _{ "- " ~ item ~ ("\n" ~ children)? } 15top_continue = _{ PEEK_ALL ~ "- " ~ item ~ ("\n" ~ children)? } 16 17indentation = _{ (" " | "\t")+ } 18children = { PEEK_ALL ~ PUSH(indentation) ~ lines ~ DROP } 19