pub struct Cfg {
pub start: String,
pub inner: Vec<NonTerminal>,
pub config: Config,
}
Expand description
A struct that represents a grammar configuration for the synthesis problem.
It contains three fields: start
, inner
, and config
.
The start
field is a String
representing the initial non-terminal symbol of the grammar.
The inner
field is a vector of NonTerminal
, detailing the additional non-terminals involved in the synthesis process.
The config
field is an instance of Config
, which provides specific settings or parameters that modify or define the grammar’s behavior within the synthesis context.
Together, these fields collectively describe the essential components and settings required for configuring the grammar used in string synthesis tasks.
Fields§
§start: String
§inner: Vec<NonTerminal>
§config: Config
Implementations§
Source§impl Cfg
impl Cfg
Sourcepub fn parse(pair: Pair<'_, Rule>) -> Result<Self, Error>
pub fn parse(pair: Pair<'_, Rule>) -> Result<Self, Error>
Parses a Pair
using a context-free grammar (Cfg) representation and returns a Cfg
.
The function takes a Pair
object that adheres to an outlined grammatical rule (Rule
), transforming it into a collection of NonTerminal
elements while also handling configuration through optional Config
parsing.
Sourcepub fn reset_start(&mut self)
pub fn reset_start(&mut self)
This function resets the position of the start non-terminal in the control flow graph.
Sourcepub fn get_nt_by_type(&self, ty: &Type) -> String
pub fn get_nt_by_type(&self, ty: &Type) -> String
Retrieves the name of the non-terminal by type.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Cfg
impl RefUnwindSafe for Cfg
impl Send for Cfg
impl Sync for Cfg
impl Unpin for Cfg
impl UnwindSafe for Cfg
Blanket Implementations§
Source§impl<T> AllocForAny<T> for T
impl<T> AllocForAny<T> for T
Source§fn galloc(self) -> &'static T
fn galloc(self) -> &'static T
Provides a method to allocate an instance of T
on the heap with a static lifetime.
This implementation of galloc
takes ownership of the T
instance and uses the alloc
function to place it in a location with a static lifetime, presumably managing it in a way that ensures its persistence for the duration of the program.
This can be particularly useful for scenarios where a static lifetime is required, such as when interfacing with systems or patterns that necessitate global state or long-lived data.
Source§fn galloc_mut(self) -> &'static T
fn galloc_mut(self) -> &'static T
Provides a method that moves the instance and returns a reference to it allocated with a static lifetime.
This method utilizes alloc_mut
to perform the allocation, likely involving allocating the resource in a manner that ensures it lives for the entire duration of the application.
These semantics allow the user to safely assume that the reference will not expire during the program’s execution, making it suitable for long-lived data structures or operations that require such guarantees.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more