[]Struct jobrog::log::MATCHER

pub struct MATCHER { /* fields omitted */ }

Methods from Deref<Target = Matcher>

pub fn parse(&self, s: &'t str) -> Option<Match<'t>>[src]

Returns Some(Match) if the grammar can parse the string. Note that unless the grammar is string-bounded, this only means it can parse the string at some point.

Examples

let m = grammar!{

	(?bB)

	S -> r(r"\A") <subject> <VP> r(r"\.\z")

	subject           => [["Amy", "Bob", "Carter", "Dianne"]]
	VP                -> <verb_intransitive> | <verb_transitive> <object>
	verb_intransitive => [["naps", "doodles", "exercises", "meditates"]]
	verb_transitive   => [["eats", "programs", "sees", "throws"]]
	object            => (?w) [["a sandwich", "eggs", "the sunset"]]

}.matcher()?;

let parse_tree = m.parse("Amy programs the sunset.").unwrap();

println!("{}", parse_tree);

// S (0, 24): "Amy programs the sunset."
//   subject (0, 3): "Amy"
//   VP (4, 23): "programs the sunset"
//     verb_transitive (4, 12): "programs"
//     object (13, 23): "the sunset"

pub fn is_match(&self, text: &str) -> bool[src]

Returns whether the grammar can parse the string. This is a cheaper operation than parsing.

Examples

let m = grammar!{

	(?bB)

	S -> r(r"\A") <subject> <VP> r(r"\.\z")

	subject           => [["Amy", "Bob", "Carter", "Dianne"]]
	VP                -> <verb_intransitive> | <verb_transitive> <object>
	verb_intransitive => [["naps", "doodles", "exercises", "meditates"]]
	verb_transitive   => [["eats", "programs", "sees", "throws"]]
	object            => (?w) [["a sandwich", "eggs", "the sunset"]]

}.matcher()?;

assert!(m.is_match("Bob doodles."));

Trait Implementations

impl Deref for MATCHER

type Target = Matcher

The resulting type after dereferencing.

impl LazyStatic for MATCHER

Auto Trait Implementations

impl RefUnwindSafe for MATCHER

impl Send for MATCHER

impl Sync for MATCHER

impl Unpin for MATCHER

impl UnwindSafe for MATCHER

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,