oni_comb_parser_rs::prelude

Function lazy

Source
pub fn lazy<'a, I, A, F>(f: F) -> Parser<'a, I, A>
where F: Fn() -> Parser<'a, I, A> + 'a, A: Debug + 'a,
Expand description

Returns a Parser that lazily evaluates the specified Parser.
指定したParserを遅延評価するParserを返す。

  • f: Function to generate parser
  • f: パーサーを生成する関数

§Example

use std::iter::FromIterator;
use oni_comb_parser_rs::prelude::*;

let text: &str = "abc";
let input = text.chars().collect::<Vec<_>>();

fn value<'a>() -> Parser<'a, char, &'a str> {
  tag("abc")
}
let parser: Parser<char, &str> = lazy(value);

let result: ParseResult<char, &str> = parser.parse(&input);

assert!(result.is_success());
assert_eq!(result.success().unwrap(), "abc");