acir::parser

Struct Parser

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

Source

fn new(source: &'a str) -> Result<Self, ParserError>

Source

fn parse_program(&mut self) -> Result<Program<FieldElement>, ParserError>

Parse multiple Circuit blocks and return a Program.

Source

pub(crate) fn parse_circuit( &mut self, ) -> Result<Circuit<FieldElement>, ParserError>

Source

fn parse_private_parameters(&mut self) -> Result<BTreeSet<Witness>, ParserError>

Source

fn parse_public_parameters(&mut self) -> Result<BTreeSet<Witness>, ParserError>

Source

fn parse_return_values(&mut self) -> Result<BTreeSet<Witness>, ParserError>

Source

fn parse_witness_vector(&mut self) -> Result<Vec<Witness>, ParserError>

Source

fn parse_witness_ordered_set( &mut self, ) -> Result<BTreeSet<Witness>, ParserError>

Source

fn parse_opcodes(&mut self) -> Result<Vec<Opcode<FieldElement>>, ParserError>

Source

fn parse_assert_zero_expression( &mut self, ) -> Result<Expression<FieldElement>, ParserError>

Source

fn parse_terms_or_error(&mut self) -> Result<Vec<Term>, ParserError>

Source

fn parse_term_or_error(&mut self) -> Result<Term, ParserError>

Source

fn parse_linear_or_multiplication_term( &mut self, coefficient: FieldElement, w1: Witness, ) -> Result<Term, ParserError>

Source

fn parse_arithmetic_expression( &mut self, ) -> Result<Expression<FieldElement>, ParserError>

Source

fn parse_blackbox_func_call( &mut self, ) -> Result<BlackBoxFuncCall<FieldElement>, ParserError>

Source

fn parse_blackbox_inputs_array<const N: usize>( &mut self, keyword: Keyword, ) -> Result<Box<[FunctionInput<FieldElement>; N]>, ParserError>

Source

fn parse_blackbox_inputs( &mut self, keyword: Keyword, ) -> Result<Vec<FunctionInput<FieldElement>>, ParserError>

Source

fn parse_blackbox_input( &mut self, keyword: Keyword, ) -> Result<FunctionInput<FieldElement>, ParserError>

Source

fn parse_blackbox_input_no_keyword( &mut self, ) -> Result<FunctionInput<FieldElement>, ParserError>

Source

fn parse_blackbox_output(&mut self) -> Result<Witness, ParserError>

Source

fn parse_blackbox_outputs_array<const N: usize>( &mut self, ) -> Result<Box<[Witness; N]>, ParserError>

Source

fn parse_blackbox_outputs(&mut self) -> Result<Vec<Witness>, ParserError>

Source

fn parse_blackbox_u32(&mut self, keyword: Keyword) -> Result<u32, ParserError>

Source

fn parse_memory_init(&mut self) -> Result<Opcode<FieldElement>, ParserError>

Source

fn parse_block_type(&mut self) -> Result<BlockType, ParserError>

Source

fn parse_memory_read(&mut self) -> Result<Opcode<FieldElement>, ParserError>

Source

fn parse_memory_write(&mut self) -> Result<Opcode<FieldElement>, ParserError>

Source

fn parse_brillig_call(&mut self) -> Result<Opcode<FieldElement>, ParserError>

Source

fn parse_brillig_inputs( &mut self, ) -> Result<Vec<BrilligInputs<FieldElement>>, ParserError>

Source

fn parse_brillig_input( &mut self, ) -> Result<BrilligInputs<FieldElement>, ParserError>

Source

fn parse_brillig_outputs(&mut self) -> Result<Vec<BrilligOutputs>, ParserError>

Source

fn parse_brillig_output(&mut self) -> Result<BrilligOutputs, ParserError>

Source

fn parse_call(&mut self) -> Result<Opcode<FieldElement>, ParserError>

Source

fn eat_predicate( &mut self, ) -> Result<Option<Expression<FieldElement>>, ParserError>

Source

fn parse_bracketed_list<T, F>( &mut self, parser: F, ) -> Result<Vec<T>, ParserError>
where F: Fn(&mut Parser<'a>) -> Result<T, ParserError>,

Source

fn eat_ident_or_error(&mut self) -> Result<String, ParserError>

Source

fn eat_ident(&mut self) -> Result<Option<String>, ParserError>

Source

fn eat_field_element(&mut self) -> Result<Option<FieldElement>, ParserError>

Source

fn eat_field_or_error(&mut self) -> Result<FieldElement, ParserError>

Source

fn eat_u32_or_error(&mut self) -> Result<u32, ParserError>

Source

fn bump(&mut self) -> Result<SpannedToken, ParserError>

Source

fn read_token_internal(&mut self) -> Result<SpannedToken, ParserError>

Source

fn eat_keyword(&mut self, keyword: Keyword) -> Result<bool, ParserError>

Source

fn eat_keyword_or_error(&mut self, keyword: Keyword) -> Result<(), ParserError>

Source

fn peek_keyword(&self) -> Option<Keyword>

Source

fn eat_witness(&mut self) -> Result<Option<Witness>, ParserError>

Source

fn eat_witness_or_error(&mut self) -> Result<Witness, ParserError>

Source

fn eat_block_id(&mut self) -> Result<Option<BlockId>, ParserError>

Source

fn eat_block_id_or_error(&mut self) -> Result<BlockId, ParserError>

Source

fn eat_comma_or_error(&mut self) -> Result<(), ParserError>

Source

fn eat_or_error(&mut self, token: Token) -> Result<(), ParserError>

Source

fn at(&mut self, token: Token) -> bool

Source

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.

Source

fn try_vec_to_array<const N: usize, T: Clone>( &self, vec: Vec<T>, keyword: Keyword, ) -> Result<Box<[T; N]>, ParserError>

Source

fn expected_identifier<T>(&mut self) -> Result<T, ParserError>

Source

fn expected_field_element<T>(&mut self) -> Result<T, ParserError>

Source

fn expected_witness<T>(&mut self) -> Result<T, ParserError>

Source

fn expected_block_id<T>(&mut self) -> Result<T, ParserError>

Source

fn expected_term<T>(&mut self) -> Result<T, ParserError>

Source

fn expected_token<T>(&mut self, token: Token) -> Result<T, ParserError>

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V