struct Parser<'a> {
    lexer: Lexer<'a>,
    token: SpannedToken,
    max_witness_index: u32,
}Fields§
§lexer: Lexer<'a>§token: SpannedToken§max_witness_index: u32Implementations§
Source§impl<'a> Parser<'a>
 
impl<'a> Parser<'a>
fn new(source: &'a str) -> Result<Self, ParserError>
Sourcefn parse_program(&mut self) -> Result<Program<FieldElement>, ParserError>
 
fn parse_program(&mut self) -> Result<Program<FieldElement>, ParserError>
pub(crate) fn parse_circuit( &mut self, ) -> Result<Circuit<FieldElement>, ParserError>
fn parse_private_parameters(&mut self) -> Result<BTreeSet<Witness>, ParserError>
fn parse_public_parameters(&mut self) -> Result<BTreeSet<Witness>, ParserError>
fn parse_return_values(&mut self) -> Result<BTreeSet<Witness>, ParserError>
fn parse_witness_vector(&mut self) -> Result<Vec<Witness>, ParserError>
fn parse_witness_ordered_set( &mut self, ) -> Result<BTreeSet<Witness>, ParserError>
fn parse_opcodes(&mut self) -> Result<Vec<Opcode<FieldElement>>, ParserError>
fn parse_assert_zero_expression( &mut self, ) -> Result<Expression<FieldElement>, ParserError>
fn parse_terms_or_error(&mut self) -> Result<Vec<Term>, ParserError>
fn parse_term_or_error(&mut self) -> Result<Term, ParserError>
fn parse_linear_or_multiplication_term( &mut self, coefficient: FieldElement, w1: Witness, ) -> Result<Term, ParserError>
fn parse_arithmetic_expression( &mut self, ) -> Result<Expression<FieldElement>, ParserError>
fn parse_blackbox_func_call( &mut self, ) -> Result<BlackBoxFuncCall<FieldElement>, ParserError>
fn parse_blackbox_inputs_array<const N: usize>( &mut self, keyword: Keyword, ) -> Result<Box<[FunctionInput<FieldElement>; N]>, ParserError>
fn parse_blackbox_inputs( &mut self, keyword: Keyword, ) -> Result<Vec<FunctionInput<FieldElement>>, ParserError>
fn parse_blackbox_input( &mut self, keyword: Keyword, ) -> Result<FunctionInput<FieldElement>, ParserError>
fn parse_blackbox_input_no_keyword( &mut self, ) -> Result<FunctionInput<FieldElement>, ParserError>
fn parse_blackbox_output(&mut self) -> Result<Witness, ParserError>
fn parse_blackbox_outputs_array<const N: usize>( &mut self, ) -> Result<Box<[Witness; N]>, ParserError>
fn parse_blackbox_outputs(&mut self) -> Result<Vec<Witness>, ParserError>
fn parse_blackbox_u32(&mut self, keyword: Keyword) -> Result<u32, ParserError>
fn parse_memory_init(&mut self) -> Result<Opcode<FieldElement>, ParserError>
fn parse_block_type(&mut self) -> Result<BlockType, ParserError>
fn parse_memory_read(&mut self) -> Result<Opcode<FieldElement>, ParserError>
fn parse_memory_write(&mut self) -> Result<Opcode<FieldElement>, ParserError>
fn parse_brillig_call(&mut self) -> Result<Opcode<FieldElement>, ParserError>
fn parse_brillig_inputs( &mut self, ) -> Result<Vec<BrilligInputs<FieldElement>>, ParserError>
fn parse_brillig_input( &mut self, ) -> Result<BrilligInputs<FieldElement>, ParserError>
fn parse_brillig_outputs(&mut self) -> Result<Vec<BrilligOutputs>, ParserError>
fn parse_brillig_output(&mut self) -> Result<BrilligOutputs, ParserError>
fn parse_call(&mut self) -> Result<Opcode<FieldElement>, ParserError>
fn eat_predicate( &mut self, ) -> Result<Option<Expression<FieldElement>>, ParserError>
fn parse_bracketed_list<T, F>( &mut self, parser: F, ) -> Result<Vec<T>, ParserError>
fn eat_ident_or_error(&mut self) -> Result<String, ParserError>
fn eat_ident(&mut self) -> Result<Option<String>, ParserError>
fn eat_field_element(&mut self) -> Result<Option<FieldElement>, ParserError>
fn eat_field_or_error(&mut self) -> Result<FieldElement, ParserError>
fn eat_u32_or_error(&mut self) -> Result<u32, ParserError>
fn bump(&mut self) -> Result<SpannedToken, ParserError>
fn read_token_internal(&mut self) -> Result<SpannedToken, ParserError>
fn eat_keyword(&mut self, keyword: Keyword) -> Result<bool, ParserError>
fn eat_keyword_or_error(&mut self, keyword: Keyword) -> Result<(), ParserError>
fn peek_keyword(&self) -> Option<Keyword>
fn eat_witness(&mut self) -> Result<Option<Witness>, ParserError>
fn eat_witness_or_error(&mut self) -> Result<Witness, ParserError>
fn eat_block_id(&mut self) -> Result<Option<BlockId>, ParserError>
fn eat_block_id_or_error(&mut self) -> Result<BlockId, ParserError>
fn eat_comma_or_error(&mut self) -> Result<(), ParserError>
fn eat_or_error(&mut self, token: Token) -> Result<(), ParserError>
fn at(&mut self, token: Token) -> bool
Sourcefn eat(&mut self, token: Token) -> Result<bool, ParserError>
 
fn eat(&mut self, token: Token) -> Result<bool, ParserError>
Returns true if the token is eaten and bumps to the next token. Otherwise will return false and no bump will occur.
fn try_vec_to_array<const N: usize, T: Clone>( &self, vec: Vec<T>, keyword: Keyword, ) -> Result<Box<[T; N]>, ParserError>
fn expected_identifier<T>(&mut self) -> Result<T, ParserError>
fn expected_field_element<T>(&mut self) -> Result<T, ParserError>
fn expected_witness<T>(&mut self) -> Result<T, ParserError>
fn expected_block_id<T>(&mut self) -> Result<T, ParserError>
fn expected_term<T>(&mut self) -> Result<T, ParserError>
fn expected_token<T>(&mut self, token: Token) -> Result<T, ParserError>
fn expected_one_of_tokens<T>( &mut self, tokens: &[Token], ) -> Result<T, ParserError>
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> 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
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
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>
Converts 
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>
Converts 
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§impl<D> OwoColorize for D
 
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
    C: Color,
 
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
    C: Color,
Set the foreground color generically Read more
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
    C: Color,
 
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
    C: Color,
Set the background color generically. Read more
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
 
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
 
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
 
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
 
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
 
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
 
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
 
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
 
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
 
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
 
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
 
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
 
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
 
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
 
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
 
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
 
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
 
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
 
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
 
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
 
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
 
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
 
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Hide the text
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
 
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
 
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either [
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
 
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either [
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
    &self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
 
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
    &self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
 
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
 
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
 
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.