Lines Matching refs:input

101         move |input: &[Token]| {
102 if input.is_empty() {
106 if input[0].kind==TokenKind::$k && &input[0].raw[..]==$c {
107 Ok((&input[1..], &input[0].raw[..]))
109 Err(crate::nom::Err::Error((input, crate::ErrorKind::ExactToken(TokenKind::$k,$c)).into()))
116 fn identifier_token(input: &[Token]) -> CResult<'_, &[u8]> {
117 if input.is_empty() {
121 if input[0].kind == TokenKind::Identifier {
122 Ok((&input[1..], &input[0].raw[..]))
124 Err(crate::nom::Err::Error((input, crate::ErrorKind::TypedToken(TokenKind::Identifier)).into()))
134 move |input| {
135 if input.is_empty() {
142 } else if input[0].kind == TokenKind::Punctuation
143 && c.iter().any(|opt| opt.as_bytes() == &input[0].raw[..])
145 Ok((&input[1..], &input[0].raw[..]))
149 input,
268 fn unary_op(input: (&[u8], EvalResult)) -> Option<EvalResult> {
270 assert_eq!(input.0.len(), 1);
271 match (input.0[0], input.1) {
293 fn unary(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
302 ))(input)
305 fn mul_div_rem(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
306 let (input, acc) = self.unary(input)?;
321 )(input)
324 fn add_sub(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
325 let (input, acc) = self.mul_div_rem(input)?;
339 )(input)
342 fn shl_shr(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
343 let (input, acc) = self.add_sub(input)?;
357 ))(input)
360 fn and(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
361 let (input, acc) = self.shl_shr(input)?;
369 ))(input)
372 fn xor(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
373 let (input, acc) = self.and(input)?;
381 ))(input)
384 fn or(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
385 let (input, acc) = self.xor(input)?;
393 ))(input)
397 fn numeric_expr(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
398 self.or(input)
407 fn identifier(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
408 match input.split_first() {
421 (input, crate::ErrorKind::UnknownIdentifier).into(),
426 (input, crate::ErrorKind::TypedToken(TokenKind::Identifier)).into(),
431 fn literal(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
432 match input.split_first() {
442 _ => Err(Err::Error((input, crate::ErrorKind::InvalidLiteral).into())),
445 (input, crate::ErrorKind::TypedToken(TokenKind::Literal)).into(),
450 fn string(self, input: &'_ [Token]) -> CResult<'_, Vec<u8>> {
454 ))(input)
459 fn concat_str(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
470 )(input)
474 fn expr(self, input: &'_ [Token]) -> CResult<'_, EvalResult> {
481 ))(input)
485 fn macro_definition(self, input: &'_ [Token]) -> CResult<'_, (&'_ [u8], EvalResult)> {
486 pair(identifier_token, |i| self.expr(i))(input)
511 /// Returns an error if the input is not a valid expression or if the token
513 pub fn expr<'a>(&self, input: &'a [Token]) -> CResult<'a, EvalResult> {
514 self.as_ref().expr(input)
520 /// expression. The input should not include `#define`.
537 pub fn macro_definition<'a>(&self, input: &'a [Token]) -> CResult<'a, (&'a [u8], EvalResult)> {
538 crate::assert_full_parse(self.as_ref().macro_definition(input))
544 /// Returns an error if the input is not a valid expression or if the token
546 pub fn expr(input: &[Token]) -> CResult<'_, EvalResult> {
547 IdentifierParser::new(&HashMap::new()).expr(input)
553 /// expression. The input should not include `#define`.
558 pub fn macro_definition(input: &[Token]) -> CResult<'_, (&'_ [u8], EvalResult)> {
559 IdentifierParser::new(&HashMap::new()).macro_definition(input)
565 /// input should not include `#define`. The actual definition is not parsed and
568 /// Returns an error if the input is not a functional macro or if the token
601 pub fn fn_macro_declaration(input: &[Token]) -> CResult<'_, (&[u8], Vec<&[u8]>)> {
609 )(input)