pub struct Parser<'a> { /* private fields */ }Expand description
Parser for Edinburgh Prolog syntax. Parses tokens into Terms and Clauses, with variable scoping per clause.
Implementations§
Source§impl<'a> Parser<'a>
impl<'a> Parser<'a>
Sourcepub fn parse_program(
input: &str,
interner: &mut StringInterner,
) -> Result<Vec<Clause>, String>
pub fn parse_program( input: &str, interner: &mut StringInterner, ) -> Result<Vec<Clause>, String>
Parse a complete program (multiple clauses) from source text.
Sourcepub fn parse_query(
input: &str,
interner: &mut StringInterner,
) -> Result<Vec<Term>, String>
pub fn parse_query( input: &str, interner: &mut StringInterner, ) -> Result<Vec<Term>, String>
Parse a single query (goal list) from source text, e.g. “parent(tom, X)”. Does NOT require a trailing dot.
Sourcepub fn var_names(&self) -> &FnvHashMap<String, VarId>
pub fn var_names(&self) -> &FnvHashMap<String, VarId>
Get the variable name map (for extracting query variable names in results).
Sourcepub fn parse_query_with_vars(
input: &str,
interner: &mut StringInterner,
) -> Result<(Vec<Term>, FnvHashMap<String, VarId>), String>
pub fn parse_query_with_vars( input: &str, interner: &mut StringInterner, ) -> Result<(Vec<Term>, FnvHashMap<String, VarId>), String>
Parse a query and also return the variable name mapping.
Auto Trait Implementations§
impl<'a> Freeze for Parser<'a>
impl<'a> RefUnwindSafe for Parser<'a>
impl<'a> Send for Parser<'a>
impl<'a> Sync for Parser<'a>
impl<'a> Unpin for Parser<'a>
impl<'a> UnsafeUnpin for Parser<'a>
impl<'a> !UnwindSafe for Parser<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more