[][src]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[src]

type Target = Matcher

The resulting type after dereferencing.

impl LazyStatic for MATCHER[src]

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>,