struct Parser<'a> {
lexer: Lexer<'a>,
token: SpannedToken,
max_witness_index: u32,
}
Fields§
§lexer: Lexer<'a>
§token: SpannedToken
§max_witness_index: u32
Implementations§
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( &mut self, ) -> Result<Vec<FunctionInput<FieldElement>>, ParserError>
fn parse_blackbox_input( &mut self, ) -> Result<FunctionInput<FieldElement>, ParserError>
fn parse_blackbox_output(&mut self) -> Result<Witness, ParserError>
fn parse_blackbox_outputs(&mut self) -> Result<Vec<Witness>, ParserError>
fn parse_blackbox_bit_size(&mut self) -> Result<u32, ParserError>
fn parse_memory_init(&mut self) -> Result<Opcode<FieldElement>, 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_outputs(&mut self) -> Result<Vec<BrilligOutputs>, ParserError>
fn parse_call(&mut self) -> Result<Opcode<FieldElement>, ParserError>
fn eat_predicate( &mut self, ) -> Result<Option<Expression<FieldElement>>, 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_or_error(&mut self, token: Token) -> Result<(), ParserError>
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 expect_len<T>( &self, items: &[T], expected: usize, name: &str, is_output: bool, ) -> Result<(), ParserError>
fn try_extract_tail<const N: usize, T: Clone>( &self, items: &mut Vec<T>, name: &str, ) -> Result<Box<[T; N]>, ParserError>
fn try_vec_to_array<const N: usize, T: Clone>( &self, vec: Vec<T>, name: &str, is_output: bool, ) -> 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.