diff --git a/lalrpop-snap/src/newparser.rs b/lalrpop-snap/src/newparser.rs deleted file mode 100644 index 491d3f9..0000000 --- a/lalrpop-snap/src/newparser.rs +++ /dev/null @@ -1,42643 +0,0 @@ -#![allow(unused_imports)] -#![allow(unused_variables)] -use intern::{intern, InternedString}; -use grammar::parse_tree::*; -use grammar::pattern::*; -use std::iter::once; -use tok::{self, Tok}; -extern crate lalrpop_util as __lalrpop_util; -use self::__lalrpop_util::ParseError as __ParseError; -#[allow(non_snake_case)] -pub fn parse_Grammar< - 'input, - __TOKEN: __ToTriple<'input, Error=tok::Error>, - __TOKENS: IntoIterator, ->( - text: &'input str, - __tokens: __TOKENS, -) -> Result,tok::Error>> -{ - let mut __tokens = __tokens.into_iter(); - let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - match try!(__parse__Grammar::__state0(text, None, __lookahead, &mut __tokens)) { - (_, Some(__lookahead), _) => { - Err(__ParseError::ExtraToken { token: __lookahead }) - } - (_, None, __parse__Grammar::__Nonterminal::____Grammar(__nt)) => { - Ok(__nt) - } - _ => unreachable!(), - } -} - -mod __parse__Grammar { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use intern::{intern, InternedString}; - use grammar::parse_tree::*; - use grammar::pattern::*; - use std::iter::once; - use tok::{self, Tok}; - extern crate lalrpop_util as __lalrpop_util; - use self::__lalrpop_util::ParseError as __ParseError; - use super::__ToTriple; - - pub enum __Nonterminal<'input, > { - ____Grammar(Grammar), - Comma_3cNonterminalId_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType(AssociatedType), - Action_3f(::std::option::Option), - GrammarParameter_3f(::std::option::Option), - NonterminalId_3f(::std::option::Option), - Alternatives(Vec), - _28_3cId_3e_20_22_3a_3a_22_29_2a(::std::vec::Vec), - _28_3cFieldPattern_3e_20_22_2c_22_29(FieldPattern), - _22where_22_3f(::std::option::Option>), - Id(InternedString), - _28_3cTypeRef_3e_20_22_2c_22_29(TypeRef), - _40R(usize), - GrammarTypeParameters_3f(::std::option::Option>), - Use_2a(::std::vec::Vec), - _28_3cConversion_3e_20_22_2c_22_29(Conversion), - Symbol1(Symbol), - GrammarItem(GrammarItem), - RepeatOp(RepeatOp), - ExprSymbol(ExprSymbol), - Terminal(TerminalString), - Symbol_3f(::std::option::Option), - MacroId(NonterminalString), - _28_22if_22_20_3cCond_3e_29(Condition), - GrammarItem_2a(::std::vec::Vec), - FieldPattern_3f(::std::option::Option>), - _28_3cTypeRef_3e_20_22_2c_22_29_2a(::std::vec::Vec), - Comma_3cConversion_3e(Vec), - Action(ActionKind), - Cond(Condition), - Conversion_3f(::std::option::Option), - _28_3cFieldPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameters(Vec), - _22_3a_3a_22_3f(::std::option::Option>), - TypeRefOrLifetime_3f(::std::option::Option), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType_2a(::std::vec::Vec), - NonterminalName((NonterminalString, Vec)), - Comma_3cTypeRefOrLifetime_3e(Vec), - FieldPattern(FieldPattern), - Escape(InternedString), - Symbol0(Symbol), - Pattern_3f(::std::option::Option>), - _28_22if_22_20_3cCond_3e_29_3f(::std::option::Option), - _28_3cTypeParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - SymbolKind1(SymbolKind), - Symbol(Symbol), - Alternative(Alternative), - _22mut_22_3f(::std::option::Option>), - PatternKind(PatternKind), - GrammarTypeParameters(Vec), - Path(Path), - TypeRef_3f(::std::option::Option), - ExternToken(GrammarItem), - Lifetime_3f(::std::option::Option), - Comma_3cTypeRef_3e(Vec), - Comma_3cGrammarParameter_3e(Vec), - Grammar(Grammar), - _28_3cPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameter(Parameter), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(TypeRef), - _28_3cGrammarParameter_3e_20_22_2c_22_29(Parameter), - _28_3cSymbol_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeRef(TypeRef), - _28_22_3a_22_20_3cTypeRef_3e_29_3f(::std::option::Option), - Nonterminal(GrammarItem), - Pattern(Pattern), - Conversion(Conversion), - Use(GrammarItem), - CondOp(ConditionOp), - NonterminalId(NonterminalString), - Comma_3cSymbol_3e(Vec), - _28_3cSymbol_3e_20_22_2c_22_29(Symbol), - _28_22_3a_22_20_3cTypeRef_3e_29(TypeRef), - _28_3cId_3e_20_22_3a_3a_22_29(InternedString), - Alternative_2a(::std::vec::Vec), - _28_3cGrammarParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - _40L(usize), - _28_3cTypeParameter_3e_20_22_2c_22_29(TypeParameter), - Lifetime(InternedString), - TypeParameter_3f(::std::option::Option), - _28_3cConversion_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeParameter(TypeParameter), - Comma_3cTypeParameter_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29(NonterminalString), - _22pub_22_3f(::std::option::Option>), - Comma_3cPattern_3e(Vec>), - TypeRefOrLifetime(TypeRef), - _28_3cPattern_3e_20_22_2c_22_29(Pattern), - GrammarParameters_3f(::std::option::Option>), - Symbol_2a(::std::vec::Vec), - ____Pattern(Pattern), - StringLiteral(InternedString), - } - - // State 0 - // Grammar = (*) Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // Use* = (*) ["grammar"] - // Use* = (*) ["use"] - // Use* = (*) Use* Use ["grammar"] - // Use* = (*) Use* Use ["use"] - // __Grammar = (*) Grammar [EOF] - // - // "use" -> Reduce(Use* = => Call(ActionFn(119));) - // "grammar" -> Reduce(Use* = => Call(ActionFn(119));) - // - // Grammar -> S2 - // Use* -> S1 - pub fn __state0< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(_), _)) => { - let __nt = super::__action119(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt)); - } - Some((_, Tok::Grammar(..), _)) => { - let __nt = super::__action119(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - loop { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Grammar(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state2(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - __Nonterminal::Use_2a(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state1(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - } - - // State 1 - // @L = (*) ["grammar"] - // Grammar = Use* (*) @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // Use = (*) "use" ";" ["grammar"] - // Use = (*) "use" ";" ["use"] - // Use* = Use* (*) Use ["grammar"] - // Use* = Use* (*) Use ["use"] - // - // "use" -> Shift(S4) - // "grammar" -> Reduce(@L = => Lookahead;) - // - // @L -> S3 - // Use -> S5 - pub fn __state1< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state4(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Grammar(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state3(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Use(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state5(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 2 - // __Grammar = Grammar (*) [EOF] - // - // EOF -> Reduce(__Grammar = Grammar => Call(ActionFn(0));) - // - pub fn __state2< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action0(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::____Grammar(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 3 - // Grammar = Use* @L (*) "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // - // "grammar" -> Shift(S6) - // - pub fn __state3< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Grammar(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 4 - // Use = "use" (*) ";" ["grammar"] - // Use = "use" (*) ";" ["use"] - // - // ";" -> Shift(S7) - // - pub fn __state4< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state7(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 5 - // Use* = Use* Use (*) ["grammar"] - // Use* = Use* Use (*) ["use"] - // - // "use" -> Reduce(Use* = Use*, Use => Call(ActionFn(120));) - // "grammar" -> Reduce(Use* = Use*, Use => Call(ActionFn(120));) - // - pub fn __state5< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action120(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt))); - } - Some((_, Tok::Grammar(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action120(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 6 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["where"] - // Grammar = Use* @L "grammar" (*) @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // - // "<" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "where" -> Reduce(@R = => Lookbehind;) - // - // @R -> S8 - pub fn __state6< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Where(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state8(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 7 - // Use = "use" ";" (*) ["grammar"] - // Use = "use" ";" (*) ["use"] - // - // "grammar" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "use" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // - pub fn __state7< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Grammar(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 8 - // Grammar = Use* @L "grammar" @R (*) GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // GrammarTypeParameters = (*) "<" Comma ">" ["("] - // GrammarTypeParameters = (*) "<" Comma ">" [";"] - // GrammarTypeParameters = (*) "<" Comma ">" ["where"] - // GrammarTypeParameters? = (*) ["("] - // GrammarTypeParameters? = (*) [";"] - // GrammarTypeParameters? = (*) ["where"] - // GrammarTypeParameters? = (*) GrammarTypeParameters ["("] - // GrammarTypeParameters? = (*) GrammarTypeParameters [";"] - // GrammarTypeParameters? = (*) GrammarTypeParameters ["where"] - // - // ";" -> Reduce(GrammarTypeParameters? = => Call(ActionFn(118));) - // "where" -> Reduce(GrammarTypeParameters? = => Call(ActionFn(118));) - // "(" -> Reduce(GrammarTypeParameters? = => Call(ActionFn(118));) - // "<" -> Shift(S11) - // - // GrammarTypeParameters -> S9 - // GrammarTypeParameters? -> S10 - pub fn __state8< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state11(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action118(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt)); - } - Some((_, Tok::Where(_), _)) => { - let __nt = super::__action118(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action118(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::GrammarTypeParameters(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state9(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - __Nonterminal::GrammarTypeParameters_3f(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state10(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 9 - // GrammarTypeParameters? = GrammarTypeParameters (*) ["("] - // GrammarTypeParameters? = GrammarTypeParameters (*) [";"] - // GrammarTypeParameters? = GrammarTypeParameters (*) ["where"] - // - // "where" -> Reduce(GrammarTypeParameters? = GrammarTypeParameters => Call(ActionFn(117));) - // "(" -> Reduce(GrammarTypeParameters? = GrammarTypeParameters => Call(ActionFn(117));) - // ";" -> Reduce(GrammarTypeParameters? = GrammarTypeParameters => Call(ActionFn(117));) - // - pub fn __state9< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action117(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action117(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action117(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 10 - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? (*) GrammarParameters? "where"? ";" GrammarItem* [EOF] - // GrammarParameters = (*) "(" Comma ")" [";"] - // GrammarParameters = (*) "(" Comma ")" ["where"] - // GrammarParameters? = (*) [";"] - // GrammarParameters? = (*) ["where"] - // GrammarParameters? = (*) GrammarParameters [";"] - // GrammarParameters? = (*) GrammarParameters ["where"] - // - // "where" -> Reduce(GrammarParameters? = => Call(ActionFn(116));) - // "(" -> Shift(S13) - // ";" -> Reduce(GrammarParameters? = => Call(ActionFn(116));) - // - // GrammarParameters? -> S12 - // GrammarParameters -> S14 - pub fn __state10< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state13(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, Tok::Where(_), _)) => { - let __nt = super::__action116(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action116(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::GrammarParameters_3f(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state12(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::GrammarParameters(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 11 - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeParameter? [">"] - // GrammarTypeParameters = "<" (*) Comma ">" ["("] - // GrammarTypeParameters = "<" (*) Comma ">" [";"] - // GrammarTypeParameters = "<" (*) Comma ">" ["where"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(123));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(123));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(123));) - // - // ( ",")* -> S15 - // Comma -> S16 - pub fn __state11< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action123(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action123(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action123(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state15(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeParameter_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 12 - // "where"? = (*) [";"] - // "where"? = (*) "where" [";"] - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? (*) "where"? ";" GrammarItem* [EOF] - // - // "where" -> Shift(S18) - // ";" -> Reduce("where"? = => Call(ActionFn(114));) - // - // "where"? -> S17 - pub fn __state12< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action114(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22where_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22where_22_3f(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 13 - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* GrammarParameter? [")"] - // GrammarParameters = "(" (*) Comma ")" [";"] - // GrammarParameters = "(" (*) Comma ")" ["where"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(128));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(128));) - // - // Comma -> S20 - // ( ",")* -> S19 - pub fn __state13< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action128(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action128(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cGrammarParameter_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state19(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 14 - // GrammarParameters? = GrammarParameters (*) [";"] - // GrammarParameters? = GrammarParameters (*) ["where"] - // - // "where" -> Reduce(GrammarParameters? = GrammarParameters => Call(ActionFn(115));) - // ";" -> Reduce(GrammarParameters? = GrammarParameters => Call(ActionFn(115));) - // - pub fn __state14< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action115(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action115(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 15 - // ( ",") = (*) TypeParameter "," [">"] - // ( ",") = (*) TypeParameter "," ["Id"] - // ( ",") = (*) TypeParameter "," ["Lifetime"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["Lifetime"] - // Comma = ( ",")* (*) TypeParameter? [">"] - // TypeParameter = (*) "Id" [","] - // TypeParameter = (*) "Id" [">"] - // TypeParameter = (*) "Lifetime" [","] - // TypeParameter = (*) "Lifetime" [">"] - // TypeParameter? = (*) [">"] - // TypeParameter? = (*) TypeParameter [">"] - // - // "Lifetime" -> Shift(S22) - // "Id" -> Shift(S21) - // ">" -> Reduce(TypeParameter? = => Call(ActionFn(122));) - // - // TypeParameter? -> S24 - // TypeParameter -> S23 - // ( ",") -> S25 - pub fn __state15< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action122(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeParameter_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeParameter_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state24(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeParameter(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state23(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state25(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 16 - // GrammarTypeParameters = "<" Comma (*) ">" ["("] - // GrammarTypeParameters = "<" Comma (*) ">" [";"] - // GrammarTypeParameters = "<" Comma (*) ">" ["where"] - // - // ">" -> Shift(S26) - // - pub fn __state16< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state26(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 17 - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? (*) ";" GrammarItem* [EOF] - // - // ";" -> Shift(S27) - // - pub fn __state17< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - __sym6: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym7 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state27(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 18 - // "where"? = "where" (*) [";"] - // - // ";" -> Reduce("where"? = "where" => Call(ActionFn(113));) - // - pub fn __state18< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action113(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22where_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 19 - // ( ",") = (*) GrammarParameter "," [")"] - // ( ",") = (*) GrammarParameter "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) GrammarParameter? [")"] - // GrammarParameter = (*) Id ":" TypeRef [")"] - // GrammarParameter = (*) Id ":" TypeRef [","] - // GrammarParameter? = (*) [")"] - // GrammarParameter? = (*) GrammarParameter [")"] - // Id = (*) "Id" [":"] - // - // "Id" -> Shift(S30) - // ")" -> Reduce(GrammarParameter? = => Call(ActionFn(127));) - // - // ( ",") -> S31 - // GrammarParameter -> S28 - // GrammarParameter? -> S29 - // Id -> S32 - pub fn __state19< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state30(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action127(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarParameter_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state31(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::GrammarParameter(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state28(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::GrammarParameter_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state29(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 20 - // GrammarParameters = "(" Comma (*) ")" [";"] - // GrammarParameters = "(" Comma (*) ")" ["where"] - // - // ")" -> Shift(S33) - // - pub fn __state20< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 21 - // TypeParameter = "Id" (*) [","] - // TypeParameter = "Id" (*) [">"] - // - // "," -> Reduce(TypeParameter = "Id" => Call(ActionFn(5));) - // ">" -> Reduce(TypeParameter = "Id" => Call(ActionFn(5));) - // - pub fn __state21< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action5(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action5(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 22 - // TypeParameter = "Lifetime" (*) [","] - // TypeParameter = "Lifetime" (*) [">"] - // - // "," -> Reduce(TypeParameter = "Lifetime" => Call(ActionFn(4));) - // ">" -> Reduce(TypeParameter = "Lifetime" => Call(ActionFn(4));) - // - pub fn __state22< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action4(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action4(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 23 - // ( ",") = TypeParameter (*) "," [">"] - // ( ",") = TypeParameter (*) "," ["Id"] - // ( ",") = TypeParameter (*) "," ["Lifetime"] - // TypeParameter? = TypeParameter (*) [">"] - // - // "," -> Shift(S34) - // ">" -> Reduce(TypeParameter? = TypeParameter => Call(ActionFn(121));) - // - pub fn __state23< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state34(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action121(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 24 - // Comma = ( ",")* TypeParameter? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, TypeParameter? => Call(ActionFn(110));) - // - pub fn __state24< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action110(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeParameter_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 25 - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["Lifetime"] - // - // "Lifetime" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(124));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(124));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(124));) - // - pub fn __state25< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action124(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action124(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action124(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 26 - // GrammarTypeParameters = "<" Comma ">" (*) ["("] - // GrammarTypeParameters = "<" Comma ">" (*) [";"] - // GrammarTypeParameters = "<" Comma ">" (*) ["where"] - // - // ";" -> Reduce(GrammarTypeParameters = "<", Comma, ">" => Call(ActionFn(3));) - // "(" -> Reduce(GrammarTypeParameters = "<", Comma, ">" => Call(ActionFn(3));) - // "where" -> Reduce(GrammarTypeParameters = "<", Comma, ">" => Call(ActionFn(3));) - // - pub fn __state26< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action3(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action3(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters(__nt))); - } - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action3(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 27 - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" (*) GrammarItem* [EOF] - // GrammarItem* = (*) [EOF] - // GrammarItem* = (*) ["Escape"] - // GrammarItem* = (*) ["Id"] - // GrammarItem* = (*) ["MacroId"] - // GrammarItem* = (*) ["extern"] - // GrammarItem* = (*) ["pub"] - // GrammarItem* = (*) ["use"] - // GrammarItem* = (*) GrammarItem* GrammarItem [EOF] - // GrammarItem* = (*) GrammarItem* GrammarItem ["Escape"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["Id"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["MacroId"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["extern"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["pub"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["use"] - // - // "Escape" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "MacroId" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "Id" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "pub" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // EOF -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "use" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "extern" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // - // GrammarItem* -> S35 - pub fn __state27< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - __sym6: &mut Option<::std::option::Option>>, - __sym7: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Pub(..), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - None => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Use(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Extern(..), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym7.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::GrammarItem_2a(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state35(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 28 - // ( ",") = GrammarParameter (*) "," [")"] - // ( ",") = GrammarParameter (*) "," ["Id"] - // GrammarParameter? = GrammarParameter (*) [")"] - // - // ")" -> Reduce(GrammarParameter? = GrammarParameter => Call(ActionFn(126));) - // "," -> Shift(S36) - // - pub fn __state28< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action126(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameter_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 29 - // Comma = ( ",")* GrammarParameter? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, GrammarParameter? => Call(ActionFn(109));) - // - pub fn __state29< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action109(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cGrammarParameter_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 30 - // Id = "Id" (*) [":"] - // - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state30< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 31 - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(129));) - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(129));) - // - pub fn __state31< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action129(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action129(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 32 - // GrammarParameter = Id (*) ":" TypeRef [")"] - // GrammarParameter = Id (*) ":" TypeRef [","] - // - // ":" -> Shift(S37) - // - pub fn __state32< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state37(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 33 - // GrammarParameters = "(" Comma ")" (*) [";"] - // GrammarParameters = "(" Comma ")" (*) ["where"] - // - // "where" -> Reduce(GrammarParameters = "(", Comma, ")" => Call(ActionFn(6));) - // ";" -> Reduce(GrammarParameters = "(", Comma, ")" => Call(ActionFn(6));) - // - pub fn __state33< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action6(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action6(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 34 - // ( ",") = TypeParameter "," (*) [">"] - // ( ",") = TypeParameter "," (*) ["Id"] - // ( ",") = TypeParameter "," (*) ["Lifetime"] - // - // "Lifetime" -> Reduce(( ",") = TypeParameter, "," => Call(ActionFn(125));) - // ">" -> Reduce(( ",") = TypeParameter, "," => Call(ActionFn(125));) - // "Id" -> Reduce(( ",") = TypeParameter, "," => Call(ActionFn(125));) - // - pub fn __state34< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action125(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action125(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action125(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 35 - // "pub"? = (*) ["Escape"] - // "pub"? = (*) ["Id"] - // "pub"? = (*) ["MacroId"] - // "pub"? = (*) "pub" ["Escape"] - // "pub"? = (*) "pub" ["Id"] - // "pub"? = (*) "pub" ["MacroId"] - // @L = (*) ["extern"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* (*) [EOF] - // GrammarItem = (*) ExternToken [EOF] - // GrammarItem = (*) ExternToken ["Escape"] - // GrammarItem = (*) ExternToken ["Id"] - // GrammarItem = (*) ExternToken ["MacroId"] - // GrammarItem = (*) ExternToken ["extern"] - // GrammarItem = (*) ExternToken ["pub"] - // GrammarItem = (*) ExternToken ["use"] - // GrammarItem = (*) Nonterminal [EOF] - // GrammarItem = (*) Nonterminal ["Escape"] - // GrammarItem = (*) Nonterminal ["Id"] - // GrammarItem = (*) Nonterminal ["MacroId"] - // GrammarItem = (*) Nonterminal ["extern"] - // GrammarItem = (*) Nonterminal ["pub"] - // GrammarItem = (*) Nonterminal ["use"] - // GrammarItem = (*) Use [EOF] - // GrammarItem = (*) Use ["Escape"] - // GrammarItem = (*) Use ["Id"] - // GrammarItem = (*) Use ["MacroId"] - // GrammarItem = (*) Use ["extern"] - // GrammarItem = (*) Use ["pub"] - // GrammarItem = (*) Use ["use"] - // GrammarItem* = GrammarItem* (*) GrammarItem [EOF] - // GrammarItem* = GrammarItem* (*) GrammarItem ["Escape"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["Id"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["MacroId"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["extern"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["pub"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["use"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives [EOF] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["use"] - // Use = (*) "use" ";" [EOF] - // Use = (*) "use" ";" ["Escape"] - // Use = (*) "use" ";" ["Id"] - // Use = (*) "use" ";" ["MacroId"] - // Use = (*) "use" ";" ["extern"] - // Use = (*) "use" ";" ["pub"] - // Use = (*) "use" ";" ["use"] - // - // "Id" -> Reduce("pub"? = => Call(ActionFn(108));) - // "extern" -> Reduce(@L = => Lookahead;) - // "use" -> Shift(S40) - // EOF -> Reduce(Grammar = Use*, @L, "grammar", @R, GrammarTypeParameters?, GrammarParameters?, "where"?, ";", GrammarItem* => Call(ActionFn(2));) - // "pub" -> Shift(S41) - // "MacroId" -> Reduce("pub"? = => Call(ActionFn(108));) - // "Escape" -> Reduce("pub"? = => Call(ActionFn(108));) - // - // ExternToken -> S38 - // GrammarItem -> S45 - // Nonterminal -> S42 - // "pub"? -> S39 - // Use -> S44 - // @L -> S43 - pub fn __state35< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - __sym6: &mut Option<::std::option::Option>>, - __sym7: &mut Option>, - __sym8: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym9 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - Some((_, __tok @ Tok::Pub(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym9 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state41(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action108(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt)); - } - Some((_, Tok::Extern(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __nt = super::__action2(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); - return Ok((__lookbehind, __lookahead, __Nonterminal::Grammar(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action108(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action108(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym8.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::ExternToken(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state38(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::GrammarItem(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym8, __sym9)); - } - __Nonterminal::Nonterminal(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state42(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::_22pub_22_3f(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state39(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::Use(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::_40L(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state43(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 36 - // ( ",") = GrammarParameter "," (*) [")"] - // ( ",") = GrammarParameter "," (*) ["Id"] - // - // ")" -> Reduce(( ",") = GrammarParameter, "," => Call(ActionFn(130));) - // "Id" -> Reduce(( ",") = GrammarParameter, "," => Call(ActionFn(130));) - // - pub fn __state36< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action130(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action130(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 37 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // GrammarParameter = Id ":" (*) TypeRef [")"] - // GrammarParameter = Id ":" (*) TypeRef [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // - // "::" -> Shift(S50) - // "&" -> Shift(S46) - // "(" -> Shift(S47) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S53) - // - // Path -> S52 - // Escape -> S49 - // "::"? -> S48 - // TypeRef -> S51 - pub fn __state37< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Escape(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state51(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 38 - // GrammarItem = ExternToken (*) [EOF] - // GrammarItem = ExternToken (*) ["Escape"] - // GrammarItem = ExternToken (*) ["Id"] - // GrammarItem = ExternToken (*) ["MacroId"] - // GrammarItem = ExternToken (*) ["extern"] - // GrammarItem = ExternToken (*) ["pub"] - // GrammarItem = ExternToken (*) ["use"] - // - // "extern" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "MacroId" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "pub" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // EOF -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "Id" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "use" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "Escape" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // - pub fn __state38< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 39 - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["use"] - // - // "MacroId" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S54 - pub fn __state39< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state54(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 40 - // Use = "use" (*) ";" [EOF] - // Use = "use" (*) ";" ["Escape"] - // Use = "use" (*) ";" ["Id"] - // Use = "use" (*) ";" ["MacroId"] - // Use = "use" (*) ";" ["extern"] - // Use = "use" (*) ";" ["pub"] - // Use = "use" (*) ";" ["use"] - // - // ";" -> Shift(S55) - // - pub fn __state40< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state55(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 41 - // "pub"? = "pub" (*) ["Escape"] - // "pub"? = "pub" (*) ["Id"] - // "pub"? = "pub" (*) ["MacroId"] - // - // "MacroId" -> Reduce("pub"? = "pub" => Call(ActionFn(107));) - // "Escape" -> Reduce("pub"? = "pub" => Call(ActionFn(107));) - // "Id" -> Reduce("pub"? = "pub" => Call(ActionFn(107));) - // - pub fn __state41< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action107(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action107(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action107(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 42 - // GrammarItem = Nonterminal (*) [EOF] - // GrammarItem = Nonterminal (*) ["Escape"] - // GrammarItem = Nonterminal (*) ["Id"] - // GrammarItem = Nonterminal (*) ["MacroId"] - // GrammarItem = Nonterminal (*) ["extern"] - // GrammarItem = Nonterminal (*) ["pub"] - // GrammarItem = Nonterminal (*) ["use"] - // - // "MacroId" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "extern" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // EOF -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "pub" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "Escape" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "use" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "Id" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // - pub fn __state42< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 43 - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "extern" -> Shift(S56) - // - pub fn __state43< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Extern(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state56(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 44 - // GrammarItem = Use (*) [EOF] - // GrammarItem = Use (*) ["Escape"] - // GrammarItem = Use (*) ["Id"] - // GrammarItem = Use (*) ["MacroId"] - // GrammarItem = Use (*) ["extern"] - // GrammarItem = Use (*) ["pub"] - // GrammarItem = Use (*) ["use"] - // - // EOF -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "Escape" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "MacroId" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "use" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "extern" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "Id" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "pub" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // - pub fn __state44< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 45 - // GrammarItem* = GrammarItem* GrammarItem (*) [EOF] - // GrammarItem* = GrammarItem* GrammarItem (*) ["Escape"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["Id"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["MacroId"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["extern"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["pub"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["use"] - // - // "MacroId" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // EOF -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "pub" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "use" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "Escape" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "Id" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "extern" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // - pub fn __state45< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 46 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [")"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime? -> S57 - // Lifetime -> S59 - pub fn __state46< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state57(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 47 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [")"] - // TypeRef = "(" (*) Comma ")" [","] - // - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S60 - // Comma -> S61 - pub fn __state47< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state61(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 48 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [")"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S62 - pub fn __state48< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state62(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 49 - // TypeRef = Escape (*) [")"] - // TypeRef = Escape (*) [","] - // - // ")" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state49< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 50 - // "::"? = "::" (*) ["Id"] - // - // "Id" -> Reduce("::"? = "::" => Call(ActionFn(85));) - // - pub fn __state50< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action85(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 51 - // GrammarParameter = Id ":" TypeRef (*) [")"] - // GrammarParameter = Id ":" TypeRef (*) [","] - // - // "," -> Reduce(GrammarParameter = Id, ":", TypeRef => Call(ActionFn(7));) - // ")" -> Reduce(GrammarParameter = Id, ":", TypeRef => Call(ActionFn(7));) - // - pub fn __state51< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action7(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameter(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action7(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameter(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 52 - // TypeRef = Path (*) [")"] - // TypeRef = Path (*) [","] - // TypeRef = Path (*) "<" Comma ">" [")"] - // TypeRef = Path (*) "<" Comma ">" [","] - // - // ")" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S63) - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state52< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state63(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 53 - // Escape = "Escape" (*) [")"] - // Escape = "Escape" (*) [","] - // - // ")" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state53< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 54 - // Id = (*) "Id" [":"] - // Id = (*) "Id" ["="] - // MacroId = (*) "MacroId" ["<"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["use"] - // NonterminalId = (*) Id [":"] - // NonterminalId = (*) Id ["="] - // NonterminalName = (*) MacroId "<" Comma ">" [":"] - // NonterminalName = (*) MacroId "<" Comma ">" ["="] - // NonterminalName = (*) NonterminalId [":"] - // NonterminalName = (*) NonterminalId ["="] - // NonterminalName = (*) "Escape" [":"] - // NonterminalName = (*) "Escape" ["="] - // - // "Escape" -> Shift(S67) - // "MacroId" -> Shift(S68) - // "Id" -> Shift(S66) - // - // NonterminalName -> S70 - // NonterminalId -> S65 - // Id -> S69 - // MacroId -> S64 - pub fn __state54< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state67(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state66(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalName(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state65(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state69(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::MacroId(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state64(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 55 - // Use = "use" ";" (*) [EOF] - // Use = "use" ";" (*) ["Escape"] - // Use = "use" ";" (*) ["Id"] - // Use = "use" ";" (*) ["MacroId"] - // Use = "use" ";" (*) ["extern"] - // Use = "use" ";" (*) ["pub"] - // Use = "use" ";" (*) ["use"] - // - // EOF -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "Id" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "Escape" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "MacroId" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "extern" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "use" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "pub" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // - pub fn __state55< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 56 - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "token" -> Shift(S71) - // - pub fn __state56< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Token(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state71(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 57 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [")"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S72 - pub fn __state57< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 58 - // Lifetime = "Lifetime" (*) ["&"] - // Lifetime = "Lifetime" (*) ["("] - // Lifetime = "Lifetime" (*) ["::"] - // Lifetime = "Lifetime" (*) ["Escape"] - // Lifetime = "Lifetime" (*) ["Id"] - // Lifetime = "Lifetime" (*) ["mut"] - // - // "&" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "Id" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "Escape" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "(" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "mut" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "::" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state58< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 59 - // Lifetime? = Lifetime (*) ["&"] - // Lifetime? = Lifetime (*) ["("] - // Lifetime? = Lifetime (*) ["::"] - // Lifetime? = Lifetime (*) ["Escape"] - // Lifetime? = Lifetime (*) ["Id"] - // Lifetime? = Lifetime (*) ["mut"] - // - // "::" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "&" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "mut" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Escape" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Id" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "(" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // - pub fn __state59< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 60 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRef "," ["&"] - // ( ",") = (*) TypeRef "," ["("] - // ( ",") = (*) TypeRef "," [")"] - // ( ",") = (*) TypeRef "," ["::"] - // ( ",") = (*) TypeRef "," ["Escape"] - // ( ",") = (*) TypeRef "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) TypeRef? [")"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef? = (*) [")"] - // TypeRef? = (*) TypeRef [")"] - // - // "&" -> Shift(S46) - // "::" -> Shift(S50) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // ")" -> Reduce(TypeRef? = => Call(ActionFn(142));) - // "Escape" -> Shift(S53) - // "(" -> Shift(S47) - // - // TypeRef? -> S75 - // TypeRef -> S76 - // Path -> S52 - // "::"? -> S48 - // Escape -> S49 - // ( ",") -> S74 - pub fn __state60< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action142(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeRef_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state75(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state76(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state74(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 61 - // TypeRef = "(" Comma (*) ")" [")"] - // TypeRef = "(" Comma (*) ")" [","] - // - // ")" -> Shift(S77) - // - pub fn __state61< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state77(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 62 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [")"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Path = "::"? ( "::")* (*) Id [")"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // - // "Id" -> Shift(S79) - // - // Id -> S78 - // ( "::") -> S80 - pub fn __state62< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state79(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state78(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 63 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [")"] - // TypeRef = Path "<" (*) Comma ">" [","] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S82 - // ( ",")* -> S81 - pub fn __state63< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state82(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 64 - // NonterminalName = MacroId (*) "<" Comma ">" [":"] - // NonterminalName = MacroId (*) "<" Comma ">" ["="] - // - // "<" -> Shift(S83) - // - pub fn __state64< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state83(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 65 - // NonterminalName = NonterminalId (*) [":"] - // NonterminalName = NonterminalId (*) ["="] - // - // ":" -> Reduce(NonterminalName = NonterminalId => Call(ActionFn(14));) - // "=" -> Reduce(NonterminalName = NonterminalId => Call(ActionFn(14));) - // - pub fn __state65< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action14(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action14(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 66 - // Id = "Id" (*) [":"] - // Id = "Id" (*) ["="] - // - // "=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state66< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 67 - // NonterminalName = "Escape" (*) [":"] - // NonterminalName = "Escape" (*) ["="] - // - // ":" -> Reduce(NonterminalName = "Escape" => Call(ActionFn(15));) - // "=" -> Reduce(NonterminalName = "Escape" => Call(ActionFn(15));) - // - pub fn __state67< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action15(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action15(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 68 - // MacroId = "MacroId" (*) ["<"] - // - // "<" -> Reduce(MacroId = "MacroId" => Call(ActionFn(66));) - // - pub fn __state68< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action66(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::MacroId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 69 - // NonterminalId = Id (*) [":"] - // NonterminalId = Id (*) ["="] - // - // ":" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state69< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 70 - // @R = (*) [":"] - // @R = (*) ["="] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["use"] - // - // "=" -> Reduce(@R = => Lookbehind;) - // ":" -> Reduce(@R = => Lookbehind;) - // - // @R -> S84 - pub fn __state70< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Colon(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state84(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 71 - // @R = (*) ["{"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Reduce(@R = => Lookbehind;) - // - // @R -> S85 - pub fn __state71< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state85(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 72 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [")"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // - // "::" -> Shift(S50) - // "(" -> Shift(S47) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S53) - // "&" -> Shift(S46) - // - // Escape -> S49 - // TypeRef -> S86 - // Path -> S52 - // "::"? -> S48 - pub fn __state72< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state86(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 73 - // "mut"? = "mut" (*) ["&"] - // "mut"? = "mut" (*) ["("] - // "mut"? = "mut" (*) ["::"] - // "mut"? = "mut" (*) ["Escape"] - // "mut"? = "mut" (*) ["Id"] - // - // "&" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "Id" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "::" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "Escape" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "(" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // - pub fn __state73< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 74 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // - pub fn __state74< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 75 - // Comma = ( ",")* TypeRef? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, TypeRef? => Call(ActionFn(92));) - // - pub fn __state75< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action92(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRef_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 76 - // ( ",") = TypeRef (*) "," ["&"] - // ( ",") = TypeRef (*) "," ["("] - // ( ",") = TypeRef (*) "," [")"] - // ( ",") = TypeRef (*) "," ["::"] - // ( ",") = TypeRef (*) "," ["Escape"] - // ( ",") = TypeRef (*) "," ["Id"] - // TypeRef? = TypeRef (*) [")"] - // - // ")" -> Reduce(TypeRef? = TypeRef => Call(ActionFn(141));) - // "," -> Shift(S87) - // - pub fn __state76< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state87(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action141(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 77 - // TypeRef = "(" Comma ")" (*) [")"] - // TypeRef = "(" Comma ")" (*) [","] - // - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // ")" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state77< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 78 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [")"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ")" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state78< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 79 - // Id = "Id" (*) [")"] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state79< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 80 - // ( "::")* = ( "::")* ( "::") (*) ["Id"] - // - // "Id" -> Reduce(( "::")* = ( "::")*, ( "::") => Call(ActionFn(83));) - // - pub fn __state80< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action83(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 81 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["&"] - // ( ",") = (*) TypeRefOrLifetime "," ["("] - // ( ",") = (*) TypeRefOrLifetime "," ["::"] - // ( ",") = (*) TypeRefOrLifetime "," [">"] - // ( ",") = (*) TypeRefOrLifetime "," ["Escape"] - // ( ",") = (*) TypeRefOrLifetime "," ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["Lifetime"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["Lifetime"] - // Comma = ( ",")* (*) TypeRefOrLifetime? [">"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Lifetime = (*) "Lifetime" [","] - // Lifetime = (*) "Lifetime" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // TypeRefOrLifetime = (*) Lifetime [","] - // TypeRefOrLifetime = (*) Lifetime [">"] - // TypeRefOrLifetime = (*) TypeRef [","] - // TypeRefOrLifetime = (*) TypeRef [">"] - // TypeRefOrLifetime? = (*) [">"] - // TypeRefOrLifetime? = (*) TypeRefOrLifetime [">"] - // - // "Escape" -> Shift(S93) - // "::" -> Shift(S50) - // "Lifetime" -> Shift(S95) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S100) - // "(" -> Shift(S94) - // ">" -> Reduce(TypeRefOrLifetime? = => Call(ActionFn(147));) - // - // ( ",") -> S92 - // TypeRef -> S98 - // Escape -> S99 - // "::"? -> S89 - // Path -> S90 - // TypeRefOrLifetime? -> S96 - // Lifetime -> S91 - // TypeRefOrLifetime -> S97 - pub fn __state81< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state95(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state100(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action147(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state92(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state98(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state99(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state89(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRefOrLifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state96(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state91(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRefOrLifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state97(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 82 - // TypeRef = Path "<" Comma (*) ">" [")"] - // TypeRef = Path "<" Comma (*) ">" [","] - // - // ">" -> Shift(S101) - // - pub fn __state82< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state101(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 83 - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* NonterminalId? [">"] - // NonterminalName = MacroId "<" (*) Comma ">" [":"] - // NonterminalName = MacroId "<" (*) Comma ">" ["="] - // - // ">" -> Reduce(( ",")* = => Call(ActionFn(133));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(133));) - // - // Comma -> S103 - // ( ",")* -> S102 - pub fn __state83< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action133(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action133(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cNonterminalId_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state103(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state102(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 84 - // (":" ) = (*) ":" TypeRef ["="] - // (":" )? = (*) ["="] - // (":" )? = (*) (":" ) ["="] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["use"] - // - // "=" -> Reduce((":" )? = => Call(ActionFn(105));) - // ":" -> Shift(S104) - // - // (":" ) -> S106 - // (":" )? -> S105 - pub fn __state84< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state104(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - Some((_, Tok::Equals(..), _)) => { - let __nt = super::__action105(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state106(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29_3f(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state105(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 85 - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Shift(S107) - // - pub fn __state85< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state107(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 86 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [")"] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // ")" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state86< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 87 - // ( ",") = TypeRef "," (*) ["&"] - // ( ",") = TypeRef "," (*) ["("] - // ( ",") = TypeRef "," (*) [")"] - // ( ",") = TypeRef "," (*) ["::"] - // ( ",") = TypeRef "," (*) ["Escape"] - // ( ",") = TypeRef "," (*) ["Id"] - // - // "(" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "::" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "&" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // ")" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "Id" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "Escape" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // - pub fn __state87< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 88 - // ( "::") = Id "::" (*) ["Id"] - // - // "Id" -> Reduce(( "::") = Id, "::" => Call(ActionFn(84));) - // - pub fn __state88< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action84(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 89 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id [">"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S108 - pub fn __state89< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state108(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 90 - // TypeRef = Path (*) [","] - // TypeRef = Path (*) [">"] - // TypeRef = Path (*) "<" Comma ">" [","] - // TypeRef = Path (*) "<" Comma ">" [">"] - // - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S109) - // ">" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state90< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state109(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 91 - // TypeRefOrLifetime = Lifetime (*) [","] - // TypeRefOrLifetime = Lifetime (*) [">"] - // - // "," -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // ">" -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // - pub fn __state91< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 92 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["Lifetime"] - // - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Lifetime" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // - pub fn __state92< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 93 - // Escape = "Escape" (*) [","] - // Escape = "Escape" (*) [">"] - // - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state93< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 94 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [","] - // TypeRef = "(" (*) Comma ")" [">"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S110 - // ( ",")* -> S60 - pub fn __state94< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state110(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 95 - // Lifetime = "Lifetime" (*) [","] - // Lifetime = "Lifetime" (*) [">"] - // - // ">" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "," -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state95< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 96 - // Comma = ( ",")* TypeRefOrLifetime? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, TypeRefOrLifetime? => Call(ActionFn(87));) - // - pub fn __state96< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action87(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 97 - // ( ",") = TypeRefOrLifetime (*) "," ["&"] - // ( ",") = TypeRefOrLifetime (*) "," ["("] - // ( ",") = TypeRefOrLifetime (*) "," ["::"] - // ( ",") = TypeRefOrLifetime (*) "," [">"] - // ( ",") = TypeRefOrLifetime (*) "," ["Escape"] - // ( ",") = TypeRefOrLifetime (*) "," ["Id"] - // ( ",") = TypeRefOrLifetime (*) "," ["Lifetime"] - // TypeRefOrLifetime? = TypeRefOrLifetime (*) [">"] - // - // ">" -> Reduce(TypeRefOrLifetime? = TypeRefOrLifetime => Call(ActionFn(146));) - // "," -> Shift(S111) - // - pub fn __state97< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state111(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action146(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 98 - // TypeRefOrLifetime = TypeRef (*) [","] - // TypeRefOrLifetime = TypeRef (*) [">"] - // - // "," -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // ">" -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // - pub fn __state98< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 99 - // TypeRef = Escape (*) [","] - // TypeRef = Escape (*) [">"] - // - // ">" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state99< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 100 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [">"] - // - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S59 - // Lifetime? -> S112 - pub fn __state100< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state112(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 101 - // TypeRef = Path "<" Comma ">" (*) [")"] - // TypeRef = Path "<" Comma ">" (*) [","] - // - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // ")" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state101< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 102 - // ( ",") = (*) NonterminalId "," [">"] - // ( ",") = (*) NonterminalId "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) NonterminalId? [">"] - // Id = (*) "Id" [","] - // Id = (*) "Id" [">"] - // NonterminalId = (*) Id [","] - // NonterminalId = (*) Id [">"] - // NonterminalId? = (*) [">"] - // NonterminalId? = (*) NonterminalId [">"] - // - // "Id" -> Shift(S115) - // ">" -> Reduce(NonterminalId? = => Call(ActionFn(132));) - // - // NonterminalId -> S116 - // NonterminalId? -> S117 - // Id -> S114 - // ( ",") -> S113 - pub fn __state102< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state115(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action132(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::NonterminalId_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state116(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::NonterminalId_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state117(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state114(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state113(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 103 - // NonterminalName = MacroId "<" Comma (*) ">" [":"] - // NonterminalName = MacroId "<" Comma (*) ">" ["="] - // - // ">" -> Shift(S118) - // - pub fn __state103< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state118(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 104 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // (":" ) = ":" (*) TypeRef ["="] - // Escape = (*) "Escape" ["="] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["="] - // TypeRef = (*) Escape ["="] - // TypeRef = (*) Path ["="] - // TypeRef = (*) Path "<" Comma ">" ["="] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["="] - // TypeRef = (*) "(" Comma ")" ["="] - // - // "&" -> Shift(S122) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S125) - // "::" -> Shift(S50) - // "Escape" -> Shift(S120) - // - // Path -> S121 - // Escape -> S124 - // TypeRef -> S119 - // "::"? -> S123 - pub fn __state104< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state122(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state125(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state120(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state121(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state124(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state119(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state123(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 105 - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["use"] - // - // "=" -> Shift(S126) - // - pub fn __state105< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Equals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state126(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 106 - // (":" )? = (":" ) (*) ["="] - // - // "=" -> Reduce((":" )? = (":" ) => Call(ActionFn(104));) - // - pub fn __state106< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action104(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 107 - // AssociatedType* = (*) ["enum"] - // AssociatedType* = (*) ["type"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["enum"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["type"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "enum" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // "type" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // - // AssociatedType* -> S127 - pub fn __state107< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Enum(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - Some((_, Tok::Type(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType_2a(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state127(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 108 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" [">"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id [">"] - // - // "Id" -> Shift(S129) - // - // ( "::") -> S80 - // Id -> S128 - pub fn __state108< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state129(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state128(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 109 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [","] - // TypeRef = Path "<" (*) Comma ">" [">"] - // - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S130 - // ( ",")* -> S81 - pub fn __state109< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state130(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 110 - // TypeRef = "(" Comma (*) ")" [","] - // TypeRef = "(" Comma (*) ")" [">"] - // - // ")" -> Shift(S131) - // - pub fn __state110< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state131(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 111 - // ( ",") = TypeRefOrLifetime "," (*) ["&"] - // ( ",") = TypeRefOrLifetime "," (*) ["("] - // ( ",") = TypeRefOrLifetime "," (*) ["::"] - // ( ",") = TypeRefOrLifetime "," (*) [">"] - // ( ",") = TypeRefOrLifetime "," (*) ["Escape"] - // ( ",") = TypeRefOrLifetime "," (*) ["Id"] - // ( ",") = TypeRefOrLifetime "," (*) ["Lifetime"] - // - // ">" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Id" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Lifetime" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "&" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Escape" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "(" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "::" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // - pub fn __state111< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 112 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [">"] - // - // "mut" -> Shift(S73) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S132 - pub fn __state112< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state132(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 113 - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(134));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(134));) - // - pub fn __state113< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action134(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action134(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 114 - // NonterminalId = Id (*) [","] - // NonterminalId = Id (*) [">"] - // - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "," -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state114< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 115 - // Id = "Id" (*) [","] - // Id = "Id" (*) [">"] - // - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state115< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 116 - // ( ",") = NonterminalId (*) "," [">"] - // ( ",") = NonterminalId (*) "," ["Id"] - // NonterminalId? = NonterminalId (*) [">"] - // - // "," -> Shift(S133) - // ">" -> Reduce(NonterminalId? = NonterminalId => Call(ActionFn(131));) - // - pub fn __state116< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state133(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action131(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 117 - // Comma = ( ",")* NonterminalId? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, NonterminalId? => Call(ActionFn(103));) - // - pub fn __state117< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action103(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cNonterminalId_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 118 - // NonterminalName = MacroId "<" Comma ">" (*) [":"] - // NonterminalName = MacroId "<" Comma ">" (*) ["="] - // - // ":" -> Reduce(NonterminalName = MacroId, "<", Comma, ">" => Call(ActionFn(13));) - // "=" -> Reduce(NonterminalName = MacroId, "<", Comma, ">" => Call(ActionFn(13));) - // - pub fn __state118< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action13(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action13(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 119 - // (":" ) = ":" TypeRef (*) ["="] - // - // "=" -> Reduce((":" ) = ":", TypeRef => Call(ActionFn(106));) - // - pub fn __state119< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action106(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 120 - // Escape = "Escape" (*) ["="] - // - // "=" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state120< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 121 - // TypeRef = Path (*) ["="] - // TypeRef = Path (*) "<" Comma ">" ["="] - // - // "=" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S134) - // - pub fn __state121< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state134(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 122 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef ["="] - // - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime? -> S135 - // Lifetime -> S59 - pub fn __state122< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state135(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 123 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id ["="] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S136 - pub fn __state123< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state136(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 124 - // TypeRef = Escape (*) ["="] - // - // "=" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state124< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 125 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" ["="] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S60 - // Comma -> S137 - pub fn __state125< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state137(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 126 - // @L = (*) ["("] - // @L = (*) [";"] - // @L = (*) ["<"] - // @L = (*) ["=>"] - // @L = (*) ["=>?"] - // @L = (*) ["=>@L"] - // @L = (*) ["=>@R"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // @L = (*) ["if"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R [EOF] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["extern"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["pub"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["use"] - // Alternatives = (*) Alternative [EOF] - // Alternatives = (*) Alternative ["Escape"] - // Alternatives = (*) Alternative ["Id"] - // Alternatives = (*) Alternative ["MacroId"] - // Alternatives = (*) Alternative ["extern"] - // Alternatives = (*) Alternative ["pub"] - // Alternatives = (*) Alternative ["use"] - // Alternatives = (*) "{" Alternative* "}" ";" [EOF] - // Alternatives = (*) "{" Alternative* "}" ";" ["Escape"] - // Alternatives = (*) "{" Alternative* "}" ";" ["Id"] - // Alternatives = (*) "{" Alternative* "}" ";" ["MacroId"] - // Alternatives = (*) "{" Alternative* "}" ";" ["extern"] - // Alternatives = (*) "{" Alternative* "}" ";" ["pub"] - // Alternatives = (*) "{" Alternative* "}" ";" ["use"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["use"] - // - // "{" -> Shift(S139) - // "=>" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "=>?" -> Reduce(@L = => Lookahead;) - // "if" -> Reduce(@L = => Lookahead;) - // ";" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "=>@L" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // "=>@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // Alternatives -> S141 - // @L -> S138 - // Alternative -> S140 - pub fn __state126< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>, - __sym5: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state139(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Alternatives(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state141(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - __Nonterminal::_40L(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state138(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - __Nonterminal::Alternative(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state140(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 127 - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["enum"] - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["type"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["enum"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["type"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "type" -> Shift(S144) - // "enum" -> Shift(S142) - // - // AssociatedType -> S143 - pub fn __state127< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Type(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state144(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Enum(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state142(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state143(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 128 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) [">"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ">" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state128< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 129 - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) [">"] - // - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state129< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 130 - // TypeRef = Path "<" Comma (*) ">" [","] - // TypeRef = Path "<" Comma (*) ">" [">"] - // - // ">" -> Shift(S145) - // - pub fn __state130< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state145(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 131 - // TypeRef = "(" Comma ")" (*) [","] - // TypeRef = "(" Comma ")" (*) [">"] - // - // ">" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state131< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 132 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "(" -> Shift(S94) - // "::" -> Shift(S50) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S100) - // "Escape" -> Shift(S93) - // - // Path -> S90 - // Escape -> S99 - // TypeRef -> S146 - // "::"? -> S89 - pub fn __state132< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state100(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state99(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state146(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state89(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 133 - // ( ",") = NonterminalId "," (*) [">"] - // ( ",") = NonterminalId "," (*) ["Id"] - // - // ">" -> Reduce(( ",") = NonterminalId, "," => Call(ActionFn(135));) - // "Id" -> Reduce(( ",") = NonterminalId, "," => Call(ActionFn(135));) - // - pub fn __state133< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action135(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action135(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 134 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" ["="] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // ( ",")* -> S81 - // Comma -> S147 - pub fn __state134< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state147(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 135 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef ["="] - // - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S148 - pub fn __state135< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state148(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 136 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["="] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id ["="] - // - // "Id" -> Shift(S150) - // - // Id -> S149 - // ( "::") -> S80 - pub fn __state136< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state150(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state149(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 137 - // TypeRef = "(" Comma (*) ")" ["="] - // - // ")" -> Shift(S151) - // - pub fn __state137< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state151(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 138 - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R [EOF] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["extern"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["pub"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["use"] - // ExprSymbol = (*) Symbol* [";"] - // ExprSymbol = (*) Symbol* ["=>"] - // ExprSymbol = (*) Symbol* ["=>?"] - // ExprSymbol = (*) Symbol* ["=>@L"] - // ExprSymbol = (*) Symbol* ["=>@R"] - // ExprSymbol = (*) Symbol* ["if"] - // Symbol* = (*) ["("] - // Symbol* = (*) [";"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["=>"] - // Symbol* = (*) ["=>?"] - // Symbol* = (*) ["=>@L"] - // Symbol* = (*) ["=>@R"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) ["if"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [";"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["=>"] - // Symbol* = (*) Symbol* Symbol ["=>?"] - // Symbol* = (*) Symbol* Symbol ["=>@L"] - // Symbol* = (*) Symbol* Symbol ["=>@R"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["if"] - // - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "if" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>?" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ";" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // ExprSymbol -> S152 - // Symbol* -> S153 - pub fn __state138< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state152(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state153(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 139 - // Alternative* = (*) ["("] - // Alternative* = (*) [";"] - // Alternative* = (*) ["<"] - // Alternative* = (*) ["=>"] - // Alternative* = (*) ["=>?"] - // Alternative* = (*) ["=>@L"] - // Alternative* = (*) ["=>@R"] - // Alternative* = (*) ["@L"] - // Alternative* = (*) ["@R"] - // Alternative* = (*) ["Escape"] - // Alternative* = (*) ["Id"] - // Alternative* = (*) ["MacroId"] - // Alternative* = (*) ["StringLiteral"] - // Alternative* = (*) ["if"] - // Alternative* = (*) ["}"] - // Alternative* = (*) Alternative* Alternative ["("] - // Alternative* = (*) Alternative* Alternative [";"] - // Alternative* = (*) Alternative* Alternative ["<"] - // Alternative* = (*) Alternative* Alternative ["=>"] - // Alternative* = (*) Alternative* Alternative ["=>?"] - // Alternative* = (*) Alternative* Alternative ["=>@L"] - // Alternative* = (*) Alternative* Alternative ["=>@R"] - // Alternative* = (*) Alternative* Alternative ["@L"] - // Alternative* = (*) Alternative* Alternative ["@R"] - // Alternative* = (*) Alternative* Alternative ["Escape"] - // Alternative* = (*) Alternative* Alternative ["Id"] - // Alternative* = (*) Alternative* Alternative ["MacroId"] - // Alternative* = (*) Alternative* Alternative ["StringLiteral"] - // Alternative* = (*) Alternative* Alternative ["if"] - // Alternative* = (*) Alternative* Alternative ["}"] - // Alternatives = "{" (*) Alternative* "}" ";" [EOF] - // Alternatives = "{" (*) Alternative* "}" ";" ["Escape"] - // Alternatives = "{" (*) Alternative* "}" ";" ["Id"] - // Alternatives = "{" (*) Alternative* "}" ";" ["MacroId"] - // Alternatives = "{" (*) Alternative* "}" ";" ["extern"] - // Alternatives = "{" (*) Alternative* "}" ";" ["pub"] - // Alternatives = "{" (*) Alternative* "}" ";" ["use"] - // - // ";" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "StringLiteral" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "MacroId" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>?" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>@R" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>@L" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "@L" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "Id" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "}" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "<" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "(" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "@R" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "Escape" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "if" -> Reduce(Alternative* = => Call(ActionFn(101));) - // - // Alternative* -> S154 - pub fn __state139< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Alternative_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state154(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 140 - // Alternatives = Alternative (*) [EOF] - // Alternatives = Alternative (*) ["Escape"] - // Alternatives = Alternative (*) ["Id"] - // Alternatives = Alternative (*) ["MacroId"] - // Alternatives = Alternative (*) ["extern"] - // Alternatives = Alternative (*) ["pub"] - // Alternatives = Alternative (*) ["use"] - // - // "extern" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "MacroId" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "Escape" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "use" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "pub" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "Id" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // EOF -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // - pub fn __state140< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 141 - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["use"] - // - // "pub" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "Id" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // EOF -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "extern" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "use" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "MacroId" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "Escape" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // - pub fn __state141< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>, - __sym5: &mut Option>, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 142 - // @L = (*) ["&"] - // @L = (*) ["("] - // @L = (*) ["::"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "&" -> Reduce(@L = => Lookahead;) - // "::" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S155 - pub fn __state142< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state155(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 143 - // AssociatedType* = AssociatedType* AssociatedType (*) ["enum"] - // AssociatedType* = AssociatedType* AssociatedType (*) ["type"] - // - // "enum" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // "type" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // - pub fn __state143< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Enum(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 144 - // @L = (*) ["Id"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["enum"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["type"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S156 - pub fn __state144< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state156(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 145 - // TypeRef = Path "<" Comma ">" (*) [","] - // TypeRef = Path "<" Comma ">" (*) [">"] - // - // ">" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state145< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 146 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [">"] - // - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // ">" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state146< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 147 - // TypeRef = Path "<" Comma (*) ">" ["="] - // - // ">" -> Shift(S157) - // - pub fn __state147< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state157(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 148 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" ["="] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["="] - // TypeRef = (*) Escape ["="] - // TypeRef = (*) Path ["="] - // TypeRef = (*) Path "<" Comma ">" ["="] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["="] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef ["="] - // TypeRef = (*) "(" Comma ")" ["="] - // - // "(" -> Shift(S125) - // "&" -> Shift(S122) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S120) - // "::" -> Shift(S50) - // - // Path -> S121 - // TypeRef -> S158 - // Escape -> S124 - // "::"? -> S123 - pub fn __state148< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state125(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state122(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state120(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state121(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state158(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state124(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state123(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 149 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) ["="] - // - // "=" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // - pub fn __state149< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 150 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["="] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state150< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 151 - // TypeRef = "(" Comma ")" (*) ["="] - // - // "=" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state151< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 152 - // ("if" ) = (*) "if" Cond [";"] - // ("if" ) = (*) "if" Cond ["=>"] - // ("if" ) = (*) "if" Cond ["=>?"] - // ("if" ) = (*) "if" Cond ["=>@L"] - // ("if" ) = (*) "if" Cond ["=>@R"] - // ("if" )? = (*) [";"] - // ("if" )? = (*) ["=>"] - // ("if" )? = (*) ["=>?"] - // ("if" )? = (*) ["=>@L"] - // ("if" )? = (*) ["=>@R"] - // ("if" )? = (*) ("if" ) [";"] - // ("if" )? = (*) ("if" ) ["=>"] - // ("if" )? = (*) ("if" ) ["=>?"] - // ("if" )? = (*) ("if" ) ["=>@L"] - // ("if" )? = (*) ("if" ) ["=>@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R [EOF] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["extern"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["pub"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["use"] - // - // "if" -> Shift(S160) - // "=>" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>?" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>@R" -> Reduce(("if" )? = => Call(ActionFn(99));) - // ";" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>@L" -> Reduce(("if" )? = => Call(ActionFn(99));) - // - // ("if" )? -> S161 - // ("if" ) -> S159 - pub fn __state152< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::If(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state160(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state161(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state159(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 153 - // @L = (*) ["("] - // @L = (*) ["<"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // ExprSymbol = Symbol* (*) [";"] - // ExprSymbol = Symbol* (*) ["=>"] - // ExprSymbol = Symbol* (*) ["=>?"] - // ExprSymbol = Symbol* (*) ["=>@L"] - // ExprSymbol = Symbol* (*) ["=>@R"] - // ExprSymbol = Symbol* (*) ["if"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [";"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["if"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" Symbol0 ">" @R [";"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>?"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>@L"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>@R"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["if"] - // Symbol = (*) Symbol0 ["("] - // Symbol = (*) Symbol0 [";"] - // Symbol = (*) Symbol0 ["<"] - // Symbol = (*) Symbol0 ["=>"] - // Symbol = (*) Symbol0 ["=>?"] - // Symbol = (*) Symbol0 ["=>@L"] - // Symbol = (*) Symbol0 ["=>@R"] - // Symbol = (*) Symbol0 ["@L"] - // Symbol = (*) Symbol0 ["@R"] - // Symbol = (*) Symbol0 ["Escape"] - // Symbol = (*) Symbol0 ["Id"] - // Symbol = (*) Symbol0 ["MacroId"] - // Symbol = (*) Symbol0 ["StringLiteral"] - // Symbol = (*) Symbol0 ["if"] - // Symbol* = Symbol* (*) Symbol ["("] - // Symbol* = Symbol* (*) Symbol [";"] - // Symbol* = Symbol* (*) Symbol ["<"] - // Symbol* = Symbol* (*) Symbol ["=>"] - // Symbol* = Symbol* (*) Symbol ["=>?"] - // Symbol* = Symbol* (*) Symbol ["=>@L"] - // Symbol* = Symbol* (*) Symbol ["=>@R"] - // Symbol* = Symbol* (*) Symbol ["@L"] - // Symbol* = Symbol* (*) Symbol ["@R"] - // Symbol* = Symbol* (*) Symbol ["Escape"] - // Symbol* = Symbol* (*) Symbol ["Id"] - // Symbol* = Symbol* (*) Symbol ["MacroId"] - // Symbol* = Symbol* (*) Symbol ["StringLiteral"] - // Symbol* = Symbol* (*) Symbol ["if"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["("] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [";"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["<"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>?"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>@L"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>@R"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@L"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@R"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Escape"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Id"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["MacroId"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["if"] - // Symbol0 = (*) Symbol1 ["("] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [";"] - // Symbol0 = (*) Symbol1 ["<"] - // Symbol0 = (*) Symbol1 ["=>"] - // Symbol0 = (*) Symbol1 ["=>?"] - // Symbol0 = (*) Symbol1 ["=>@L"] - // Symbol0 = (*) Symbol1 ["=>@R"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol0 = (*) Symbol1 ["@L"] - // Symbol0 = (*) Symbol1 ["@R"] - // Symbol0 = (*) Symbol1 ["Escape"] - // Symbol0 = (*) Symbol1 ["Id"] - // Symbol0 = (*) Symbol1 ["MacroId"] - // Symbol0 = (*) Symbol1 ["StringLiteral"] - // Symbol0 = (*) Symbol1 ["if"] - // Symbol1 = (*) @L SymbolKind1 @R ["("] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [";"] - // Symbol1 = (*) @L SymbolKind1 @R ["<"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>?"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>@L"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>@R"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["@L"] - // Symbol1 = (*) @L SymbolKind1 @R ["@R"] - // Symbol1 = (*) @L SymbolKind1 @R ["Escape"] - // Symbol1 = (*) @L SymbolKind1 @R ["Id"] - // Symbol1 = (*) @L SymbolKind1 @R ["MacroId"] - // Symbol1 = (*) @L SymbolKind1 @R ["StringLiteral"] - // Symbol1 = (*) @L SymbolKind1 @R ["if"] - // - // "<" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "=>@R" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "=>" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "(" -> Reduce(@L = => Lookahead;) - // ";" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "Escape" -> Reduce(@L = => Lookahead;) - // "=>@L" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "@L" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "if" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "=>?" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // - // @L -> S163 - // Symbol1 -> S164 - // Symbol -> S165 - // Symbol0 -> S162 - pub fn __state153< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state163(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state164(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state165(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state162(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 154 - // @L = (*) ["("] - // @L = (*) [";"] - // @L = (*) ["<"] - // @L = (*) ["=>"] - // @L = (*) ["=>?"] - // @L = (*) ["=>@L"] - // @L = (*) ["=>@R"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // @L = (*) ["if"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["("] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R [";"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["<"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>?"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>@L"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>@R"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["@L"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["@R"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["StringLiteral"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["if"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["}"] - // Alternative* = Alternative* (*) Alternative ["("] - // Alternative* = Alternative* (*) Alternative [";"] - // Alternative* = Alternative* (*) Alternative ["<"] - // Alternative* = Alternative* (*) Alternative ["=>"] - // Alternative* = Alternative* (*) Alternative ["=>?"] - // Alternative* = Alternative* (*) Alternative ["=>@L"] - // Alternative* = Alternative* (*) Alternative ["=>@R"] - // Alternative* = Alternative* (*) Alternative ["@L"] - // Alternative* = Alternative* (*) Alternative ["@R"] - // Alternative* = Alternative* (*) Alternative ["Escape"] - // Alternative* = Alternative* (*) Alternative ["Id"] - // Alternative* = Alternative* (*) Alternative ["MacroId"] - // Alternative* = Alternative* (*) Alternative ["StringLiteral"] - // Alternative* = Alternative* (*) Alternative ["if"] - // Alternative* = Alternative* (*) Alternative ["}"] - // Alternatives = "{" Alternative* (*) "}" ";" [EOF] - // Alternatives = "{" Alternative* (*) "}" ";" ["Escape"] - // Alternatives = "{" Alternative* (*) "}" ";" ["Id"] - // Alternatives = "{" Alternative* (*) "}" ";" ["MacroId"] - // Alternatives = "{" Alternative* (*) "}" ";" ["extern"] - // Alternatives = "{" Alternative* (*) "}" ";" ["pub"] - // Alternatives = "{" Alternative* (*) "}" ";" ["use"] - // - // "=>" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // "=>@R" -> Reduce(@L = => Lookahead;) - // ";" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "if" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "=>@L" -> Reduce(@L = => Lookahead;) - // "}" -> Shift(S168) - // "=>?" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // - // Alternative -> S166 - // @L -> S167 - pub fn __state154< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state168(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Alternative(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state166(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state167(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 155 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" ["{"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["{"] - // TypeRef = (*) Escape ["{"] - // TypeRef = (*) Path ["{"] - // TypeRef = (*) Path "<" Comma ">" ["{"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["{"] - // TypeRef = (*) "(" Comma ")" ["{"] - // - // "::" -> Shift(S50) - // "&" -> Shift(S175) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S170) - // "(" -> Shift(S171) - // - // Path -> S169 - // TypeRef -> S174 - // Escape -> S173 - // "::"? -> S172 - pub fn __state155< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state175(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state170(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state171(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym7.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state169(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state174(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8)); - } - __Nonterminal::Escape(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state173(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state172(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 156 - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["enum"] - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["type"] - // Id = (*) "Id" ["="] - // - // "Id" -> Shift(S176) - // - // Id -> S177 - pub fn __state156< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state176(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state177(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 157 - // TypeRef = Path "<" Comma ">" (*) ["="] - // - // "=" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state157< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 158 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) ["="] - // - // "=" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state158< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 159 - // ("if" )? = ("if" ) (*) [";"] - // ("if" )? = ("if" ) (*) ["=>"] - // ("if" )? = ("if" ) (*) ["=>?"] - // ("if" )? = ("if" ) (*) ["=>@L"] - // ("if" )? = ("if" ) (*) ["=>@R"] - // - // "=>?" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // "=>" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // "=>@L" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // ";" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // "=>@R" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // - pub fn __state159< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 160 - // ("if" ) = "if" (*) Cond [";"] - // ("if" ) = "if" (*) Cond ["=>"] - // ("if" ) = "if" (*) Cond ["=>?"] - // ("if" ) = "if" (*) Cond ["=>@L"] - // ("if" ) = "if" (*) Cond ["=>@R"] - // @L = (*) ["Id"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R [";"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>?"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>@L"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>@R"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S178 - // Cond -> S179 - pub fn __state160< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state178(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Cond(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state179(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 161 - // Action = (*) "=>" [";"] - // Action = (*) "=>?" [";"] - // Action = (*) "=>@L" [";"] - // Action = (*) "=>@R" [";"] - // Action? = (*) [";"] - // Action? = (*) Action [";"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R [EOF] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["extern"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["pub"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["use"] - // - // "=>?" -> Shift(S183) - // ";" -> Reduce(Action? = => Call(ActionFn(97));) - // "=>@R" -> Shift(S180) - // "=>" -> Shift(S184) - // "=>@L" -> Shift(S185) - // - // Action -> S182 - // Action? -> S181 - pub fn __state161< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state183(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state180(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::EqualsGreaterThanCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state184(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state185(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action97(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Action_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Action(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state182(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Action_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state181(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 162 - // RepeatOp = (*) "*" ["("] - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [";"] - // RepeatOp = (*) "*" ["<"] - // RepeatOp = (*) "*" ["=>"] - // RepeatOp = (*) "*" ["=>?"] - // RepeatOp = (*) "*" ["=>@L"] - // RepeatOp = (*) "*" ["=>@R"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "*" ["@L"] - // RepeatOp = (*) "*" ["@R"] - // RepeatOp = (*) "*" ["Escape"] - // RepeatOp = (*) "*" ["Id"] - // RepeatOp = (*) "*" ["MacroId"] - // RepeatOp = (*) "*" ["StringLiteral"] - // RepeatOp = (*) "*" ["if"] - // RepeatOp = (*) "+" ["("] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [";"] - // RepeatOp = (*) "+" ["<"] - // RepeatOp = (*) "+" ["=>"] - // RepeatOp = (*) "+" ["=>?"] - // RepeatOp = (*) "+" ["=>@L"] - // RepeatOp = (*) "+" ["=>@R"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "+" ["@L"] - // RepeatOp = (*) "+" ["@R"] - // RepeatOp = (*) "+" ["Escape"] - // RepeatOp = (*) "+" ["Id"] - // RepeatOp = (*) "+" ["MacroId"] - // RepeatOp = (*) "+" ["StringLiteral"] - // RepeatOp = (*) "+" ["if"] - // RepeatOp = (*) "?" ["("] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [";"] - // RepeatOp = (*) "?" ["<"] - // RepeatOp = (*) "?" ["=>"] - // RepeatOp = (*) "?" ["=>?"] - // RepeatOp = (*) "?" ["=>@L"] - // RepeatOp = (*) "?" ["=>@R"] - // RepeatOp = (*) "?" ["?"] - // RepeatOp = (*) "?" ["@L"] - // RepeatOp = (*) "?" ["@R"] - // RepeatOp = (*) "?" ["Escape"] - // RepeatOp = (*) "?" ["Id"] - // RepeatOp = (*) "?" ["MacroId"] - // RepeatOp = (*) "?" ["StringLiteral"] - // RepeatOp = (*) "?" ["if"] - // Symbol = Symbol0 (*) ["("] - // Symbol = Symbol0 (*) [";"] - // Symbol = Symbol0 (*) ["<"] - // Symbol = Symbol0 (*) ["=>"] - // Symbol = Symbol0 (*) ["=>?"] - // Symbol = Symbol0 (*) ["=>@L"] - // Symbol = Symbol0 (*) ["=>@R"] - // Symbol = Symbol0 (*) ["@L"] - // Symbol = Symbol0 (*) ["@R"] - // Symbol = Symbol0 (*) ["Escape"] - // Symbol = Symbol0 (*) ["Id"] - // Symbol = Symbol0 (*) ["MacroId"] - // Symbol = Symbol0 (*) ["StringLiteral"] - // Symbol = Symbol0 (*) ["if"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["("] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [";"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["<"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>?"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>@L"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>@R"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@L"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@R"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Escape"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Id"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["MacroId"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["if"] - // - // "=>@L" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "@L" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "if" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "?" -> Shift(S187) - // "+" -> Shift(S188) - // "Escape" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "*" -> Shift(S186) - // "=>@R" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "(" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "=>" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "MacroId" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "@R" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "StringLiteral" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "<" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "Id" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "=>?" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // ";" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // - // RepeatOp -> S189 - pub fn __state162< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state187(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state188(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state186(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state189(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 163 - // Escape = (*) "Escape" ["("] - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [";"] - // Escape = (*) "Escape" ["<"] - // Escape = (*) "Escape" ["=>"] - // Escape = (*) "Escape" ["=>?"] - // Escape = (*) "Escape" ["=>@L"] - // Escape = (*) "Escape" ["=>@R"] - // Escape = (*) "Escape" ["?"] - // Escape = (*) "Escape" ["@L"] - // Escape = (*) "Escape" ["@R"] - // Escape = (*) "Escape" ["Escape"] - // Escape = (*) "Escape" ["Id"] - // Escape = (*) "Escape" ["MacroId"] - // Escape = (*) "Escape" ["StringLiteral"] - // Escape = (*) "Escape" ["if"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [";"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["=>"] - // Id = (*) "Id" ["=>?"] - // Id = (*) "Id" ["=>@L"] - // Id = (*) "Id" ["=>@R"] - // Id = (*) "Id" ["?"] - // Id = (*) "Id" ["@L"] - // Id = (*) "Id" ["@R"] - // Id = (*) "Id" ["Escape"] - // Id = (*) "Id" ["Id"] - // Id = (*) "Id" ["MacroId"] - // Id = (*) "Id" ["StringLiteral"] - // Id = (*) "Id" ["if"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["("] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [";"] - // NonterminalId = (*) Id ["<"] - // NonterminalId = (*) Id ["=>"] - // NonterminalId = (*) Id ["=>?"] - // NonterminalId = (*) Id ["=>@L"] - // NonterminalId = (*) Id ["=>@R"] - // NonterminalId = (*) Id ["?"] - // NonterminalId = (*) Id ["@L"] - // NonterminalId = (*) Id ["@R"] - // NonterminalId = (*) Id ["Escape"] - // NonterminalId = (*) Id ["Id"] - // NonterminalId = (*) Id ["MacroId"] - // NonterminalId = (*) Id ["StringLiteral"] - // NonterminalId = (*) Id ["if"] - // StringLiteral = (*) "StringLiteral" ["("] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [";"] - // StringLiteral = (*) "StringLiteral" ["<"] - // StringLiteral = (*) "StringLiteral" ["=>"] - // StringLiteral = (*) "StringLiteral" ["=>?"] - // StringLiteral = (*) "StringLiteral" ["=>@L"] - // StringLiteral = (*) "StringLiteral" ["=>@R"] - // StringLiteral = (*) "StringLiteral" ["?"] - // StringLiteral = (*) "StringLiteral" ["@L"] - // StringLiteral = (*) "StringLiteral" ["@R"] - // StringLiteral = (*) "StringLiteral" ["Escape"] - // StringLiteral = (*) "StringLiteral" ["Id"] - // StringLiteral = (*) "StringLiteral" ["MacroId"] - // StringLiteral = (*) "StringLiteral" ["StringLiteral"] - // StringLiteral = (*) "StringLiteral" ["if"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [";"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["if"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" Symbol0 ">" @R [";"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>?"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>@L"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>@R"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["if"] - // Symbol1 = @L (*) SymbolKind1 @R ["("] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [";"] - // Symbol1 = @L (*) SymbolKind1 @R ["<"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>?"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>@L"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>@R"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // Symbol1 = @L (*) SymbolKind1 @R ["@L"] - // Symbol1 = @L (*) SymbolKind1 @R ["@R"] - // Symbol1 = @L (*) SymbolKind1 @R ["Escape"] - // Symbol1 = @L (*) SymbolKind1 @R ["Id"] - // Symbol1 = @L (*) SymbolKind1 @R ["MacroId"] - // Symbol1 = @L (*) SymbolKind1 @R ["StringLiteral"] - // Symbol1 = @L (*) SymbolKind1 @R ["if"] - // SymbolKind1 = (*) Escape ["("] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [";"] - // SymbolKind1 = (*) Escape ["<"] - // SymbolKind1 = (*) Escape ["=>"] - // SymbolKind1 = (*) Escape ["=>?"] - // SymbolKind1 = (*) Escape ["=>@L"] - // SymbolKind1 = (*) Escape ["=>@R"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) Escape ["@L"] - // SymbolKind1 = (*) Escape ["@R"] - // SymbolKind1 = (*) Escape ["Escape"] - // SymbolKind1 = (*) Escape ["Id"] - // SymbolKind1 = (*) Escape ["MacroId"] - // SymbolKind1 = (*) Escape ["StringLiteral"] - // SymbolKind1 = (*) Escape ["if"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["("] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [";"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["<"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>@L"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>@R"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@L"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@R"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Escape"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Id"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["MacroId"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["StringLiteral"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["if"] - // SymbolKind1 = (*) NonterminalId ["("] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [";"] - // SymbolKind1 = (*) NonterminalId ["<"] - // SymbolKind1 = (*) NonterminalId ["=>"] - // SymbolKind1 = (*) NonterminalId ["=>?"] - // SymbolKind1 = (*) NonterminalId ["=>@L"] - // SymbolKind1 = (*) NonterminalId ["=>@R"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) NonterminalId ["@L"] - // SymbolKind1 = (*) NonterminalId ["@R"] - // SymbolKind1 = (*) NonterminalId ["Escape"] - // SymbolKind1 = (*) NonterminalId ["Id"] - // SymbolKind1 = (*) NonterminalId ["MacroId"] - // SymbolKind1 = (*) NonterminalId ["StringLiteral"] - // SymbolKind1 = (*) NonterminalId ["if"] - // SymbolKind1 = (*) Terminal ["("] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [";"] - // SymbolKind1 = (*) Terminal ["<"] - // SymbolKind1 = (*) Terminal ["=>"] - // SymbolKind1 = (*) Terminal ["=>?"] - // SymbolKind1 = (*) Terminal ["=>@L"] - // SymbolKind1 = (*) Terminal ["=>@R"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) Terminal ["@L"] - // SymbolKind1 = (*) Terminal ["@R"] - // SymbolKind1 = (*) Terminal ["Escape"] - // SymbolKind1 = (*) Terminal ["Id"] - // SymbolKind1 = (*) Terminal ["MacroId"] - // SymbolKind1 = (*) Terminal ["StringLiteral"] - // SymbolKind1 = (*) Terminal ["if"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["("] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [";"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["<"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>@L"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>@R"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@L"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@R"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Escape"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Id"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["MacroId"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["StringLiteral"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["if"] - // SymbolKind1 = (*) "@L" ["("] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [";"] - // SymbolKind1 = (*) "@L" ["<"] - // SymbolKind1 = (*) "@L" ["=>"] - // SymbolKind1 = (*) "@L" ["=>?"] - // SymbolKind1 = (*) "@L" ["=>@L"] - // SymbolKind1 = (*) "@L" ["=>@R"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@L" ["@L"] - // SymbolKind1 = (*) "@L" ["@R"] - // SymbolKind1 = (*) "@L" ["Escape"] - // SymbolKind1 = (*) "@L" ["Id"] - // SymbolKind1 = (*) "@L" ["MacroId"] - // SymbolKind1 = (*) "@L" ["StringLiteral"] - // SymbolKind1 = (*) "@L" ["if"] - // SymbolKind1 = (*) "@R" ["("] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [";"] - // SymbolKind1 = (*) "@R" ["<"] - // SymbolKind1 = (*) "@R" ["=>"] - // SymbolKind1 = (*) "@R" ["=>?"] - // SymbolKind1 = (*) "@R" ["=>@L"] - // SymbolKind1 = (*) "@R" ["=>@R"] - // SymbolKind1 = (*) "@R" ["?"] - // SymbolKind1 = (*) "@R" ["@L"] - // SymbolKind1 = (*) "@R" ["@R"] - // SymbolKind1 = (*) "@R" ["Escape"] - // SymbolKind1 = (*) "@R" ["Id"] - // SymbolKind1 = (*) "@R" ["MacroId"] - // SymbolKind1 = (*) "@R" ["StringLiteral"] - // SymbolKind1 = (*) "@R" ["if"] - // Terminal = (*) StringLiteral ["("] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [";"] - // Terminal = (*) StringLiteral ["<"] - // Terminal = (*) StringLiteral ["=>"] - // Terminal = (*) StringLiteral ["=>?"] - // Terminal = (*) StringLiteral ["=>@L"] - // Terminal = (*) StringLiteral ["=>@R"] - // Terminal = (*) StringLiteral ["?"] - // Terminal = (*) StringLiteral ["@L"] - // Terminal = (*) StringLiteral ["@R"] - // Terminal = (*) StringLiteral ["Escape"] - // Terminal = (*) StringLiteral ["Id"] - // Terminal = (*) StringLiteral ["MacroId"] - // Terminal = (*) StringLiteral ["StringLiteral"] - // Terminal = (*) StringLiteral ["if"] - // - // "@R" -> Shift(S197) - // "(" -> Shift(S193) - // "StringLiteral" -> Shift(S192) - // "<" -> Shift(S201) - // "Escape" -> Shift(S191) - // "MacroId" -> Shift(S68) - // "@L" -> Shift(S194) - // "Id" -> Shift(S195) - // - // StringLiteral -> S198 - // SymbolKind1 -> S196 - // NonterminalId -> S203 - // Terminal -> S199 - // MacroId -> S202 - // Escape -> S200 - // Id -> S190 - pub fn __state163< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state197(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state193(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state192(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state201(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state191(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state194(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state195(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state198(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state196(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state203(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state199(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state202(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state200(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state190(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 164 - // Symbol0 = Symbol1 (*) ["("] - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) [";"] - // Symbol0 = Symbol1 (*) ["<"] - // Symbol0 = Symbol1 (*) ["=>"] - // Symbol0 = Symbol1 (*) ["=>?"] - // Symbol0 = Symbol1 (*) ["=>@L"] - // Symbol0 = Symbol1 (*) ["=>@R"] - // Symbol0 = Symbol1 (*) ["?"] - // Symbol0 = Symbol1 (*) ["@L"] - // Symbol0 = Symbol1 (*) ["@R"] - // Symbol0 = Symbol1 (*) ["Escape"] - // Symbol0 = Symbol1 (*) ["Id"] - // Symbol0 = Symbol1 (*) ["MacroId"] - // Symbol0 = Symbol1 (*) ["StringLiteral"] - // Symbol0 = Symbol1 (*) ["if"] - // - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>@L" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "<" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Escape" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "MacroId" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ";" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@L" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>@R" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "if" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Id" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@R" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "(" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state164< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 165 - // Symbol* = Symbol* Symbol (*) ["("] - // Symbol* = Symbol* Symbol (*) [";"] - // Symbol* = Symbol* Symbol (*) ["<"] - // Symbol* = Symbol* Symbol (*) ["=>"] - // Symbol* = Symbol* Symbol (*) ["=>?"] - // Symbol* = Symbol* Symbol (*) ["=>@L"] - // Symbol* = Symbol* Symbol (*) ["=>@R"] - // Symbol* = Symbol* Symbol (*) ["@L"] - // Symbol* = Symbol* Symbol (*) ["@R"] - // Symbol* = Symbol* Symbol (*) ["Escape"] - // Symbol* = Symbol* Symbol (*) ["Id"] - // Symbol* = Symbol* Symbol (*) ["MacroId"] - // Symbol* = Symbol* Symbol (*) ["StringLiteral"] - // Symbol* = Symbol* Symbol (*) ["if"] - // - // "<" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "if" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Id" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>@L" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "@L" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Escape" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>?" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "@R" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "(" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // ";" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "MacroId" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "StringLiteral" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>@R" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // - pub fn __state165< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 166 - // Alternative* = Alternative* Alternative (*) ["("] - // Alternative* = Alternative* Alternative (*) [";"] - // Alternative* = Alternative* Alternative (*) ["<"] - // Alternative* = Alternative* Alternative (*) ["=>"] - // Alternative* = Alternative* Alternative (*) ["=>?"] - // Alternative* = Alternative* Alternative (*) ["=>@L"] - // Alternative* = Alternative* Alternative (*) ["=>@R"] - // Alternative* = Alternative* Alternative (*) ["@L"] - // Alternative* = Alternative* Alternative (*) ["@R"] - // Alternative* = Alternative* Alternative (*) ["Escape"] - // Alternative* = Alternative* Alternative (*) ["Id"] - // Alternative* = Alternative* Alternative (*) ["MacroId"] - // Alternative* = Alternative* Alternative (*) ["StringLiteral"] - // Alternative* = Alternative* Alternative (*) ["if"] - // Alternative* = Alternative* Alternative (*) ["}"] - // - // "=>" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "=>?" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "StringLiteral" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "<" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "@L" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "MacroId" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "(" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "=>@L" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "}" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "@R" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "Escape" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "if" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "=>@R" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // ";" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "Id" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // - pub fn __state166< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 167 - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["("] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R [";"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["<"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>?"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>@L"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>@R"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["@L"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["@R"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["StringLiteral"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["if"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["}"] - // ExprSymbol = (*) Symbol* [";"] - // ExprSymbol = (*) Symbol* ["=>"] - // ExprSymbol = (*) Symbol* ["=>?"] - // ExprSymbol = (*) Symbol* ["=>@L"] - // ExprSymbol = (*) Symbol* ["=>@R"] - // ExprSymbol = (*) Symbol* ["if"] - // Symbol* = (*) ["("] - // Symbol* = (*) [";"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["=>"] - // Symbol* = (*) ["=>?"] - // Symbol* = (*) ["=>@L"] - // Symbol* = (*) ["=>@R"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) ["if"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [";"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["=>"] - // Symbol* = (*) Symbol* Symbol ["=>?"] - // Symbol* = (*) Symbol* Symbol ["=>@L"] - // Symbol* = (*) Symbol* Symbol ["=>@R"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["if"] - // - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "if" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>?" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ";" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S153 - // ExprSymbol -> S204 - pub fn __state167< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state153(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state204(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 168 - // Alternatives = "{" Alternative* "}" (*) ";" [EOF] - // Alternatives = "{" Alternative* "}" (*) ";" ["Escape"] - // Alternatives = "{" Alternative* "}" (*) ";" ["Id"] - // Alternatives = "{" Alternative* "}" (*) ";" ["MacroId"] - // Alternatives = "{" Alternative* "}" (*) ";" ["extern"] - // Alternatives = "{" Alternative* "}" (*) ";" ["pub"] - // Alternatives = "{" Alternative* "}" (*) ";" ["use"] - // - // ";" -> Shift(S205) - // - pub fn __state168< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state205(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 169 - // TypeRef = Path (*) ["{"] - // TypeRef = Path (*) "<" Comma ">" ["{"] - // - // "<" -> Shift(S206) - // "{" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state169< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state206(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 170 - // Escape = "Escape" (*) ["{"] - // - // "{" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state170< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 171 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" ["{"] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S207 - // ( ",")* -> S60 - pub fn __state171< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state207(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 172 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id ["{"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S208 - pub fn __state172< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state208(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 173 - // TypeRef = Escape (*) ["{"] - // - // "{" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state173< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 174 - // @R = (*) ["{"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Reduce(@R = => Lookbehind;) - // - // @R -> S209 - pub fn __state174< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym8.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state209(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 175 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef ["{"] - // - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S59 - // Lifetime? -> S210 - pub fn __state175< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state210(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 176 - // Id = "Id" (*) ["="] - // - // "=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state176< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 177 - // @R = (*) ["="] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["enum"] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["type"] - // - // "=" -> Reduce(@R = => Lookbehind;) - // - // @R -> S211 - pub fn __state177< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state211(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 178 - // Cond = @L (*) NonterminalId CondOp StringLiteral @R [";"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>?"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>@L"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>@R"] - // Id = (*) "Id" ["!="] - // Id = (*) "Id" ["!~"] - // Id = (*) "Id" ["=="] - // Id = (*) "Id" ["~~"] - // NonterminalId = (*) Id ["!="] - // NonterminalId = (*) Id ["!~"] - // NonterminalId = (*) Id ["=="] - // NonterminalId = (*) Id ["~~"] - // - // "Id" -> Shift(S213) - // - // Id -> S214 - // NonterminalId -> S212 - pub fn __state178< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state213(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state214(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state212(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 179 - // ("if" ) = "if" Cond (*) [";"] - // ("if" ) = "if" Cond (*) ["=>"] - // ("if" ) = "if" Cond (*) ["=>?"] - // ("if" ) = "if" Cond (*) ["=>@L"] - // ("if" ) = "if" Cond (*) ["=>@R"] - // - // "=>@R" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // "=>" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // ";" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // "=>@L" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // "=>?" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // - pub fn __state179< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 180 - // Action = "=>@R" (*) [";"] - // - // ";" -> Reduce(Action = "=>@R" => Call(ActionFn(20));) - // - pub fn __state180< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action20(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 181 - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R [EOF] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["extern"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["pub"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["use"] - // - // ";" -> Shift(S215) - // - pub fn __state181< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state215(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 182 - // Action? = Action (*) [";"] - // - // ";" -> Reduce(Action? = Action => Call(ActionFn(96));) - // - pub fn __state182< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action96(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 183 - // Action = "=>?" (*) [";"] - // - // ";" -> Reduce(Action = "=>?" => Call(ActionFn(22));) - // - pub fn __state183< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action22(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 184 - // Action = "=>" (*) [";"] - // - // ";" -> Reduce(Action = "=>" => Call(ActionFn(21));) - // - pub fn __state184< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action21(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 185 - // Action = "=>@L" (*) [";"] - // - // ";" -> Reduce(Action = "=>@L" => Call(ActionFn(19));) - // - pub fn __state185< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action19(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 186 - // RepeatOp = "*" (*) ["("] - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) [";"] - // RepeatOp = "*" (*) ["<"] - // RepeatOp = "*" (*) ["=>"] - // RepeatOp = "*" (*) ["=>?"] - // RepeatOp = "*" (*) ["=>@L"] - // RepeatOp = "*" (*) ["=>@R"] - // RepeatOp = "*" (*) ["?"] - // RepeatOp = "*" (*) ["@L"] - // RepeatOp = "*" (*) ["@R"] - // RepeatOp = "*" (*) ["Escape"] - // RepeatOp = "*" (*) ["Id"] - // RepeatOp = "*" (*) ["MacroId"] - // RepeatOp = "*" (*) ["StringLiteral"] - // RepeatOp = "*" (*) ["if"] - // - // "if" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@L" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ";" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@R" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "<" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Escape" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Id" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "StringLiteral" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>@R" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>@L" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "(" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "MacroId" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state186< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 187 - // RepeatOp = "?" (*) ["("] - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) [";"] - // RepeatOp = "?" (*) ["<"] - // RepeatOp = "?" (*) ["=>"] - // RepeatOp = "?" (*) ["=>?"] - // RepeatOp = "?" (*) ["=>@L"] - // RepeatOp = "?" (*) ["=>@R"] - // RepeatOp = "?" (*) ["?"] - // RepeatOp = "?" (*) ["@L"] - // RepeatOp = "?" (*) ["@R"] - // RepeatOp = "?" (*) ["Escape"] - // RepeatOp = "?" (*) ["Id"] - // RepeatOp = "?" (*) ["MacroId"] - // RepeatOp = "?" (*) ["StringLiteral"] - // RepeatOp = "?" (*) ["if"] - // - // "StringLiteral" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "if" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>@L" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "MacroId" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "Escape" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ";" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@L" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "(" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "<" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>@R" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "Id" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@R" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state187< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 188 - // RepeatOp = "+" (*) ["("] - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) [";"] - // RepeatOp = "+" (*) ["<"] - // RepeatOp = "+" (*) ["=>"] - // RepeatOp = "+" (*) ["=>?"] - // RepeatOp = "+" (*) ["=>@L"] - // RepeatOp = "+" (*) ["=>@R"] - // RepeatOp = "+" (*) ["?"] - // RepeatOp = "+" (*) ["@L"] - // RepeatOp = "+" (*) ["@R"] - // RepeatOp = "+" (*) ["Escape"] - // RepeatOp = "+" (*) ["Id"] - // RepeatOp = "+" (*) ["MacroId"] - // RepeatOp = "+" (*) ["StringLiteral"] - // RepeatOp = "+" (*) ["if"] - // - // "=>" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Escape" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Id" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@L" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "if" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ";" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "=>?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "(" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "MacroId" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "=>@L" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "<" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "=>@R" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@R" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "StringLiteral" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state188< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 189 - // @R = (*) ["("] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["("] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R [";"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["<"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>@L"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>@R"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@L"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@R"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Escape"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Id"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["MacroId"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["StringLiteral"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["if"] - // - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // - // @R -> S216 - pub fn __state189< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state216(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 190 - // NonterminalId = Id (*) ["("] - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [";"] - // NonterminalId = Id (*) ["<"] - // NonterminalId = Id (*) ["=>"] - // NonterminalId = Id (*) ["=>?"] - // NonterminalId = Id (*) ["=>@L"] - // NonterminalId = Id (*) ["=>@R"] - // NonterminalId = Id (*) ["?"] - // NonterminalId = Id (*) ["@L"] - // NonterminalId = Id (*) ["@R"] - // NonterminalId = Id (*) ["Escape"] - // NonterminalId = Id (*) ["Id"] - // NonterminalId = Id (*) ["MacroId"] - // NonterminalId = Id (*) ["StringLiteral"] - // NonterminalId = Id (*) ["if"] - // - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>@L" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@L" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "MacroId" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "if" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ";" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@R" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Id" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "<" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "StringLiteral" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>@R" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "(" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Escape" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state190< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 191 - // Escape = "Escape" (*) ["("] - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) [";"] - // Escape = "Escape" (*) ["<"] - // Escape = "Escape" (*) ["=>"] - // Escape = "Escape" (*) ["=>?"] - // Escape = "Escape" (*) ["=>@L"] - // Escape = "Escape" (*) ["=>@R"] - // Escape = "Escape" (*) ["?"] - // Escape = "Escape" (*) ["@L"] - // Escape = "Escape" (*) ["@R"] - // Escape = "Escape" (*) ["Escape"] - // Escape = "Escape" (*) ["Id"] - // Escape = "Escape" (*) ["MacroId"] - // Escape = "Escape" (*) ["StringLiteral"] - // Escape = "Escape" (*) ["if"] - // - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>@R" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "if" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Id" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "(" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>@L" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "MacroId" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "StringLiteral" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ";" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@R" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@L" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Escape" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "<" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state191< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 192 - // StringLiteral = "StringLiteral" (*) ["("] - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) [";"] - // StringLiteral = "StringLiteral" (*) ["<"] - // StringLiteral = "StringLiteral" (*) ["=>"] - // StringLiteral = "StringLiteral" (*) ["=>?"] - // StringLiteral = "StringLiteral" (*) ["=>@L"] - // StringLiteral = "StringLiteral" (*) ["=>@R"] - // StringLiteral = "StringLiteral" (*) ["?"] - // StringLiteral = "StringLiteral" (*) ["@L"] - // StringLiteral = "StringLiteral" (*) ["@R"] - // StringLiteral = "StringLiteral" (*) ["Escape"] - // StringLiteral = "StringLiteral" (*) ["Id"] - // StringLiteral = "StringLiteral" (*) ["MacroId"] - // StringLiteral = "StringLiteral" (*) ["StringLiteral"] - // StringLiteral = "StringLiteral" (*) ["if"] - // - // "StringLiteral" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "(" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "MacroId" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "if" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "Escape" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ";" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "Id" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "<" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state192< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 193 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["("] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" [";"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["<"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>?"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>@L"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>@R"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@L"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@R"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Escape"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Id"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["MacroId"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["if"] - // - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S218 - // ExprSymbol -> S217 - pub fn __state193< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state217(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 194 - // SymbolKind1 = "@L" (*) ["("] - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) [";"] - // SymbolKind1 = "@L" (*) ["<"] - // SymbolKind1 = "@L" (*) ["=>"] - // SymbolKind1 = "@L" (*) ["=>?"] - // SymbolKind1 = "@L" (*) ["=>@L"] - // SymbolKind1 = "@L" (*) ["=>@R"] - // SymbolKind1 = "@L" (*) ["?"] - // SymbolKind1 = "@L" (*) ["@L"] - // SymbolKind1 = "@L" (*) ["@R"] - // SymbolKind1 = "@L" (*) ["Escape"] - // SymbolKind1 = "@L" (*) ["Id"] - // SymbolKind1 = "@L" (*) ["MacroId"] - // SymbolKind1 = "@L" (*) ["StringLiteral"] - // SymbolKind1 = "@L" (*) ["if"] - // - // "=>@L" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "<" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "if" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "MacroId" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "@L" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "@R" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "(" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Escape" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Id" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "=>" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "=>?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ";" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "=>@R" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state194< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 195 - // Id = "Id" (*) ["("] - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [";"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["=>"] - // Id = "Id" (*) ["=>?"] - // Id = "Id" (*) ["=>@L"] - // Id = "Id" (*) ["=>@R"] - // Id = "Id" (*) ["?"] - // Id = "Id" (*) ["@L"] - // Id = "Id" (*) ["@R"] - // Id = "Id" (*) ["Escape"] - // Id = "Id" (*) ["Id"] - // Id = "Id" (*) ["MacroId"] - // Id = "Id" (*) ["StringLiteral"] - // Id = "Id" (*) ["if"] - // - // ";" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@L" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "StringLiteral" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@R" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>@R" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Escape" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Id" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "if" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "MacroId" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>@L" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state195< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 196 - // @R = (*) ["("] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol1 = @L SymbolKind1 (*) @R ["("] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R [";"] - // Symbol1 = @L SymbolKind1 (*) @R ["<"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>?"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>@L"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>@R"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["@L"] - // Symbol1 = @L SymbolKind1 (*) @R ["@R"] - // Symbol1 = @L SymbolKind1 (*) @R ["Escape"] - // Symbol1 = @L SymbolKind1 (*) @R ["Id"] - // Symbol1 = @L SymbolKind1 (*) @R ["MacroId"] - // Symbol1 = @L SymbolKind1 (*) @R ["StringLiteral"] - // Symbol1 = @L SymbolKind1 (*) @R ["if"] - // - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // - // @R -> S219 - pub fn __state196< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state219(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 197 - // SymbolKind1 = "@R" (*) ["("] - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) [";"] - // SymbolKind1 = "@R" (*) ["<"] - // SymbolKind1 = "@R" (*) ["=>"] - // SymbolKind1 = "@R" (*) ["=>?"] - // SymbolKind1 = "@R" (*) ["=>@L"] - // SymbolKind1 = "@R" (*) ["=>@R"] - // SymbolKind1 = "@R" (*) ["?"] - // SymbolKind1 = "@R" (*) ["@L"] - // SymbolKind1 = "@R" (*) ["@R"] - // SymbolKind1 = "@R" (*) ["Escape"] - // SymbolKind1 = "@R" (*) ["Id"] - // SymbolKind1 = "@R" (*) ["MacroId"] - // SymbolKind1 = "@R" (*) ["StringLiteral"] - // SymbolKind1 = "@R" (*) ["if"] - // - // "=>?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Escape" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ";" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@R" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Id" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "MacroId" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@L" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "(" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "=>" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "<" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "=>@L" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "if" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "=>@R" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state197< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 198 - // Terminal = StringLiteral (*) ["("] - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) [";"] - // Terminal = StringLiteral (*) ["<"] - // Terminal = StringLiteral (*) ["=>"] - // Terminal = StringLiteral (*) ["=>?"] - // Terminal = StringLiteral (*) ["=>@L"] - // Terminal = StringLiteral (*) ["=>@R"] - // Terminal = StringLiteral (*) ["?"] - // Terminal = StringLiteral (*) ["@L"] - // Terminal = StringLiteral (*) ["@R"] - // Terminal = StringLiteral (*) ["Escape"] - // Terminal = StringLiteral (*) ["Id"] - // Terminal = StringLiteral (*) ["MacroId"] - // Terminal = StringLiteral (*) ["StringLiteral"] - // Terminal = StringLiteral (*) ["if"] - // - // "Escape" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "MacroId" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>@L" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "if" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "Id" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "(" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // ";" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@L" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>@R" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "StringLiteral" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@R" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "<" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state198< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 199 - // SymbolKind1 = Terminal (*) ["("] - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) [";"] - // SymbolKind1 = Terminal (*) ["<"] - // SymbolKind1 = Terminal (*) ["=>"] - // SymbolKind1 = Terminal (*) ["=>?"] - // SymbolKind1 = Terminal (*) ["=>@L"] - // SymbolKind1 = Terminal (*) ["=>@R"] - // SymbolKind1 = Terminal (*) ["?"] - // SymbolKind1 = Terminal (*) ["@L"] - // SymbolKind1 = Terminal (*) ["@R"] - // SymbolKind1 = Terminal (*) ["Escape"] - // SymbolKind1 = Terminal (*) ["Id"] - // SymbolKind1 = Terminal (*) ["MacroId"] - // SymbolKind1 = Terminal (*) ["StringLiteral"] - // SymbolKind1 = Terminal (*) ["if"] - // - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "MacroId" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "<" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Escape" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>@L" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Id" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // ";" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "if" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "StringLiteral" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>@R" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@L" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@R" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "(" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state199< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 200 - // SymbolKind1 = Escape (*) ["("] - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) [";"] - // SymbolKind1 = Escape (*) ["<"] - // SymbolKind1 = Escape (*) ["=>"] - // SymbolKind1 = Escape (*) ["=>?"] - // SymbolKind1 = Escape (*) ["=>@L"] - // SymbolKind1 = Escape (*) ["=>@R"] - // SymbolKind1 = Escape (*) ["?"] - // SymbolKind1 = Escape (*) ["@L"] - // SymbolKind1 = Escape (*) ["@R"] - // SymbolKind1 = Escape (*) ["Escape"] - // SymbolKind1 = Escape (*) ["Id"] - // SymbolKind1 = Escape (*) ["MacroId"] - // SymbolKind1 = Escape (*) ["StringLiteral"] - // SymbolKind1 = Escape (*) ["if"] - // - // "StringLiteral" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Escape" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@L" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "if" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Id" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>@L" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "<" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>@R" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "(" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "MacroId" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // ";" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@R" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state200< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 201 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [";"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["if"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) Symbol0 ">" @R [";"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["if"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S220 - // @L -> S221 - // Symbol0 -> S222 - pub fn __state201< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state221(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state222(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 202 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["("] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" [";"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["<"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>?"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>@L"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>@R"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@L"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@R"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Escape"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Id"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["MacroId"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["StringLiteral"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["if"] - // - // "<" -> Shift(S223) - // - pub fn __state202< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state223(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 203 - // SymbolKind1 = NonterminalId (*) ["("] - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) [";"] - // SymbolKind1 = NonterminalId (*) ["<"] - // SymbolKind1 = NonterminalId (*) ["=>"] - // SymbolKind1 = NonterminalId (*) ["=>?"] - // SymbolKind1 = NonterminalId (*) ["=>@L"] - // SymbolKind1 = NonterminalId (*) ["=>@R"] - // SymbolKind1 = NonterminalId (*) ["?"] - // SymbolKind1 = NonterminalId (*) ["@L"] - // SymbolKind1 = NonterminalId (*) ["@R"] - // SymbolKind1 = NonterminalId (*) ["Escape"] - // SymbolKind1 = NonterminalId (*) ["Id"] - // SymbolKind1 = NonterminalId (*) ["MacroId"] - // SymbolKind1 = NonterminalId (*) ["StringLiteral"] - // SymbolKind1 = NonterminalId (*) ["if"] - // - // "=>?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "=>@R" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "=>" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Escape" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Id" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "<" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "=>@L" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "StringLiteral" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "@L" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ";" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "MacroId" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "if" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "(" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "@R" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state203< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 204 - // ("if" ) = (*) "if" Cond [";"] - // ("if" ) = (*) "if" Cond ["=>"] - // ("if" ) = (*) "if" Cond ["=>?"] - // ("if" ) = (*) "if" Cond ["=>@L"] - // ("if" ) = (*) "if" Cond ["=>@R"] - // ("if" )? = (*) [";"] - // ("if" )? = (*) ["=>"] - // ("if" )? = (*) ["=>?"] - // ("if" )? = (*) ["=>@L"] - // ("if" )? = (*) ["=>@R"] - // ("if" )? = (*) ("if" ) [";"] - // ("if" )? = (*) ("if" ) ["=>"] - // ("if" )? = (*) ("if" ) ["=>?"] - // ("if" )? = (*) ("if" ) ["=>@L"] - // ("if" )? = (*) ("if" ) ["=>@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["("] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R [";"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["<"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>?"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>@L"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["@L"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["StringLiteral"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["if"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["}"] - // - // "=>@L" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "if" -> Shift(S160) - // "=>?" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>@R" -> Reduce(("if" )? = => Call(ActionFn(99));) - // ";" -> Reduce(("if" )? = => Call(ActionFn(99));) - // - // ("if" )? -> S224 - // ("if" ) -> S159 - pub fn __state204< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::If(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state160(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state224(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state159(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 205 - // Alternatives = "{" Alternative* "}" ";" (*) [EOF] - // Alternatives = "{" Alternative* "}" ";" (*) ["Escape"] - // Alternatives = "{" Alternative* "}" ";" (*) ["Id"] - // Alternatives = "{" Alternative* "}" ";" (*) ["MacroId"] - // Alternatives = "{" Alternative* "}" ";" (*) ["extern"] - // Alternatives = "{" Alternative* "}" ";" (*) ["pub"] - // Alternatives = "{" Alternative* "}" ";" (*) ["use"] - // - // "pub" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "use" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "Id" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // EOF -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "Escape" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "extern" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "MacroId" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // - pub fn __state205< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 206 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" ["{"] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S225 - // ( ",")* -> S81 - pub fn __state206< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state225(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 207 - // TypeRef = "(" Comma (*) ")" ["{"] - // - // ")" -> Shift(S226) - // - pub fn __state207< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state226(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 208 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["{"] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id ["{"] - // - // "Id" -> Shift(S228) - // - // Id -> S227 - // ( "::") -> S80 - pub fn __state208< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state228(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state227(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 209 - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Shift(S229) - // - pub fn __state209< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym10 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state229(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 210 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef ["{"] - // - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S230 - pub fn __state210< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state230(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 211 - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["enum"] - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["type"] - // - // "=" -> Shift(S231) - // - pub fn __state211< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Equals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state231(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 212 - // Cond = @L NonterminalId (*) CondOp StringLiteral @R [";"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>?"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>@L"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>@R"] - // CondOp = (*) "!=" ["StringLiteral"] - // CondOp = (*) "!~" ["StringLiteral"] - // CondOp = (*) "==" ["StringLiteral"] - // CondOp = (*) "~~" ["StringLiteral"] - // - // "!=" -> Shift(S236) - // "==" -> Shift(S233) - // "!~" -> Shift(S232) - // "~~" -> Shift(S234) - // - // CondOp -> S235 - pub fn __state212< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::BangEquals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state236(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::EqualsEquals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state233(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::BangTilde(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state232(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::TildeTilde(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state234(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::CondOp(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state235(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 213 - // Id = "Id" (*) ["!="] - // Id = "Id" (*) ["!~"] - // Id = "Id" (*) ["=="] - // Id = "Id" (*) ["~~"] - // - // "!=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "~~" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "==" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "!~" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state213< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::BangEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::TildeTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::BangTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 214 - // NonterminalId = Id (*) ["!="] - // NonterminalId = Id (*) ["!~"] - // NonterminalId = Id (*) ["=="] - // NonterminalId = Id (*) ["~~"] - // - // "~~" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "!=" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "==" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "!~" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state214< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::TildeTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::BangEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::BangTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 215 - // @R = (*) [EOF] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["extern"] - // @R = (*) ["pub"] - // @R = (*) ["use"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R [EOF] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["extern"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["pub"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["use"] - // - // "Id" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "use" -> Reduce(@R = => Lookbehind;) - // "extern" -> Reduce(@R = => Lookbehind;) - // "pub" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // EOF -> Reduce(@R = => Lookbehind;) - // - // @R -> S237 - pub fn __state215< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Use(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Extern(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Pub(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - None => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state237(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 216 - // Symbol0 = Symbol0 RepeatOp @R (*) ["("] - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) [";"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["<"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>?"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>@L"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>@R"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@L"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@R"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Escape"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Id"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["MacroId"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["StringLiteral"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["if"] - // - // "=>@L" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "=>?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "(" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "=>" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "Escape" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "if" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "<" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@L" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "Id" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "=>@R" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@R" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "MacroId" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ";" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state216< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 217 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["("] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" [";"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["<"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>?"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>@L"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>@R"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@L"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@R"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Escape"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Id"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["MacroId"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["StringLiteral"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["if"] - // - // ")" -> Shift(S238) - // - pub fn __state217< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state238(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 218 - // @L = (*) ["("] - // @L = (*) ["<"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // ExprSymbol = Symbol* (*) [")"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [")"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" Symbol0 ">" @R [")"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) Symbol0 ["("] - // Symbol = (*) Symbol0 [")"] - // Symbol = (*) Symbol0 ["<"] - // Symbol = (*) Symbol0 ["@L"] - // Symbol = (*) Symbol0 ["@R"] - // Symbol = (*) Symbol0 ["Escape"] - // Symbol = (*) Symbol0 ["Id"] - // Symbol = (*) Symbol0 ["MacroId"] - // Symbol = (*) Symbol0 ["StringLiteral"] - // Symbol* = Symbol* (*) Symbol ["("] - // Symbol* = Symbol* (*) Symbol [")"] - // Symbol* = Symbol* (*) Symbol ["<"] - // Symbol* = Symbol* (*) Symbol ["@L"] - // Symbol* = Symbol* (*) Symbol ["@R"] - // Symbol* = Symbol* (*) Symbol ["Escape"] - // Symbol* = Symbol* (*) Symbol ["Id"] - // Symbol* = Symbol* (*) Symbol ["MacroId"] - // Symbol* = Symbol* (*) Symbol ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["("] - // Symbol0 = (*) Symbol0 RepeatOp @R [")"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["<"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@L"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@R"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Escape"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Id"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["MacroId"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["StringLiteral"] - // Symbol0 = (*) Symbol1 ["("] - // Symbol0 = (*) Symbol1 [")"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 ["<"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol0 = (*) Symbol1 ["@L"] - // Symbol0 = (*) Symbol1 ["@R"] - // Symbol0 = (*) Symbol1 ["Escape"] - // Symbol0 = (*) Symbol1 ["Id"] - // Symbol0 = (*) Symbol1 ["MacroId"] - // Symbol0 = (*) Symbol1 ["StringLiteral"] - // Symbol1 = (*) @L SymbolKind1 @R ["("] - // Symbol1 = (*) @L SymbolKind1 @R [")"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R ["<"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["@L"] - // Symbol1 = (*) @L SymbolKind1 @R ["@R"] - // Symbol1 = (*) @L SymbolKind1 @R ["Escape"] - // Symbol1 = (*) @L SymbolKind1 @R ["Id"] - // Symbol1 = (*) @L SymbolKind1 @R ["MacroId"] - // Symbol1 = (*) @L SymbolKind1 @R ["StringLiteral"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // ")" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "@L" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S240 - // Symbol -> S241 - // Symbol0 -> S239 - // @L -> S242 - pub fn __state218< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state240(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state241(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state239(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state242(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 219 - // Symbol1 = @L SymbolKind1 @R (*) ["("] - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) [";"] - // Symbol1 = @L SymbolKind1 @R (*) ["<"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>?"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>@L"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>@R"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // Symbol1 = @L SymbolKind1 @R (*) ["@L"] - // Symbol1 = @L SymbolKind1 @R (*) ["@R"] - // Symbol1 = @L SymbolKind1 @R (*) ["Escape"] - // Symbol1 = @L SymbolKind1 @R (*) ["Id"] - // Symbol1 = @L SymbolKind1 @R (*) ["MacroId"] - // Symbol1 = @L SymbolKind1 @R (*) ["StringLiteral"] - // Symbol1 = @L SymbolKind1 @R (*) ["if"] - // - // "=>" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "MacroId" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "=>@R" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "=>@L" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@R" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "<" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Id" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "(" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Escape" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "=>?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ";" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "StringLiteral" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "if" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@L" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state219< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 220 - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) [">"] - // Symbol0 = Symbol1 (*) ["?"] - // - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ">" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state220< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 221 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [":"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [";"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["if"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "Id" -> Shift(S249) - // "Escape" -> Shift(S250) - // "@R" -> Shift(S255) - // "@L" -> Shift(S246) - // "(" -> Shift(S248) - // "StringLiteral" -> Shift(S244) - // "MacroId" -> Shift(S68) - // - // Terminal -> S243 - // Id -> S247 - // Escape -> S252 - // MacroId -> S245 - // SymbolKind1 -> S251 - // StringLiteral -> S253 - // NonterminalId -> S254 - pub fn __state221< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state249(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Terminal(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Id(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state247(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::MacroId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 222 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" Symbol0 (*) ">" @R [";"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>?"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>@L"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>@R"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["if"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // ">" -> Shift(S258) - // "*" -> Shift(S257) - // "?" -> Shift(S259) - // "+" -> Shift(S260) - // - // RepeatOp -> S256 - pub fn __state222< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state258(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 223 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["("] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" [";"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["<"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>?"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>@L"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>@R"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@L"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@R"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Escape"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Id"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["MacroId"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["StringLiteral"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["if"] - // - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // Comma -> S262 - // ( ",")* -> S261 - pub fn __state223< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state262(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 224 - // Action = (*) "=>" [";"] - // Action = (*) "=>?" [";"] - // Action = (*) "=>@L" [";"] - // Action = (*) "=>@R" [";"] - // Action? = (*) [";"] - // Action? = (*) Action [";"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["("] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R [";"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["<"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>?"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["@L"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["@R"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["if"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["}"] - // - // "=>?" -> Shift(S183) - // "=>@R" -> Shift(S180) - // ";" -> Reduce(Action? = => Call(ActionFn(97));) - // "=>" -> Shift(S184) - // "=>@L" -> Shift(S185) - // - // Action? -> S263 - // Action -> S182 - pub fn __state224< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state183(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state180(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::EqualsGreaterThanCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state184(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state185(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action97(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Action_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Action_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state263(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Action(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state182(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 225 - // TypeRef = Path "<" Comma (*) ">" ["{"] - // - // ">" -> Shift(S264) - // - pub fn __state225< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state264(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 226 - // TypeRef = "(" Comma ")" (*) ["{"] - // - // "{" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state226< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 227 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) ["{"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // - pub fn __state227< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 228 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["{"] - // - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state228< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 229 - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // Comma = (*) ( ",")* Conversion? ["}"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["use"] - // - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(153));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(153));) - // - // ( ",")* -> S265 - // Comma -> S266 - pub fn __state229< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action153(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action153(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym10.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt) => { - let __sym11 = &mut Some(__nt); - __result = try!(__state265(text, __lookbehind, __lookahead, __tokens, __sym11)); - } - __Nonterminal::Comma_3cConversion_3e(__nt) => { - let __sym11 = &mut Some(__nt); - __result = try!(__state266(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 230 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" ["{"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["{"] - // TypeRef = (*) Escape ["{"] - // TypeRef = (*) Path ["{"] - // TypeRef = (*) Path "<" Comma ">" ["{"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["{"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef ["{"] - // TypeRef = (*) "(" Comma ")" ["{"] - // - // "&" -> Shift(S175) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S170) - // "(" -> Shift(S171) - // "::" -> Shift(S50) - // - // Escape -> S173 - // TypeRef -> S267 - // Path -> S169 - // "::"? -> S172 - pub fn __state230< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state175(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state170(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state171(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state173(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state267(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state169(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state172(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 231 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["enum"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["type"] - // Escape = (*) "Escape" [";"] - // Path = (*) "::"? ( "::")* Id [";"] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [";"] - // TypeRef = (*) Path [";"] - // TypeRef = (*) Path "<" Comma ">" [";"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [";"] - // TypeRef = (*) "(" Comma ")" [";"] - // - // "Escape" -> Shift(S268) - // "::" -> Shift(S50) - // "&" -> Shift(S273) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S270) - // - // "::"? -> S272 - // TypeRef -> S269 - // Escape -> S271 - // Path -> S274 - pub fn __state231< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state268(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state273(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state270(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state272(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state269(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::Escape(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state271(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Path(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state274(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 232 - // CondOp = "!~" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "!~" => Call(ActionFn(27));) - // - pub fn __state232< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action27(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 233 - // CondOp = "==" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "==" => Call(ActionFn(24));) - // - pub fn __state233< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action24(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 234 - // CondOp = "~~" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "~~" => Call(ActionFn(26));) - // - pub fn __state234< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action26(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 235 - // Cond = @L NonterminalId CondOp (*) StringLiteral @R [";"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>?"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>@L"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>@R"] - // StringLiteral = (*) "StringLiteral" [";"] - // StringLiteral = (*) "StringLiteral" ["=>"] - // StringLiteral = (*) "StringLiteral" ["=>?"] - // StringLiteral = (*) "StringLiteral" ["=>@L"] - // StringLiteral = (*) "StringLiteral" ["=>@R"] - // - // "StringLiteral" -> Shift(S275) - // - // StringLiteral -> S276 - pub fn __state235< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state275(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state276(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 236 - // CondOp = "!=" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "!=" => Call(ActionFn(25));) - // - pub fn __state236< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action25(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 237 - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) [EOF] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["extern"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["pub"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["use"] - // - // "use" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "extern" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "pub" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Id" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // EOF -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Escape" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "MacroId" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // - pub fn __state237< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 238 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["("] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) [";"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["<"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>?"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>@L"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>@R"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@L"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@R"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Escape"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Id"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["MacroId"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["StringLiteral"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["if"] - // - // "=>@L" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "=>@R" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Escape" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@R" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "(" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "StringLiteral" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "=>" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "MacroId" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Id" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "if" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ";" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "<" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@L" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "=>?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state238< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 239 - // RepeatOp = (*) "*" ["("] - // RepeatOp = (*) "*" [")"] - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" ["<"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "*" ["@L"] - // RepeatOp = (*) "*" ["@R"] - // RepeatOp = (*) "*" ["Escape"] - // RepeatOp = (*) "*" ["Id"] - // RepeatOp = (*) "*" ["MacroId"] - // RepeatOp = (*) "*" ["StringLiteral"] - // RepeatOp = (*) "+" ["("] - // RepeatOp = (*) "+" [")"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" ["<"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "+" ["@L"] - // RepeatOp = (*) "+" ["@R"] - // RepeatOp = (*) "+" ["Escape"] - // RepeatOp = (*) "+" ["Id"] - // RepeatOp = (*) "+" ["MacroId"] - // RepeatOp = (*) "+" ["StringLiteral"] - // RepeatOp = (*) "?" ["("] - // RepeatOp = (*) "?" [")"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" ["<"] - // RepeatOp = (*) "?" ["?"] - // RepeatOp = (*) "?" ["@L"] - // RepeatOp = (*) "?" ["@R"] - // RepeatOp = (*) "?" ["Escape"] - // RepeatOp = (*) "?" ["Id"] - // RepeatOp = (*) "?" ["MacroId"] - // RepeatOp = (*) "?" ["StringLiteral"] - // Symbol = Symbol0 (*) ["("] - // Symbol = Symbol0 (*) [")"] - // Symbol = Symbol0 (*) ["<"] - // Symbol = Symbol0 (*) ["@L"] - // Symbol = Symbol0 (*) ["@R"] - // Symbol = Symbol0 (*) ["Escape"] - // Symbol = Symbol0 (*) ["Id"] - // Symbol = Symbol0 (*) ["MacroId"] - // Symbol = Symbol0 (*) ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["("] - // Symbol0 = Symbol0 (*) RepeatOp @R [")"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["<"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@L"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@R"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Escape"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Id"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["MacroId"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["StringLiteral"] - // - // "Escape" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "@L" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "Id" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "MacroId" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "+" -> Shift(S278) - // ")" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "<" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "StringLiteral" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "(" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "?" -> Shift(S280) - // "*" -> Shift(S279) - // "@R" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // - // RepeatOp -> S277 - pub fn __state239< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state278(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state280(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state279(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state277(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 240 - // Symbol0 = Symbol1 (*) ["("] - // Symbol0 = Symbol1 (*) [")"] - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) ["<"] - // Symbol0 = Symbol1 (*) ["?"] - // Symbol0 = Symbol1 (*) ["@L"] - // Symbol0 = Symbol1 (*) ["@R"] - // Symbol0 = Symbol1 (*) ["Escape"] - // Symbol0 = Symbol1 (*) ["Id"] - // Symbol0 = Symbol1 (*) ["MacroId"] - // Symbol0 = Symbol1 (*) ["StringLiteral"] - // - // "(" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Id" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@R" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@L" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ")" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "<" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "MacroId" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Escape" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state240< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 241 - // Symbol* = Symbol* Symbol (*) ["("] - // Symbol* = Symbol* Symbol (*) [")"] - // Symbol* = Symbol* Symbol (*) ["<"] - // Symbol* = Symbol* Symbol (*) ["@L"] - // Symbol* = Symbol* Symbol (*) ["@R"] - // Symbol* = Symbol* Symbol (*) ["Escape"] - // Symbol* = Symbol* Symbol (*) ["Id"] - // Symbol* = Symbol* Symbol (*) ["MacroId"] - // Symbol* = Symbol* Symbol (*) ["StringLiteral"] - // - // "@L" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Id" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "@R" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "<" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "(" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "StringLiteral" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Escape" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // ")" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "MacroId" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // - pub fn __state241< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 242 - // Escape = (*) "Escape" ["("] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" ["<"] - // Escape = (*) "Escape" ["?"] - // Escape = (*) "Escape" ["@L"] - // Escape = (*) "Escape" ["@R"] - // Escape = (*) "Escape" ["Escape"] - // Escape = (*) "Escape" ["Id"] - // Escape = (*) "Escape" ["MacroId"] - // Escape = (*) "Escape" ["StringLiteral"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" [")"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["?"] - // Id = (*) "Id" ["@L"] - // Id = (*) "Id" ["@R"] - // Id = (*) "Id" ["Escape"] - // Id = (*) "Id" ["Id"] - // Id = (*) "Id" ["MacroId"] - // Id = (*) "Id" ["StringLiteral"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["("] - // NonterminalId = (*) Id [")"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id ["<"] - // NonterminalId = (*) Id ["?"] - // NonterminalId = (*) Id ["@L"] - // NonterminalId = (*) Id ["@R"] - // NonterminalId = (*) Id ["Escape"] - // NonterminalId = (*) Id ["Id"] - // NonterminalId = (*) Id ["MacroId"] - // NonterminalId = (*) Id ["StringLiteral"] - // StringLiteral = (*) "StringLiteral" ["("] - // StringLiteral = (*) "StringLiteral" [")"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" ["<"] - // StringLiteral = (*) "StringLiteral" ["?"] - // StringLiteral = (*) "StringLiteral" ["@L"] - // StringLiteral = (*) "StringLiteral" ["@R"] - // StringLiteral = (*) "StringLiteral" ["Escape"] - // StringLiteral = (*) "StringLiteral" ["Id"] - // StringLiteral = (*) "StringLiteral" ["MacroId"] - // StringLiteral = (*) "StringLiteral" ["StringLiteral"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [")"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" Symbol0 ">" @R [")"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol1 = @L (*) SymbolKind1 @R ["("] - // Symbol1 = @L (*) SymbolKind1 @R [")"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R ["<"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // Symbol1 = @L (*) SymbolKind1 @R ["@L"] - // Symbol1 = @L (*) SymbolKind1 @R ["@R"] - // Symbol1 = @L (*) SymbolKind1 @R ["Escape"] - // Symbol1 = @L (*) SymbolKind1 @R ["Id"] - // Symbol1 = @L (*) SymbolKind1 @R ["MacroId"] - // Symbol1 = @L (*) SymbolKind1 @R ["StringLiteral"] - // SymbolKind1 = (*) Escape ["("] - // SymbolKind1 = (*) Escape [")"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape ["<"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) Escape ["@L"] - // SymbolKind1 = (*) Escape ["@R"] - // SymbolKind1 = (*) Escape ["Escape"] - // SymbolKind1 = (*) Escape ["Id"] - // SymbolKind1 = (*) Escape ["MacroId"] - // SymbolKind1 = (*) Escape ["StringLiteral"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["("] - // SymbolKind1 = (*) MacroId "<" Comma ">" [")"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["<"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@L"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@R"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Escape"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Id"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["MacroId"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["StringLiteral"] - // SymbolKind1 = (*) NonterminalId ["("] - // SymbolKind1 = (*) NonterminalId [")"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId ["<"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) NonterminalId ["@L"] - // SymbolKind1 = (*) NonterminalId ["@R"] - // SymbolKind1 = (*) NonterminalId ["Escape"] - // SymbolKind1 = (*) NonterminalId ["Id"] - // SymbolKind1 = (*) NonterminalId ["MacroId"] - // SymbolKind1 = (*) NonterminalId ["StringLiteral"] - // SymbolKind1 = (*) Terminal ["("] - // SymbolKind1 = (*) Terminal [")"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal ["<"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) Terminal ["@L"] - // SymbolKind1 = (*) Terminal ["@R"] - // SymbolKind1 = (*) Terminal ["Escape"] - // SymbolKind1 = (*) Terminal ["Id"] - // SymbolKind1 = (*) Terminal ["MacroId"] - // SymbolKind1 = (*) Terminal ["StringLiteral"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["("] - // SymbolKind1 = (*) "(" ExprSymbol ")" [")"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["<"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@L"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@R"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Escape"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Id"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["MacroId"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["StringLiteral"] - // SymbolKind1 = (*) "@L" ["("] - // SymbolKind1 = (*) "@L" [")"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" ["<"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@L" ["@L"] - // SymbolKind1 = (*) "@L" ["@R"] - // SymbolKind1 = (*) "@L" ["Escape"] - // SymbolKind1 = (*) "@L" ["Id"] - // SymbolKind1 = (*) "@L" ["MacroId"] - // SymbolKind1 = (*) "@L" ["StringLiteral"] - // SymbolKind1 = (*) "@R" ["("] - // SymbolKind1 = (*) "@R" [")"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" ["<"] - // SymbolKind1 = (*) "@R" ["?"] - // SymbolKind1 = (*) "@R" ["@L"] - // SymbolKind1 = (*) "@R" ["@R"] - // SymbolKind1 = (*) "@R" ["Escape"] - // SymbolKind1 = (*) "@R" ["Id"] - // SymbolKind1 = (*) "@R" ["MacroId"] - // SymbolKind1 = (*) "@R" ["StringLiteral"] - // Terminal = (*) StringLiteral ["("] - // Terminal = (*) StringLiteral [")"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral ["<"] - // Terminal = (*) StringLiteral ["?"] - // Terminal = (*) StringLiteral ["@L"] - // Terminal = (*) StringLiteral ["@R"] - // Terminal = (*) StringLiteral ["Escape"] - // Terminal = (*) StringLiteral ["Id"] - // Terminal = (*) StringLiteral ["MacroId"] - // Terminal = (*) StringLiteral ["StringLiteral"] - // - // "<" -> Shift(S282) - // "(" -> Shift(S281) - // "StringLiteral" -> Shift(S286) - // "@L" -> Shift(S288) - // "@R" -> Shift(S283) - // "MacroId" -> Shift(S68) - // "Escape" -> Shift(S287) - // "Id" -> Shift(S292) - // - // NonterminalId -> S289 - // MacroId -> S293 - // Escape -> S294 - // StringLiteral -> S291 - // Terminal -> S285 - // SymbolKind1 -> S284 - // Id -> S290 - pub fn __state242< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state282(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state281(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state286(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state288(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state283(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state287(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state292(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state289(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state293(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state294(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state291(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state285(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state284(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state290(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 243 - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) [">"] - // SymbolKind1 = Terminal (*) ["?"] - // - // ">" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state243< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 244 - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) [">"] - // StringLiteral = "StringLiteral" (*) ["?"] - // - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ">" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state244< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 245 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" [">"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // - // "<" -> Shift(S295) - // - pub fn __state245< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state295(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 246 - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) [">"] - // SymbolKind1 = "@L" (*) ["?"] - // - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ">" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state246< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 247 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [";"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["if"] - // - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ":" -> Shift(S296) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state247< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state296(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - Some((_, Tok::Star(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 248 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" [">"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S218 - // ExprSymbol -> S297 - pub fn __state248< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state297(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 249 - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [":"] - // Id = "Id" (*) [">"] - // Id = "Id" (*) ["?"] - // - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state249< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 250 - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) [">"] - // Escape = "Escape" (*) ["?"] - // - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state250< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 251 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R [">"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // - // ">" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // - // @R -> S298 - pub fn __state251< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state298(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 252 - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) [">"] - // SymbolKind1 = Escape (*) ["?"] - // - // ">" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state252< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 253 - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) [">"] - // Terminal = StringLiteral (*) ["?"] - // - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // ">" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state253< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 254 - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) [">"] - // SymbolKind1 = NonterminalId (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ">" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state254< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 255 - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) [">"] - // SymbolKind1 = "@R" (*) ["?"] - // - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ">" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state255< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 256 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R [">"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // ">" -> Reduce(@R = => Lookbehind;) - // - // @R -> S299 - pub fn __state256< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state299(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 257 - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) [">"] - // RepeatOp = "*" (*) ["?"] - // - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ">" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state257< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 258 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" Symbol0 ">" (*) @R [";"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>?"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>@L"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>@R"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["StringLiteral"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["if"] - // - // "if" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // - // @R -> S300 - pub fn __state258< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state300(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 259 - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) [">"] - // RepeatOp = "?" (*) ["?"] - // - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ">" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state259< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 260 - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) [">"] - // RepeatOp = "+" (*) ["?"] - // - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ">" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state260< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 261 - // ( ",") = (*) Symbol "," ["("] - // ( ",") = (*) Symbol "," ["<"] - // ( ",") = (*) Symbol "," [">"] - // ( ",") = (*) Symbol "," ["@L"] - // ( ",") = (*) Symbol "," ["@R"] - // ( ",") = (*) Symbol "," ["Escape"] - // ( ",") = (*) Symbol "," ["Id"] - // ( ",") = (*) Symbol "," ["MacroId"] - // ( ",") = (*) Symbol "," ["StringLiteral"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") ["<"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["@L"] - // ( ",")* = ( ",")* (*) ( ",") ["@R"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["MacroId"] - // ( ",")* = ( ",")* (*) ( ",") ["StringLiteral"] - // @L = (*) ["("] - // @L = (*) ["<"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Comma = ( ",")* (*) Symbol? [">"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [","] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [">"] - // Symbol = (*) @L "<" Symbol0 ">" @R [","] - // Symbol = (*) @L "<" Symbol0 ">" @R [">"] - // Symbol = (*) Symbol0 [","] - // Symbol = (*) Symbol0 [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [","] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [","] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [","] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // Symbol? = (*) [">"] - // Symbol? = (*) Symbol [">"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // ">" -> Reduce(Symbol? = => Call(ActionFn(137));) - // "@L" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // - // Symbol? -> S304 - // Symbol0 -> S302 - // ( ",") -> S303 - // Symbol -> S301 - // Symbol1 -> S306 - // @L -> S305 - pub fn __state261< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action137(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_3f(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state304(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state302(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state303(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state301(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state306(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state305(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 262 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["("] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" [";"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["<"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>?"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>@L"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>@R"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@L"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@R"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Escape"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Id"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["MacroId"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["StringLiteral"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["if"] - // - // ">" -> Shift(S307) - // - pub fn __state262< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state307(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 263 - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["("] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R [";"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["<"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>?"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["@L"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["@R"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["if"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["}"] - // - // ";" -> Shift(S308) - // - pub fn __state263< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state308(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 264 - // TypeRef = Path "<" Comma ">" (*) ["{"] - // - // "{" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state264< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 265 - // ( ",") = (*) Conversion "," ["StringLiteral"] - // ( ",") = (*) Conversion "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") ["StringLiteral"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["StringLiteral"] - // Comma = ( ",")* (*) Conversion? ["}"] - // Conversion = (*) @L Terminal "=>" @R [","] - // Conversion = (*) @L Terminal "=>" @R ["}"] - // Conversion? = (*) ["}"] - // Conversion? = (*) Conversion ["}"] - // - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "}" -> Reduce(Conversion? = => Call(ActionFn(152));) - // - // ( ",") -> S312 - // Conversion -> S310 - // @L -> S311 - // Conversion? -> S309 - pub fn __state265< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action152(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Conversion_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state312(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Conversion(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state310(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state311(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Conversion_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state309(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 266 - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["use"] - // - // "}" -> Shift(S313) - // - pub fn __state266< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym12 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state313(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 267 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) ["{"] - // - // "{" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state267< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 268 - // Escape = "Escape" (*) [";"] - // - // ";" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state268< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 269 - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["enum"] - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["type"] - // - // ";" -> Shift(S314) - // - pub fn __state269< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state314(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 270 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [";"] - // - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S60 - // Comma -> S315 - pub fn __state270< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state315(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 271 - // TypeRef = Escape (*) [";"] - // - // ";" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state271< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 272 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [";"] - // Path = "::"? (*) ( "::")* Id ["<"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S316 - pub fn __state272< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state316(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 273 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [";"] - // - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S59 - // Lifetime? -> S317 - pub fn __state273< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state317(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 274 - // TypeRef = Path (*) [";"] - // TypeRef = Path (*) "<" Comma ">" [";"] - // - // "<" -> Shift(S318) - // ";" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state274< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state318(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 275 - // StringLiteral = "StringLiteral" (*) [";"] - // StringLiteral = "StringLiteral" (*) ["=>"] - // StringLiteral = "StringLiteral" (*) ["=>?"] - // StringLiteral = "StringLiteral" (*) ["=>@L"] - // StringLiteral = "StringLiteral" (*) ["=>@R"] - // - // "=>@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ";" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state275< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 276 - // @R = (*) [";"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R [";"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>?"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>@L"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>@R"] - // - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // - // @R -> S319 - pub fn __state276< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state319(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 277 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) ["<"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["("] - // Symbol0 = Symbol0 RepeatOp (*) @R [")"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["<"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@L"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@R"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Escape"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Id"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["MacroId"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["StringLiteral"] - // - // ")" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // - // @R -> S320 - pub fn __state277< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state320(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 278 - // RepeatOp = "+" (*) ["("] - // RepeatOp = "+" (*) [")"] - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) ["<"] - // RepeatOp = "+" (*) ["?"] - // RepeatOp = "+" (*) ["@L"] - // RepeatOp = "+" (*) ["@R"] - // RepeatOp = "+" (*) ["Escape"] - // RepeatOp = "+" (*) ["Id"] - // RepeatOp = "+" (*) ["MacroId"] - // RepeatOp = "+" (*) ["StringLiteral"] - // - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "StringLiteral" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "(" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "MacroId" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@R" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Escape" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@L" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ")" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Id" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "<" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state278< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 279 - // RepeatOp = "*" (*) ["("] - // RepeatOp = "*" (*) [")"] - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) ["<"] - // RepeatOp = "*" (*) ["?"] - // RepeatOp = "*" (*) ["@L"] - // RepeatOp = "*" (*) ["@R"] - // RepeatOp = "*" (*) ["Escape"] - // RepeatOp = "*" (*) ["Id"] - // RepeatOp = "*" (*) ["MacroId"] - // RepeatOp = "*" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Id" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "MacroId" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@R" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "<" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@L" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Escape" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "(" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ")" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state279< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 280 - // RepeatOp = "?" (*) ["("] - // RepeatOp = "?" (*) [")"] - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) ["<"] - // RepeatOp = "?" (*) ["?"] - // RepeatOp = "?" (*) ["@L"] - // RepeatOp = "?" (*) ["@R"] - // RepeatOp = "?" (*) ["Escape"] - // RepeatOp = "?" (*) ["Id"] - // RepeatOp = "?" (*) ["MacroId"] - // RepeatOp = "?" (*) ["StringLiteral"] - // - // "Id" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "<" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@L" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "StringLiteral" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "(" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@R" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "MacroId" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "Escape" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ")" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state280< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 281 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["("] - // SymbolKind1 = "(" (*) ExprSymbol ")" [")"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["<"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@L"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@R"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Escape"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Id"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["MacroId"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["StringLiteral"] - // - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // ExprSymbol -> S321 - // Symbol* -> S218 - pub fn __state281< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state321(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 282 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [")"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) Symbol0 ">" @R [")"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S220 - // @L -> S323 - // Symbol0 -> S322 - pub fn __state282< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state323(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state322(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 283 - // SymbolKind1 = "@R" (*) ["("] - // SymbolKind1 = "@R" (*) [")"] - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) ["<"] - // SymbolKind1 = "@R" (*) ["?"] - // SymbolKind1 = "@R" (*) ["@L"] - // SymbolKind1 = "@R" (*) ["@R"] - // SymbolKind1 = "@R" (*) ["Escape"] - // SymbolKind1 = "@R" (*) ["Id"] - // SymbolKind1 = "@R" (*) ["MacroId"] - // SymbolKind1 = "@R" (*) ["StringLiteral"] - // - // "MacroId" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Id" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Escape" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@L" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@R" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ")" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "<" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "(" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state283< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 284 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) ["<"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol1 = @L SymbolKind1 (*) @R ["("] - // Symbol1 = @L SymbolKind1 (*) @R [")"] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R ["<"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["@L"] - // Symbol1 = @L SymbolKind1 (*) @R ["@R"] - // Symbol1 = @L SymbolKind1 (*) @R ["Escape"] - // Symbol1 = @L SymbolKind1 (*) @R ["Id"] - // Symbol1 = @L SymbolKind1 (*) @R ["MacroId"] - // Symbol1 = @L SymbolKind1 (*) @R ["StringLiteral"] - // - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // ")" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // - // @R -> S324 - pub fn __state284< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state324(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 285 - // SymbolKind1 = Terminal (*) ["("] - // SymbolKind1 = Terminal (*) [")"] - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) ["<"] - // SymbolKind1 = Terminal (*) ["?"] - // SymbolKind1 = Terminal (*) ["@L"] - // SymbolKind1 = Terminal (*) ["@R"] - // SymbolKind1 = Terminal (*) ["Escape"] - // SymbolKind1 = Terminal (*) ["Id"] - // SymbolKind1 = Terminal (*) ["MacroId"] - // SymbolKind1 = Terminal (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // ")" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@R" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Escape" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "MacroId" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@L" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "<" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Id" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "(" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state285< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 286 - // StringLiteral = "StringLiteral" (*) ["("] - // StringLiteral = "StringLiteral" (*) [")"] - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) ["<"] - // StringLiteral = "StringLiteral" (*) ["?"] - // StringLiteral = "StringLiteral" (*) ["@L"] - // StringLiteral = "StringLiteral" (*) ["@R"] - // StringLiteral = "StringLiteral" (*) ["Escape"] - // StringLiteral = "StringLiteral" (*) ["Id"] - // StringLiteral = "StringLiteral" (*) ["MacroId"] - // StringLiteral = "StringLiteral" (*) ["StringLiteral"] - // - // "Id" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "<" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "(" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "Escape" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ")" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "MacroId" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "StringLiteral" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state286< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 287 - // Escape = "Escape" (*) ["("] - // Escape = "Escape" (*) [")"] - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) ["<"] - // Escape = "Escape" (*) ["?"] - // Escape = "Escape" (*) ["@L"] - // Escape = "Escape" (*) ["@R"] - // Escape = "Escape" (*) ["Escape"] - // Escape = "Escape" (*) ["Id"] - // Escape = "Escape" (*) ["MacroId"] - // Escape = "Escape" (*) ["StringLiteral"] - // - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "<" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Id" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "StringLiteral" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "(" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@R" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Escape" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "MacroId" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ")" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@L" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state287< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 288 - // SymbolKind1 = "@L" (*) ["("] - // SymbolKind1 = "@L" (*) [")"] - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) ["<"] - // SymbolKind1 = "@L" (*) ["?"] - // SymbolKind1 = "@L" (*) ["@L"] - // SymbolKind1 = "@L" (*) ["@R"] - // SymbolKind1 = "@L" (*) ["Escape"] - // SymbolKind1 = "@L" (*) ["Id"] - // SymbolKind1 = "@L" (*) ["MacroId"] - // SymbolKind1 = "@L" (*) ["StringLiteral"] - // - // "@R" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "MacroId" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "@L" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "<" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Id" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "(" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Escape" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ")" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state288< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 289 - // SymbolKind1 = NonterminalId (*) ["("] - // SymbolKind1 = NonterminalId (*) [")"] - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) ["<"] - // SymbolKind1 = NonterminalId (*) ["?"] - // SymbolKind1 = NonterminalId (*) ["@L"] - // SymbolKind1 = NonterminalId (*) ["@R"] - // SymbolKind1 = NonterminalId (*) ["Escape"] - // SymbolKind1 = NonterminalId (*) ["Id"] - // SymbolKind1 = NonterminalId (*) ["MacroId"] - // SymbolKind1 = NonterminalId (*) ["StringLiteral"] - // - // "@R" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Id" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ")" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "@L" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "(" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "MacroId" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Escape" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "StringLiteral" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "<" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state289< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 290 - // NonterminalId = Id (*) ["("] - // NonterminalId = Id (*) [")"] - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) ["<"] - // NonterminalId = Id (*) ["?"] - // NonterminalId = Id (*) ["@L"] - // NonterminalId = Id (*) ["@R"] - // NonterminalId = Id (*) ["Escape"] - // NonterminalId = Id (*) ["Id"] - // NonterminalId = Id (*) ["MacroId"] - // NonterminalId = Id (*) ["StringLiteral"] - // - // "(" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "<" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@L" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ")" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Escape" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Id" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@R" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "MacroId" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "StringLiteral" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state290< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 291 - // Terminal = StringLiteral (*) ["("] - // Terminal = StringLiteral (*) [")"] - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) ["<"] - // Terminal = StringLiteral (*) ["?"] - // Terminal = StringLiteral (*) ["@L"] - // Terminal = StringLiteral (*) ["@R"] - // Terminal = StringLiteral (*) ["Escape"] - // Terminal = StringLiteral (*) ["Id"] - // Terminal = StringLiteral (*) ["MacroId"] - // Terminal = StringLiteral (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@L" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // ")" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "Escape" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "Id" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "<" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@R" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "MacroId" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "(" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state291< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 292 - // Id = "Id" (*) ["("] - // Id = "Id" (*) [")"] - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["?"] - // Id = "Id" (*) ["@L"] - // Id = "Id" (*) ["@R"] - // Id = "Id" (*) ["Escape"] - // Id = "Id" (*) ["Id"] - // Id = "Id" (*) ["MacroId"] - // Id = "Id" (*) ["StringLiteral"] - // - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "StringLiteral" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "MacroId" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@L" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@R" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Id" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Escape" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state292< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 293 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["("] - // SymbolKind1 = MacroId (*) "<" Comma ">" [")"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["<"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@L"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@R"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Escape"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Id"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["MacroId"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["StringLiteral"] - // - // "<" -> Shift(S325) - // - pub fn __state293< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state325(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 294 - // SymbolKind1 = Escape (*) ["("] - // SymbolKind1 = Escape (*) [")"] - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) ["<"] - // SymbolKind1 = Escape (*) ["?"] - // SymbolKind1 = Escape (*) ["@L"] - // SymbolKind1 = Escape (*) ["@R"] - // SymbolKind1 = Escape (*) ["Escape"] - // SymbolKind1 = Escape (*) ["Id"] - // SymbolKind1 = Escape (*) ["MacroId"] - // SymbolKind1 = Escape (*) ["StringLiteral"] - // - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "<" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "MacroId" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@L" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // ")" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "(" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "StringLiteral" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Escape" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Id" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@R" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state294< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 295 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // ( ",")* -> S261 - // Comma -> S326 - pub fn __state295< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state326(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 296 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [";"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["if"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // - // Symbol0 -> S328 - // Symbol1 -> S220 - // @L -> S327 - pub fn __state296< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol0(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state328(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::_40L(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state327(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 297 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" [">"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // - // ")" -> Shift(S329) - // - pub fn __state297< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state329(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 298 - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) [">"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ">" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state298< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 299 - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) [">"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ">" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state299< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 300 - // Symbol = @L "<" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" Symbol0 ">" @R (*) [";"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>?"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>@L"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>@R"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["StringLiteral"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["if"] - // - // "<" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "Escape" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>@L" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>@R" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@R" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@L" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>?" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "if" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "Id" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // ";" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "MacroId" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "(" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // - pub fn __state300< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 301 - // ( ",") = Symbol (*) "," ["("] - // ( ",") = Symbol (*) "," ["<"] - // ( ",") = Symbol (*) "," [">"] - // ( ",") = Symbol (*) "," ["@L"] - // ( ",") = Symbol (*) "," ["@R"] - // ( ",") = Symbol (*) "," ["Escape"] - // ( ",") = Symbol (*) "," ["Id"] - // ( ",") = Symbol (*) "," ["MacroId"] - // ( ",") = Symbol (*) "," ["StringLiteral"] - // Symbol? = Symbol (*) [">"] - // - // ">" -> Reduce(Symbol? = Symbol => Call(ActionFn(136));) - // "," -> Shift(S330) - // - pub fn __state301< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state330(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action136(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 302 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [","] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [","] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [","] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = Symbol0 (*) [","] - // Symbol = Symbol0 (*) [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [","] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "?" -> Shift(S332) - // "*" -> Shift(S333) - // "+" -> Shift(S334) - // "," -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // ">" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // - // RepeatOp -> S331 - pub fn __state302< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state332(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state333(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state334(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state331(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 303 - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) ["<"] - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["@L"] - // ( ",")* = ( ",")* ( ",") (*) ["@R"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["MacroId"] - // ( ",")* = ( ",")* ( ",") (*) ["StringLiteral"] - // - // "<" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "@R" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "StringLiteral" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "@L" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "MacroId" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // - pub fn __state303< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 304 - // Comma = ( ",")* Symbol? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, Symbol? => Call(ActionFn(93));) - // - pub fn __state304< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action93(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cSymbol_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 305 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [","] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [","] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [","] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [","] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [">"] - // Symbol = @L (*) "<" Symbol0 ">" @R [","] - // Symbol = @L (*) "<" Symbol0 ">" @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [","] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [","] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [","] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [","] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [","] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [","] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [","] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [","] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [","] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "Id" -> Shift(S343) - // "Escape" -> Shift(S337) - // "<" -> Shift(S346) - // "MacroId" -> Shift(S68) - // "@R" -> Shift(S335) - // "StringLiteral" -> Shift(S345) - // "(" -> Shift(S344) - // "@L" -> Shift(S347) - // - // StringLiteral -> S348 - // MacroId -> S342 - // SymbolKind1 -> S339 - // NonterminalId -> S340 - // Escape -> S341 - // Terminal -> S338 - // Id -> S336 - pub fn __state305< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state343(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state337(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state346(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state335(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state345(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state344(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state347(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state348(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state342(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state339(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state340(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state341(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state338(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state336(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 306 - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) [","] - // Symbol0 = Symbol1 (*) [">"] - // Symbol0 = Symbol1 (*) ["?"] - // - // "," -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ">" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state306< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 307 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["("] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) [";"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["<"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>?"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>@L"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>@R"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@L"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@R"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Escape"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Id"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["MacroId"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["StringLiteral"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["if"] - // - // "=>" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "if" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "(" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "=>@R" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Escape" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "MacroId" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@L" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "<" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "=>@L" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "StringLiteral" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Id" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "=>?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@R" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ";" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state307< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 308 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // @R = (*) ["}"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["("] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R [";"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["<"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>?"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["if"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["}"] - // - // "@L" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "}" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // - // @R -> S349 - pub fn __state308< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state349(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 309 - // Comma = ( ",")* Conversion? (*) ["}"] - // - // "}" -> Reduce(Comma = ( ",")*, Conversion? => Call(ActionFn(79));) - // - pub fn __state309< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action79(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cConversion_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 310 - // ( ",") = Conversion (*) "," ["StringLiteral"] - // ( ",") = Conversion (*) "," ["}"] - // Conversion? = Conversion (*) ["}"] - // - // "}" -> Reduce(Conversion? = Conversion => Call(ActionFn(151));) - // "," -> Shift(S350) - // - pub fn __state310< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state350(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action151(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Conversion_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 311 - // Conversion = @L (*) Terminal "=>" @R [","] - // Conversion = @L (*) Terminal "=>" @R ["}"] - // StringLiteral = (*) "StringLiteral" ["=>"] - // Terminal = (*) StringLiteral ["=>"] - // - // "StringLiteral" -> Shift(S351) - // - // StringLiteral -> S353 - // Terminal -> S352 - pub fn __state311< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state351(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state353(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state352(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 312 - // ( ",")* = ( ",")* ( ",") (*) ["StringLiteral"] - // ( ",")* = ( ",")* ( ",") (*) ["}"] - // - // "StringLiteral" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(154));) - // "}" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(154));) - // - pub fn __state312< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action154(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action154(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 313 - // AssociatedType* = (*) ["type"] - // AssociatedType* = (*) ["}"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["type"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["}"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["use"] - // - // "}" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // "type" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // - // AssociatedType* -> S354 - pub fn __state313< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - __sym12: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - Some((_, Tok::Type(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym12.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType_2a(__nt) => { - let __sym13 = &mut Some(__nt); - __result = try!(__state354(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 314 - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["enum"] - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["type"] - // - // "enum" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // "type" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // - pub fn __state314< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Enum(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 315 - // TypeRef = "(" Comma (*) ")" [";"] - // - // ")" -> Shift(S355) - // - pub fn __state315< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state355(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 316 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" [";"] - // Id = (*) "Id" ["<"] - // Path = "::"? ( "::")* (*) Id [";"] - // Path = "::"? ( "::")* (*) Id ["<"] - // - // "Id" -> Shift(S357) - // - // Id -> S356 - // ( "::") -> S80 - pub fn __state316< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state357(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state356(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 317 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [";"] - // - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S358 - pub fn __state317< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state358(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 318 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [";"] - // - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S359 - // ( ",")* -> S81 - pub fn __state318< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state359(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 319 - // Cond = @L NonterminalId CondOp StringLiteral @R (*) [";"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>?"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>@L"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>@R"] - // - // ";" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>@L" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>?" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>@R" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // - pub fn __state319< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 320 - // Symbol0 = Symbol0 RepeatOp @R (*) ["("] - // Symbol0 = Symbol0 RepeatOp @R (*) [")"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["<"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@L"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@R"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Escape"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Id"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["MacroId"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["StringLiteral"] - // - // "Id" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "<" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@R" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "Escape" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "(" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ")" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@L" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "MacroId" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state320< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 321 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["("] - // SymbolKind1 = "(" ExprSymbol (*) ")" [")"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["<"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@L"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@R"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Escape"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Id"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["MacroId"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["StringLiteral"] - // - // ")" -> Shift(S360) - // - pub fn __state321< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state360(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 322 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" Symbol0 (*) ">" @R [")"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "+" -> Shift(S260) - // "?" -> Shift(S259) - // "*" -> Shift(S257) - // ">" -> Shift(S361) - // - // RepeatOp -> S256 - pub fn __state322< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state361(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 323 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [":"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [")"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "Escape" -> Shift(S250) - // "@R" -> Shift(S255) - // "MacroId" -> Shift(S68) - // "Id" -> Shift(S249) - // "(" -> Shift(S248) - // "@L" -> Shift(S246) - // "StringLiteral" -> Shift(S244) - // - // NonterminalId -> S254 - // SymbolKind1 -> S251 - // Terminal -> S243 - // StringLiteral -> S253 - // MacroId -> S245 - // Escape -> S252 - // Id -> S362 - pub fn __state323< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state249(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::Terminal(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::MacroId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Id(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state362(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 324 - // Symbol1 = @L SymbolKind1 @R (*) ["("] - // Symbol1 = @L SymbolKind1 @R (*) [")"] - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) ["<"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // Symbol1 = @L SymbolKind1 @R (*) ["@L"] - // Symbol1 = @L SymbolKind1 @R (*) ["@R"] - // Symbol1 = @L SymbolKind1 @R (*) ["Escape"] - // Symbol1 = @L SymbolKind1 @R (*) ["Id"] - // Symbol1 = @L SymbolKind1 @R (*) ["MacroId"] - // Symbol1 = @L SymbolKind1 @R (*) ["StringLiteral"] - // - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ")" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "(" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "StringLiteral" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "<" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "MacroId" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Escape" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@L" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@R" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Id" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state324< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 325 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["("] - // SymbolKind1 = MacroId "<" (*) Comma ">" [")"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["<"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@L"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@R"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Escape"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Id"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["MacroId"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["StringLiteral"] - // - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // ( ",")* -> S261 - // Comma -> S363 - pub fn __state325< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state363(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 326 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" [">"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // - // ">" -> Shift(S364) - // - pub fn __state326< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state364(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 327 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "(" -> Shift(S248) - // "@R" -> Shift(S255) - // "Escape" -> Shift(S250) - // "Id" -> Shift(S365) - // "@L" -> Shift(S246) - // "StringLiteral" -> Shift(S244) - // "MacroId" -> Shift(S68) - // - // SymbolKind1 -> S251 - // Terminal -> S243 - // NonterminalId -> S254 - // Id -> S366 - // Escape -> S252 - // MacroId -> S245 - // StringLiteral -> S253 - pub fn __state327< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state365(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state366(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 328 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [";"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>@L"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>@R"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["if"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "?" -> Shift(S259) - // ">" -> Shift(S367) - // "+" -> Shift(S260) - // "*" -> Shift(S257) - // - // RepeatOp -> S256 - pub fn __state328< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state367(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 329 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) [">"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ">" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state329< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 330 - // ( ",") = Symbol "," (*) ["("] - // ( ",") = Symbol "," (*) ["<"] - // ( ",") = Symbol "," (*) [">"] - // ( ",") = Symbol "," (*) ["@L"] - // ( ",") = Symbol "," (*) ["@R"] - // ( ",") = Symbol "," (*) ["Escape"] - // ( ",") = Symbol "," (*) ["Id"] - // ( ",") = Symbol "," (*) ["MacroId"] - // ( ",") = Symbol "," (*) ["StringLiteral"] - // - // ">" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "(" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "Escape" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "MacroId" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "Id" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "@R" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "<" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "StringLiteral" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "@L" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // - pub fn __state330< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 331 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [","] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R [","] - // Symbol0 = Symbol0 RepeatOp (*) @R [">"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // - // ">" -> Reduce(@R = => Lookbehind;) - // "," -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // - // @R -> S368 - pub fn __state331< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state368(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 332 - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) [","] - // RepeatOp = "?" (*) [">"] - // RepeatOp = "?" (*) ["?"] - // - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ">" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "," -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state332< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 333 - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) [","] - // RepeatOp = "*" (*) [">"] - // RepeatOp = "*" (*) ["?"] - // - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "," -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ">" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state333< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 334 - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) [","] - // RepeatOp = "+" (*) [">"] - // RepeatOp = "+" (*) ["?"] - // - // "," -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ">" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state334< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 335 - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) [","] - // SymbolKind1 = "@R" (*) [">"] - // SymbolKind1 = "@R" (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "," -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ">" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state335< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 336 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [","] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "," -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state336< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 337 - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) [","] - // Escape = "Escape" (*) [">"] - // Escape = "Escape" (*) ["?"] - // - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state337< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 338 - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) [","] - // SymbolKind1 = Terminal (*) [">"] - // SymbolKind1 = Terminal (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // ">" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "," -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state338< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 339 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [","] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R [","] - // Symbol1 = @L SymbolKind1 (*) @R [">"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // - // "," -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // ">" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // - // @R -> S369 - pub fn __state339< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state369(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 340 - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) [","] - // SymbolKind1 = NonterminalId (*) [">"] - // SymbolKind1 = NonterminalId (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "," -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ">" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state340< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 341 - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) [","] - // SymbolKind1 = Escape (*) [">"] - // SymbolKind1 = Escape (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "," -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // ">" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state341< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 342 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" [","] - // SymbolKind1 = MacroId (*) "<" Comma ">" [">"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // - // "<" -> Shift(S370) - // - pub fn __state342< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state370(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 343 - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [","] - // Id = "Id" (*) [">"] - // Id = "Id" (*) ["?"] - // - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state343< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 344 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" [","] - // SymbolKind1 = "(" (*) ExprSymbol ")" [">"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S218 - // ExprSymbol -> S371 - pub fn __state344< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state371(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 345 - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) [","] - // StringLiteral = "StringLiteral" (*) [">"] - // StringLiteral = "StringLiteral" (*) ["?"] - // - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ">" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "," -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state345< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 346 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [","] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [">"] - // Symbol = @L "<" (*) Symbol0 ">" @R [","] - // Symbol = @L "<" (*) Symbol0 ">" @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "(" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // - // @L -> S373 - // Symbol1 -> S220 - // Symbol0 -> S372 - pub fn __state346< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state373(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state372(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 347 - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) [","] - // SymbolKind1 = "@L" (*) [">"] - // SymbolKind1 = "@L" (*) ["?"] - // - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ">" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "," -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state347< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 348 - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) [","] - // Terminal = StringLiteral (*) [">"] - // Terminal = StringLiteral (*) ["?"] - // - // ">" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "," -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state348< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 349 - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["("] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) [";"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["<"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>?"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["if"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["}"] - // - // "@R" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Id" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "}" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "MacroId" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Escape" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // ";" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "(" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "@L" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>?" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>@R" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "<" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "StringLiteral" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>@L" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "if" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // - pub fn __state349< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 350 - // ( ",") = Conversion "," (*) ["StringLiteral"] - // ( ",") = Conversion "," (*) ["}"] - // - // "}" -> Reduce(( ",") = Conversion, "," => Call(ActionFn(155));) - // "StringLiteral" -> Reduce(( ",") = Conversion, "," => Call(ActionFn(155));) - // - pub fn __state350< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action155(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action155(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 351 - // StringLiteral = "StringLiteral" (*) ["=>"] - // - // "=>" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state351< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 352 - // Conversion = @L Terminal (*) "=>" @R [","] - // Conversion = @L Terminal (*) "=>" @R ["}"] - // - // "=>" -> Shift(S374) - // - pub fn __state352< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state374(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 353 - // Terminal = StringLiteral (*) ["=>"] - // - // "=>" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state353< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 354 - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["type"] - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["}"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["type"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["}"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["use"] - // - // "type" -> Shift(S377) - // "}" -> Shift(S376) - // - // AssociatedType -> S375 - pub fn __state354< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - __sym12: &mut Option>, - __sym13: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Type(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym14 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state377(text, __lookbehind, __lookahead, __tokens, __sym14)); - } - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym14 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state376(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym13.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType(__nt) => { - let __sym14 = &mut Some(__nt); - __result = try!(__state375(text, __lookbehind, __lookahead, __tokens, __sym13, __sym14)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 355 - // TypeRef = "(" Comma ")" (*) [";"] - // - // ";" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state355< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 356 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [";"] - // Path = "::"? ( "::")* Id (*) ["<"] - // - // ";" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // - pub fn __state356< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 357 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) [";"] - // Id = "Id" (*) ["<"] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ";" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state357< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 358 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [";"] - // Path = (*) "::"? ( "::")* Id [";"] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [";"] - // TypeRef = (*) Path [";"] - // TypeRef = (*) Path "<" Comma ">" [";"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [";"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [";"] - // TypeRef = (*) "(" Comma ")" [";"] - // - // "::" -> Shift(S50) - // "Escape" -> Shift(S268) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S270) - // "&" -> Shift(S273) - // - // "::"? -> S272 - // Escape -> S271 - // Path -> S274 - // TypeRef -> S378 - pub fn __state358< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state268(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state270(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state273(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state272(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state271(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state274(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state378(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 359 - // TypeRef = Path "<" Comma (*) ">" [";"] - // - // ">" -> Shift(S379) - // - pub fn __state359< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state379(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 360 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["("] - // SymbolKind1 = "(" ExprSymbol ")" (*) [")"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["<"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@L"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@R"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Escape"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Id"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["MacroId"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["StringLiteral"] - // - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Id" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "(" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@R" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "MacroId" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Escape" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@L" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "StringLiteral" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "<" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ")" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state360< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 361 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["<"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" Symbol0 ">" (*) @R [")"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["StringLiteral"] - // - // ")" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // - // @R -> S380 - pub fn __state361< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state380(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 362 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [")"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["StringLiteral"] - // - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ":" -> Shift(S381) - // - pub fn __state362< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state381(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - Some((_, Tok::Plus(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 363 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["("] - // SymbolKind1 = MacroId "<" Comma (*) ">" [")"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["<"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@L"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@R"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Escape"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Id"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["MacroId"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["StringLiteral"] - // - // ">" -> Shift(S382) - // - pub fn __state363< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state382(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 364 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) [">"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ">" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state364< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 365 - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [">"] - // Id = "Id" (*) ["?"] - // - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state365< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 366 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state366< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 367 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [";"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>?"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["if"] - // - // "Id" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // - // @R -> S383 - pub fn __state367< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state383(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 368 - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) [","] - // Symbol0 = Symbol0 RepeatOp @R (*) [">"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "," -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ">" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state368< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 369 - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) [","] - // Symbol1 = @L SymbolKind1 @R (*) [">"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ">" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "," -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state369< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 370 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" [","] - // SymbolKind1 = MacroId "<" (*) Comma ">" [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // ( ",")* -> S261 - // Comma -> S384 - pub fn __state370< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state384(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 371 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" [","] - // SymbolKind1 = "(" ExprSymbol (*) ")" [">"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // - // ")" -> Shift(S385) - // - pub fn __state371< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state385(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 372 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" Symbol0 (*) ">" @R [","] - // Symbol = @L "<" Symbol0 (*) ">" @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // ">" -> Shift(S386) - // "?" -> Shift(S259) - // "*" -> Shift(S257) - // "+" -> Shift(S260) - // - // RepeatOp -> S256 - pub fn __state372< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state386(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 373 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [":"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [","] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "@L" -> Shift(S246) - // "@R" -> Shift(S255) - // "MacroId" -> Shift(S68) - // "StringLiteral" -> Shift(S244) - // "(" -> Shift(S248) - // "Escape" -> Shift(S250) - // "Id" -> Shift(S249) - // - // Terminal -> S243 - // Escape -> S252 - // StringLiteral -> S253 - // SymbolKind1 -> S251 - // MacroId -> S245 - // Id -> S387 - // NonterminalId -> S254 - pub fn __state373< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state249(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Terminal(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::MacroId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Id(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state387(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 374 - // @R = (*) [","] - // @R = (*) ["}"] - // Conversion = @L Terminal "=>" (*) @R [","] - // Conversion = @L Terminal "=>" (*) @R ["}"] - // - // "}" -> Reduce(@R = => Lookbehind;) - // "," -> Reduce(@R = => Lookbehind;) - // - // @R -> S388 - pub fn __state374< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state388(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 375 - // AssociatedType* = AssociatedType* AssociatedType (*) ["type"] - // AssociatedType* = AssociatedType* AssociatedType (*) ["}"] - // - // "type" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // "}" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // - pub fn __state375< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 376 - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["use"] - // - // "Escape" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "use" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // EOF -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "Id" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "MacroId" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "extern" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "pub" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // - pub fn __state376< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - __sym12: &mut Option>, - __sym13: &mut Option<::std::vec::Vec>, - __sym14: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 377 - // @L = (*) ["Id"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["type"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["}"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S389 - pub fn __state377< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state389(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 378 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [";"] - // - // ";" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state378< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 379 - // TypeRef = Path "<" Comma ">" (*) [";"] - // - // ";" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state379< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 380 - // Symbol = @L "<" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" Symbol0 ">" @R (*) [")"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["StringLiteral"] - // - // "Escape" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // ")" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@L" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "MacroId" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "(" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "<" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@R" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "Id" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // - pub fn __state380< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 381 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [")"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "(" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // Symbol0 -> S390 - // @L -> S327 - // Symbol1 -> S220 - pub fn __state381< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol0(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state390(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::_40L(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state327(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 382 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["("] - // SymbolKind1 = MacroId "<" Comma ">" (*) [")"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["<"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@L"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@R"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Escape"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Id"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["MacroId"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "(" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "MacroId" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "<" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Escape" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@L" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Id" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@R" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ")" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state382< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 383 - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [";"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>?"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["if"] - // - // ";" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "Escape" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "if" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "(" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "MacroId" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>@L" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@R" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@L" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "Id" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "<" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>@R" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>?" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // - pub fn __state383< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 384 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" [","] - // SymbolKind1 = MacroId "<" Comma (*) ">" [">"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // - // ">" -> Shift(S391) - // - pub fn __state384< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state391(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 385 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) [","] - // SymbolKind1 = "(" ExprSymbol ")" (*) [">"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // - // "," -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ">" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state385< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 386 - // @R = (*) [","] - // @R = (*) [">"] - // Symbol = @L "<" Symbol0 ">" (*) @R [","] - // Symbol = @L "<" Symbol0 ">" (*) @R [">"] - // - // "," -> Reduce(@R = => Lookbehind;) - // ">" -> Reduce(@R = => Lookbehind;) - // - // @R -> S392 - pub fn __state386< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state392(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 387 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [","] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [">"] - // - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ":" -> Shift(S393) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state387< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state393(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - Some((_, Tok::Question(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 388 - // Conversion = @L Terminal "=>" @R (*) [","] - // Conversion = @L Terminal "=>" @R (*) ["}"] - // - // "}" -> Reduce(Conversion = @L, Terminal, "=>", @R => TryCall(ActionFn(55));) - // "," -> Reduce(Conversion = @L, Terminal, "=>", @R => TryCall(ActionFn(55));) - // - pub fn __state388< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<&'input str>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = try!(super::__action55(text, __sym0, __sym1, __sym2, __sym3)); - return Ok((__lookbehind, __lookahead, __Nonterminal::Conversion(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = try!(super::__action55(text, __sym0, __sym1, __sym2, __sym3)); - return Ok((__lookbehind, __lookahead, __Nonterminal::Conversion(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 389 - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["type"] - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["}"] - // Id = (*) "Id" ["="] - // - // "Id" -> Shift(S176) - // - // Id -> S394 - pub fn __state389< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state176(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state394(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 390 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [")"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "*" -> Shift(S257) - // "?" -> Shift(S259) - // "+" -> Shift(S260) - // ">" -> Shift(S395) - // - // RepeatOp -> S256 - pub fn __state390< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state395(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 391 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) [","] - // SymbolKind1 = MacroId "<" Comma ">" (*) [">"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "," -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ">" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state391< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 392 - // Symbol = @L "<" Symbol0 ">" @R (*) [","] - // Symbol = @L "<" Symbol0 ">" @R (*) [">"] - // - // "," -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // ">" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // - pub fn __state392< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 393 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [","] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S220 - // Symbol0 -> S396 - // @L -> S327 - pub fn __state393< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state396(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::_40L(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state327(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 394 - // @R = (*) ["="] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["type"] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["}"] - // - // "=" -> Reduce(@R = => Lookbehind;) - // - // @R -> S397 - pub fn __state394< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state397(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 395 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["<"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [")"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["StringLiteral"] - // - // ")" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // - // @R -> S398 - pub fn __state395< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state398(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 396 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [","] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "?" -> Shift(S259) - // ">" -> Shift(S399) - // "+" -> Shift(S260) - // "*" -> Shift(S257) - // - // RepeatOp -> S256 - pub fn __state396< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state399(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 397 - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["type"] - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["}"] - // - // "=" -> Shift(S400) - // - pub fn __state397< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Equals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state400(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 398 - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [")"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["StringLiteral"] - // - // "Id" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "MacroId" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "Escape" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "<" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@L" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@R" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // ")" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "(" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // - pub fn __state398< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 399 - // @R = (*) [","] - // @R = (*) [">"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [","] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [">"] - // - // ">" -> Reduce(@R = => Lookbehind;) - // "," -> Reduce(@R = => Lookbehind;) - // - // @R -> S401 - pub fn __state399< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state401(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 400 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["type"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["}"] - // Escape = (*) "Escape" [";"] - // Path = (*) "::"? ( "::")* Id [";"] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [";"] - // TypeRef = (*) Path [";"] - // TypeRef = (*) Path "<" Comma ">" [";"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [";"] - // TypeRef = (*) "(" Comma ")" [";"] - // - // "Escape" -> Shift(S268) - // "&" -> Shift(S273) - // "(" -> Shift(S270) - // "::" -> Shift(S50) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // Path -> S274 - // Escape -> S271 - // TypeRef -> S402 - // "::"? -> S272 - pub fn __state400< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state268(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state273(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state270(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state274(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Escape(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state271(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state402(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state272(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 401 - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [","] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [">"] - // - // "," -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // ">" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // - pub fn __state401< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 402 - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["type"] - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["}"] - // - // ";" -> Shift(S403) - // - pub fn __state402< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state403(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 403 - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["type"] - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["}"] - // - // "}" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // "type" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // - pub fn __state403< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } -} -#[allow(non_snake_case)] -pub fn parse_Pattern< - 'input, - __TOKEN: __ToTriple<'input, Error=tok::Error>, - __TOKENS: IntoIterator, ->( - text: &'input str, - __tokens: __TOKENS, -) -> Result, __ParseError,tok::Error>> -{ - let mut __tokens = __tokens.into_iter(); - let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - match try!(__parse__Pattern::__state0(text, None, __lookahead, &mut __tokens)) { - (_, Some(__lookahead), _) => { - Err(__ParseError::ExtraToken { token: __lookahead }) - } - (_, None, __parse__Pattern::__Nonterminal::____Pattern(__nt)) => { - Ok(__nt) - } - _ => unreachable!(), - } -} - -mod __parse__Pattern { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use intern::{intern, InternedString}; - use grammar::parse_tree::*; - use grammar::pattern::*; - use std::iter::once; - use tok::{self, Tok}; - extern crate lalrpop_util as __lalrpop_util; - use self::__lalrpop_util::ParseError as __ParseError; - use super::__ToTriple; - - pub enum __Nonterminal<'input, > { - ____Grammar(Grammar), - Comma_3cNonterminalId_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType(AssociatedType), - Action_3f(::std::option::Option), - GrammarParameter_3f(::std::option::Option), - NonterminalId_3f(::std::option::Option), - Alternatives(Vec), - _28_3cId_3e_20_22_3a_3a_22_29_2a(::std::vec::Vec), - _28_3cFieldPattern_3e_20_22_2c_22_29(FieldPattern), - _22where_22_3f(::std::option::Option>), - Id(InternedString), - _28_3cTypeRef_3e_20_22_2c_22_29(TypeRef), - _40R(usize), - GrammarTypeParameters_3f(::std::option::Option>), - Use_2a(::std::vec::Vec), - _28_3cConversion_3e_20_22_2c_22_29(Conversion), - Symbol1(Symbol), - GrammarItem(GrammarItem), - RepeatOp(RepeatOp), - ExprSymbol(ExprSymbol), - Terminal(TerminalString), - Symbol_3f(::std::option::Option), - MacroId(NonterminalString), - _28_22if_22_20_3cCond_3e_29(Condition), - GrammarItem_2a(::std::vec::Vec), - FieldPattern_3f(::std::option::Option>), - _28_3cTypeRef_3e_20_22_2c_22_29_2a(::std::vec::Vec), - Comma_3cConversion_3e(Vec), - Action(ActionKind), - Cond(Condition), - Conversion_3f(::std::option::Option), - _28_3cFieldPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameters(Vec), - _22_3a_3a_22_3f(::std::option::Option>), - TypeRefOrLifetime_3f(::std::option::Option), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType_2a(::std::vec::Vec), - NonterminalName((NonterminalString, Vec)), - Comma_3cTypeRefOrLifetime_3e(Vec), - FieldPattern(FieldPattern), - Escape(InternedString), - Symbol0(Symbol), - Pattern_3f(::std::option::Option>), - _28_22if_22_20_3cCond_3e_29_3f(::std::option::Option), - _28_3cTypeParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - SymbolKind1(SymbolKind), - Symbol(Symbol), - Alternative(Alternative), - _22mut_22_3f(::std::option::Option>), - PatternKind(PatternKind), - GrammarTypeParameters(Vec), - Path(Path), - TypeRef_3f(::std::option::Option), - ExternToken(GrammarItem), - Lifetime_3f(::std::option::Option), - Comma_3cTypeRef_3e(Vec), - Comma_3cGrammarParameter_3e(Vec), - Grammar(Grammar), - _28_3cPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameter(Parameter), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(TypeRef), - _28_3cGrammarParameter_3e_20_22_2c_22_29(Parameter), - _28_3cSymbol_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeRef(TypeRef), - _28_22_3a_22_20_3cTypeRef_3e_29_3f(::std::option::Option), - Nonterminal(GrammarItem), - Pattern(Pattern), - Conversion(Conversion), - Use(GrammarItem), - CondOp(ConditionOp), - NonterminalId(NonterminalString), - Comma_3cSymbol_3e(Vec), - _28_3cSymbol_3e_20_22_2c_22_29(Symbol), - _28_22_3a_22_20_3cTypeRef_3e_29(TypeRef), - _28_3cId_3e_20_22_3a_3a_22_29(InternedString), - Alternative_2a(::std::vec::Vec), - _28_3cGrammarParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - _40L(usize), - _28_3cTypeParameter_3e_20_22_2c_22_29(TypeParameter), - Lifetime(InternedString), - TypeParameter_3f(::std::option::Option), - _28_3cConversion_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeParameter(TypeParameter), - Comma_3cTypeParameter_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29(NonterminalString), - _22pub_22_3f(::std::option::Option>), - Comma_3cPattern_3e(Vec>), - TypeRefOrLifetime(TypeRef), - _28_3cPattern_3e_20_22_2c_22_29(Pattern), - GrammarParameters_3f(::std::option::Option>), - Symbol_2a(::std::vec::Vec), - ____Pattern(Pattern), - StringLiteral(InternedString), - } - - // State 0 - // @L = (*) ["("] - // @L = (*) [".."] - // @L = (*) ["::"] - // @L = (*) ["<"] - // @L = (*) ["Id"] - // @L = (*) ["_"] - // Pattern = (*) @L PatternKind @R [EOF] - // __Pattern = (*) Pattern [EOF] - // - // "_" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // "::" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // ".." -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // - // @L -> S2 - // Pattern -> S1 - pub fn __state0< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Underscore(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - loop { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state2(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - __Nonterminal::Pattern(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state1(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - } - - // State 1 - // __Pattern = Pattern (*) [EOF] - // - // EOF -> Reduce(__Pattern = Pattern => Call(ActionFn(1));) - // - pub fn __state1< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action1(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::____Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 2 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Path = (*) "::"? ( "::")* Id [EOF] - // Path = (*) "::"? ( "::")* Id ["("] - // Path = (*) "::"? ( "::")* Id ["{"] - // Pattern = @L (*) PatternKind @R [EOF] - // PatternKind = (*) Path [EOF] - // PatternKind = (*) Path "(" Comma ")" [EOF] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [EOF] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [EOF] - // PatternKind = (*) "(" Comma ")" [EOF] - // PatternKind = (*) ".." [EOF] - // PatternKind = (*) "<" TypeRef ">" [EOF] - // PatternKind = (*) "_" [EOF] - // - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S7) - // "::" -> Shift(S6) - // "<" -> Shift(S9) - // ".." -> Shift(S4) - // "_" -> Shift(S8) - // - // PatternKind -> S5 - // Path -> S3 - // "::"? -> S10 - pub fn __state2< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state7(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state9(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state4(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Underscore(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state8(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::PatternKind(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state5(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state3(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state10(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 3 - // PatternKind = Path (*) [EOF] - // PatternKind = Path (*) "(" Comma ")" [EOF] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [EOF] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [EOF] - // - // "(" -> Shift(S12) - // EOF -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "{" -> Shift(S11) - // - pub fn __state3< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state12(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state11(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 4 - // PatternKind = ".." (*) [EOF] - // - // EOF -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // - pub fn __state4< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 5 - // @R = (*) [EOF] - // Pattern = @L PatternKind (*) @R [EOF] - // - // EOF -> Reduce(@R = => Lookbehind;) - // - // @R -> S13 - pub fn __state5< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state13(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 6 - // "::"? = "::" (*) ["Id"] - // - // "Id" -> Reduce("::"? = "::" => Call(ActionFn(85));) - // - pub fn __state6< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action85(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 7 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = "(" (*) Comma ")" [EOF] - // - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // Comma -> S15 - // ( ",")* -> S14 - pub fn __state7< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state15(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 8 - // PatternKind = "_" (*) [EOF] - // - // EOF -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // - pub fn __state8< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 9 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // PatternKind = "<" (*) TypeRef ">" [EOF] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "(" -> Shift(S18) - // "&" -> Shift(S17) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "::" -> Shift(S6) - // "Escape" -> Shift(S22) - // - // "::"? -> S16 - // Escape -> S20 - // Path -> S21 - // TypeRef -> S19 - pub fn __state9< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state19(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 10 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [EOF] - // Path = "::"? (*) ( "::")* Id ["("] - // Path = "::"? (*) ( "::")* Id ["{"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S23 - pub fn __state10< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state23(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 11 - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [EOF] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [EOF] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(75));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(75));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(75));) - // - // ( ",")* -> S24 - pub fn __state11< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state24(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 12 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = Path "(" (*) Comma ")" [EOF] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // Comma -> S25 - // ( ",")* -> S14 - pub fn __state12< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state25(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 13 - // Pattern = @L PatternKind @R (*) [EOF] - // - // EOF -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // - pub fn __state13< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 14 - // ( ",") = (*) Pattern "," ["("] - // ( ",") = (*) Pattern "," [")"] - // ( ",") = (*) Pattern "," [".."] - // ( ",") = (*) Pattern "," ["::"] - // ( ",") = (*) Pattern "," ["<"] - // ( ",") = (*) Pattern "," ["Id"] - // ( ",") = (*) Pattern "," ["_"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") ["<"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["_"] - // @L = (*) ["("] - // @L = (*) [".."] - // @L = (*) ["::"] - // @L = (*) ["<"] - // @L = (*) ["Id"] - // @L = (*) ["_"] - // Comma = ( ",")* (*) Pattern? [")"] - // Pattern = (*) @L PatternKind @R [")"] - // Pattern = (*) @L PatternKind @R [","] - // Pattern? = (*) [")"] - // Pattern? = (*) Pattern [")"] - // - // "::" -> Reduce(@L = => Lookahead;) - // ".." -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // ")" -> Reduce(Pattern? = => Call(ActionFn(157));) - // "_" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // - // ( ",") -> S28 - // Pattern? -> S27 - // Pattern -> S26 - // @L -> S29 - pub fn __state14< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action157(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Pattern_3f(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state28(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Pattern_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state27(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Pattern(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state26(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state29(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 15 - // PatternKind = "(" Comma (*) ")" [EOF] - // - // ")" -> Shift(S30) - // - pub fn __state15< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state30(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 16 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id [">"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S31 - pub fn __state16< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state31(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 17 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [">"] - // - // "Lifetime" -> Shift(S32) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S33 - // Lifetime? -> S34 - pub fn __state17< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state34(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 18 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [">"] - // - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S36 - // Comma -> S35 - pub fn __state18< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state35(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 19 - // PatternKind = "<" TypeRef (*) ">" [EOF] - // - // ">" -> Shift(S37) - // - pub fn __state19< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state37(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 20 - // TypeRef = Escape (*) [">"] - // - // ">" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state20< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 21 - // TypeRef = Path (*) [">"] - // TypeRef = Path (*) "<" Comma ">" [">"] - // - // ">" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S38) - // - pub fn __state21< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state38(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 22 - // Escape = "Escape" (*) [">"] - // - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state22< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 23 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [EOF] - // Id = (*) "Id" ["("] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["{"] - // Path = "::"? ( "::")* (*) Id [EOF] - // Path = "::"? ( "::")* (*) Id ["("] - // Path = "::"? ( "::")* (*) Id ["{"] - // - // "Id" -> Shift(S39) - // - // Id -> S41 - // ( "::") -> S40 - pub fn __state23< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state39(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state41(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 24 - // ( ",") = (*) FieldPattern "," [".."] - // ( ",") = (*) FieldPattern "," ["Id"] - // ( ",") = (*) FieldPattern "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["Id"] - // FieldPattern = (*) @L Id @R ":" Pattern [","] - // FieldPattern = (*) @L Id @R ":" Pattern ["}"] - // FieldPattern? = (*) ["}"] - // FieldPattern? = (*) FieldPattern ["}"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [EOF] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [EOF] - // - // "Id" -> Reduce(@L = => Lookahead;) - // ".." -> Shift(S43) - // "}" -> Reduce(FieldPattern? = => Call(ActionFn(74));) - // - // @L -> S44 - // FieldPattern -> S45 - // ( ",") -> S46 - // FieldPattern? -> S42 - pub fn __state24< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state43(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action74(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::FieldPattern(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::FieldPattern_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state42(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 25 - // PatternKind = Path "(" Comma (*) ")" [EOF] - // - // ")" -> Shift(S47) - // - pub fn __state25< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 26 - // ( ",") = Pattern (*) "," ["("] - // ( ",") = Pattern (*) "," [")"] - // ( ",") = Pattern (*) "," [".."] - // ( ",") = Pattern (*) "," ["::"] - // ( ",") = Pattern (*) "," ["<"] - // ( ",") = Pattern (*) "," ["Id"] - // ( ",") = Pattern (*) "," ["_"] - // Pattern? = Pattern (*) [")"] - // - // "," -> Shift(S48) - // ")" -> Reduce(Pattern? = Pattern => Call(ActionFn(156));) - // - pub fn __state26< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action156(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 27 - // Comma = ( ",")* Pattern? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, Pattern? => Call(ActionFn(78));) - // - pub fn __state27< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - __sym1: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action78(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cPattern_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 28 - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) [".."] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) ["<"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["_"] - // - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "<" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "_" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // ".." -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // - pub fn __state28< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Underscore(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 29 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Path = (*) "::"? ( "::")* Id ["("] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["{"] - // Pattern = @L (*) PatternKind @R [")"] - // Pattern = @L (*) PatternKind @R [","] - // PatternKind = (*) Path [")"] - // PatternKind = (*) Path [","] - // PatternKind = (*) Path "(" Comma ")" [")"] - // PatternKind = (*) Path "(" Comma ")" [","] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [")"] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [")"] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [","] - // PatternKind = (*) "(" Comma ")" [")"] - // PatternKind = (*) "(" Comma ")" [","] - // PatternKind = (*) ".." [")"] - // PatternKind = (*) ".." [","] - // PatternKind = (*) "<" TypeRef ">" [")"] - // PatternKind = (*) "<" TypeRef ">" [","] - // PatternKind = (*) "_" [")"] - // PatternKind = (*) "_" [","] - // - // ".." -> Shift(S54) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "<" -> Shift(S50) - // "(" -> Shift(S51) - // "_" -> Shift(S55) - // "::" -> Shift(S6) - // - // Path -> S49 - // "::"? -> S53 - // PatternKind -> S52 - pub fn __state29< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state54(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state51(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Underscore(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state55(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::PatternKind(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 30 - // PatternKind = "(" Comma ")" (*) [EOF] - // - // EOF -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // - pub fn __state30< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 31 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" [">"] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id [">"] - // - // "Id" -> Shift(S57) - // - // Id -> S56 - // ( "::") -> S40 - pub fn __state31< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state57(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state56(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 32 - // Lifetime = "Lifetime" (*) ["&"] - // Lifetime = "Lifetime" (*) ["("] - // Lifetime = "Lifetime" (*) ["::"] - // Lifetime = "Lifetime" (*) ["Escape"] - // Lifetime = "Lifetime" (*) ["Id"] - // Lifetime = "Lifetime" (*) ["mut"] - // - // "Id" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "::" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "Escape" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "mut" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "&" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "(" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state32< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 33 - // Lifetime? = Lifetime (*) ["&"] - // Lifetime? = Lifetime (*) ["("] - // Lifetime? = Lifetime (*) ["::"] - // Lifetime? = Lifetime (*) ["Escape"] - // Lifetime? = Lifetime (*) ["Id"] - // Lifetime? = Lifetime (*) ["mut"] - // - // "mut" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "::" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Id" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "&" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Escape" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "(" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // - pub fn __state33< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 34 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [">"] - // - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S59) - // - // "mut"? -> S58 - pub fn __state34< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 35 - // TypeRef = "(" Comma (*) ")" [">"] - // - // ")" -> Shift(S60) - // - pub fn __state35< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 36 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRef "," ["&"] - // ( ",") = (*) TypeRef "," ["("] - // ( ",") = (*) TypeRef "," [")"] - // ( ",") = (*) TypeRef "," ["::"] - // ( ",") = (*) TypeRef "," ["Escape"] - // ( ",") = (*) TypeRef "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) TypeRef? [")"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef? = (*) [")"] - // TypeRef? = (*) TypeRef [")"] - // - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S67) - // "&" -> Shift(S66) - // "(" -> Shift(S62) - // ")" -> Reduce(TypeRef? = => Call(ActionFn(142));) - // "::" -> Shift(S6) - // - // ( ",") -> S61 - // "::"? -> S68 - // Escape -> S64 - // TypeRef? -> S63 - // Path -> S69 - // TypeRef -> S65 - pub fn __state36< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state67(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state66(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state62(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action142(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state61(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state64(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state63(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state69(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state65(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 37 - // PatternKind = "<" TypeRef ">" (*) [EOF] - // - // EOF -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // - pub fn __state37< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 38 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [">"] - // - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // ( ",")* -> S70 - // Comma -> S71 - pub fn __state38< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state71(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 39 - // Id = "Id" (*) [EOF] - // Id = "Id" (*) ["("] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["{"] - // - // EOF -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state39< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 40 - // ( "::")* = ( "::")* ( "::") (*) ["Id"] - // - // "Id" -> Reduce(( "::")* = ( "::")*, ( "::") => Call(ActionFn(83));) - // - pub fn __state40< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action83(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 41 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [EOF] - // Path = "::"? ( "::")* Id (*) ["("] - // Path = "::"? ( "::")* Id (*) ["{"] - // - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // "(" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // EOF -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state41< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 42 - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [EOF] - // - // "}" -> Shift(S73) - // - pub fn __state42< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 43 - // PatternKind = Path "{" ( ",")* ".." (*) "}" [EOF] - // - // "}" -> Shift(S74) - // - pub fn __state43< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state74(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 44 - // FieldPattern = @L (*) Id @R ":" Pattern [","] - // FieldPattern = @L (*) Id @R ":" Pattern ["}"] - // Id = (*) "Id" [":"] - // - // "Id" -> Shift(S76) - // - // Id -> S75 - pub fn __state44< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state76(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state75(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 45 - // ( ",") = FieldPattern (*) "," [".."] - // ( ",") = FieldPattern (*) "," ["Id"] - // ( ",") = FieldPattern (*) "," ["}"] - // FieldPattern? = FieldPattern (*) ["}"] - // - // "," -> Shift(S77) - // "}" -> Reduce(FieldPattern? = FieldPattern => Call(ActionFn(73));) - // - pub fn __state45< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state77(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action73(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 46 - // ( ",")* = ( ",")* ( ",") (*) [".."] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["}"] - // - // ".." -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(76));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(76));) - // "}" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(76));) - // - pub fn __state46< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action76(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action76(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action76(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 47 - // PatternKind = Path "(" Comma ")" (*) [EOF] - // - // EOF -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // - pub fn __state47< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 48 - // ( ",") = Pattern "," (*) ["("] - // ( ",") = Pattern "," (*) [")"] - // ( ",") = Pattern "," (*) [".."] - // ( ",") = Pattern "," (*) ["::"] - // ( ",") = Pattern "," (*) ["<"] - // ( ",") = Pattern "," (*) ["Id"] - // ( ",") = Pattern "," (*) ["_"] - // - // "(" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "_" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // ")" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "Id" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "::" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // ".." -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "<" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // - pub fn __state48< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Underscore(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 49 - // PatternKind = Path (*) [")"] - // PatternKind = Path (*) [","] - // PatternKind = Path (*) "(" Comma ")" [")"] - // PatternKind = Path (*) "(" Comma ")" [","] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [")"] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [")"] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [","] - // - // ")" -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "{" -> Shift(S79) - // "," -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "(" -> Shift(S78) - // - pub fn __state49< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state79(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state78(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 50 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // PatternKind = "<" (*) TypeRef ">" [")"] - // PatternKind = "<" (*) TypeRef ">" [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "(" -> Shift(S18) - // "::" -> Shift(S6) - // "&" -> Shift(S17) - // "Escape" -> Shift(S22) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // Path -> S21 - // TypeRef -> S80 - // Escape -> S20 - // "::"? -> S16 - pub fn __state50< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 51 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = "(" (*) Comma ")" [")"] - // PatternKind = "(" (*) Comma ")" [","] - // - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // ( ",")* -> S14 - // Comma -> S81 - pub fn __state51< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 52 - // @R = (*) [")"] - // @R = (*) [","] - // Pattern = @L PatternKind (*) @R [")"] - // Pattern = @L PatternKind (*) @R [","] - // - // "," -> Reduce(@R = => Lookbehind;) - // ")" -> Reduce(@R = => Lookbehind;) - // - // @R -> S82 - pub fn __state52< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state82(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 53 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["("] - // Path = "::"? (*) ( "::")* Id [")"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["{"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S83 - pub fn __state53< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state83(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 54 - // PatternKind = ".." (*) [")"] - // PatternKind = ".." (*) [","] - // - // "," -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // ")" -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // - pub fn __state54< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 55 - // PatternKind = "_" (*) [")"] - // PatternKind = "_" (*) [","] - // - // "," -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // ")" -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // - pub fn __state55< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 56 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) [">"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // ">" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state56< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 57 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) [">"] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state57< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 58 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "Escape" -> Shift(S22) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S18) - // "&" -> Shift(S17) - // "::" -> Shift(S6) - // - // "::"? -> S16 - // TypeRef -> S84 - // Path -> S21 - // Escape -> S20 - pub fn __state58< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state84(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 59 - // "mut"? = "mut" (*) ["&"] - // "mut"? = "mut" (*) ["("] - // "mut"? = "mut" (*) ["::"] - // "mut"? = "mut" (*) ["Escape"] - // "mut"? = "mut" (*) ["Id"] - // - // "Escape" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "Id" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "(" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "::" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "&" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // - pub fn __state59< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 60 - // TypeRef = "(" Comma ")" (*) [">"] - // - // ">" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state60< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 61 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // - pub fn __state61< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 62 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [")"] - // TypeRef = "(" (*) Comma ")" [","] - // - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S85 - // ( ",")* -> S36 - pub fn __state62< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state85(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 63 - // Comma = ( ",")* TypeRef? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, TypeRef? => Call(ActionFn(92));) - // - pub fn __state63< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action92(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRef_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 64 - // TypeRef = Escape (*) [")"] - // TypeRef = Escape (*) [","] - // - // ")" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state64< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 65 - // ( ",") = TypeRef (*) "," ["&"] - // ( ",") = TypeRef (*) "," ["("] - // ( ",") = TypeRef (*) "," [")"] - // ( ",") = TypeRef (*) "," ["::"] - // ( ",") = TypeRef (*) "," ["Escape"] - // ( ",") = TypeRef (*) "," ["Id"] - // TypeRef? = TypeRef (*) [")"] - // - // "," -> Shift(S86) - // ")" -> Reduce(TypeRef? = TypeRef => Call(ActionFn(141));) - // - pub fn __state65< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state86(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action141(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 66 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [")"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S32) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S33 - // Lifetime? -> S87 - pub fn __state66< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state87(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 67 - // Escape = "Escape" (*) [")"] - // Escape = "Escape" (*) [","] - // - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ")" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state67< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 68 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [")"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S88 - pub fn __state68< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 69 - // TypeRef = Path (*) [")"] - // TypeRef = Path (*) [","] - // TypeRef = Path (*) "<" Comma ">" [")"] - // TypeRef = Path (*) "<" Comma ">" [","] - // - // "<" -> Shift(S89) - // ")" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state69< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state89(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 70 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["&"] - // ( ",") = (*) TypeRefOrLifetime "," ["("] - // ( ",") = (*) TypeRefOrLifetime "," ["::"] - // ( ",") = (*) TypeRefOrLifetime "," [">"] - // ( ",") = (*) TypeRefOrLifetime "," ["Escape"] - // ( ",") = (*) TypeRefOrLifetime "," ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["Lifetime"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["Lifetime"] - // Comma = ( ",")* (*) TypeRefOrLifetime? [">"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Lifetime = (*) "Lifetime" [","] - // Lifetime = (*) "Lifetime" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // TypeRefOrLifetime = (*) Lifetime [","] - // TypeRefOrLifetime = (*) Lifetime [">"] - // TypeRefOrLifetime = (*) TypeRef [","] - // TypeRefOrLifetime = (*) TypeRef [">"] - // TypeRefOrLifetime? = (*) [">"] - // TypeRefOrLifetime? = (*) TypeRefOrLifetime [">"] - // - // "Lifetime" -> Shift(S95) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S94) - // "(" -> Shift(S93) - // "Escape" -> Shift(S97) - // ">" -> Reduce(TypeRefOrLifetime? = => Call(ActionFn(147));) - // "::" -> Shift(S6) - // - // TypeRefOrLifetime? -> S100 - // TypeRefOrLifetime -> S99 - // TypeRef -> S101 - // Lifetime -> S98 - // ( ",") -> S92 - // "::"? -> S90 - // Escape -> S96 - // Path -> S91 - pub fn __state70< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state95(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state97(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action147(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeRefOrLifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state100(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeRefOrLifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state99(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state101(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state98(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state92(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state96(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state91(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 71 - // TypeRef = Path "<" Comma (*) ">" [">"] - // - // ">" -> Shift(S102) - // - pub fn __state71< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state102(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 72 - // ( "::") = Id "::" (*) ["Id"] - // - // "Id" -> Reduce(( "::") = Id, "::" => Call(ActionFn(84));) - // - pub fn __state72< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action84(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 73 - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [EOF] - // - // EOF -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // - pub fn __state73< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 74 - // PatternKind = Path "{" ( ",")* ".." "}" (*) [EOF] - // - // EOF -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // - pub fn __state74< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 75 - // @R = (*) [":"] - // FieldPattern = @L Id (*) @R ":" Pattern [","] - // FieldPattern = @L Id (*) @R ":" Pattern ["}"] - // - // ":" -> Reduce(@R = => Lookbehind;) - // - // @R -> S103 - pub fn __state75< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state103(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 76 - // Id = "Id" (*) [":"] - // - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state76< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 77 - // ( ",") = FieldPattern "," (*) [".."] - // ( ",") = FieldPattern "," (*) ["Id"] - // ( ",") = FieldPattern "," (*) ["}"] - // - // ".." -> Reduce(( ",") = FieldPattern, "," => Call(ActionFn(77));) - // "}" -> Reduce(( ",") = FieldPattern, "," => Call(ActionFn(77));) - // "Id" -> Reduce(( ",") = FieldPattern, "," => Call(ActionFn(77));) - // - pub fn __state77< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action77(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action77(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action77(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 78 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = Path "(" (*) Comma ")" [")"] - // PatternKind = Path "(" (*) Comma ")" [","] - // - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // ( ",")* -> S14 - // Comma -> S104 - pub fn __state78< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state104(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 79 - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [")"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [","] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [")"] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [","] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(75));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(75));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(75));) - // - // ( ",")* -> S105 - pub fn __state79< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state105(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 80 - // PatternKind = "<" TypeRef (*) ">" [")"] - // PatternKind = "<" TypeRef (*) ">" [","] - // - // ">" -> Shift(S106) - // - pub fn __state80< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state106(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 81 - // PatternKind = "(" Comma (*) ")" [")"] - // PatternKind = "(" Comma (*) ")" [","] - // - // ")" -> Shift(S107) - // - pub fn __state81< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state107(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 82 - // Pattern = @L PatternKind @R (*) [")"] - // Pattern = @L PatternKind @R (*) [","] - // - // ")" -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // "," -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // - pub fn __state82< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 83 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" [")"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["{"] - // Path = "::"? ( "::")* (*) Id ["("] - // Path = "::"? ( "::")* (*) Id [")"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["{"] - // - // "Id" -> Shift(S108) - // - // ( "::") -> S40 - // Id -> S109 - pub fn __state83< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state108(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state109(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 84 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [">"] - // - // ">" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state84< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 85 - // TypeRef = "(" Comma (*) ")" [")"] - // TypeRef = "(" Comma (*) ")" [","] - // - // ")" -> Shift(S110) - // - pub fn __state85< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state110(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 86 - // ( ",") = TypeRef "," (*) ["&"] - // ( ",") = TypeRef "," (*) ["("] - // ( ",") = TypeRef "," (*) [")"] - // ( ",") = TypeRef "," (*) ["::"] - // ( ",") = TypeRef "," (*) ["Escape"] - // ( ",") = TypeRef "," (*) ["Id"] - // - // "Id" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "&" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "Escape" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "(" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // ")" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "::" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // - pub fn __state86< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 87 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [")"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S59) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S111 - pub fn __state87< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state111(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 88 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [")"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Path = "::"? ( "::")* (*) Id [")"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // - // "Id" -> Shift(S113) - // - // ( "::") -> S40 - // Id -> S112 - pub fn __state88< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state113(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state112(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 89 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [")"] - // TypeRef = Path "<" (*) Comma ">" [","] - // - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S114 - // ( ",")* -> S70 - pub fn __state89< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state114(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 90 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id [">"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S115 - pub fn __state90< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state115(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 91 - // TypeRef = Path (*) [","] - // TypeRef = Path (*) [">"] - // TypeRef = Path (*) "<" Comma ">" [","] - // TypeRef = Path (*) "<" Comma ">" [">"] - // - // "<" -> Shift(S116) - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // ">" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state91< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state116(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 92 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["Lifetime"] - // - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Lifetime" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // - pub fn __state92< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 93 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [","] - // TypeRef = "(" (*) Comma ")" [">"] - // - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S117 - // ( ",")* -> S36 - pub fn __state93< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state117(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 94 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [">"] - // - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S32) - // - // Lifetime? -> S118 - // Lifetime -> S33 - pub fn __state94< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state118(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 95 - // Lifetime = "Lifetime" (*) [","] - // Lifetime = "Lifetime" (*) [">"] - // - // "," -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // ">" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state95< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 96 - // TypeRef = Escape (*) [","] - // TypeRef = Escape (*) [">"] - // - // ">" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state96< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 97 - // Escape = "Escape" (*) [","] - // Escape = "Escape" (*) [">"] - // - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state97< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 98 - // TypeRefOrLifetime = Lifetime (*) [","] - // TypeRefOrLifetime = Lifetime (*) [">"] - // - // "," -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // ">" -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // - pub fn __state98< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 99 - // ( ",") = TypeRefOrLifetime (*) "," ["&"] - // ( ",") = TypeRefOrLifetime (*) "," ["("] - // ( ",") = TypeRefOrLifetime (*) "," ["::"] - // ( ",") = TypeRefOrLifetime (*) "," [">"] - // ( ",") = TypeRefOrLifetime (*) "," ["Escape"] - // ( ",") = TypeRefOrLifetime (*) "," ["Id"] - // ( ",") = TypeRefOrLifetime (*) "," ["Lifetime"] - // TypeRefOrLifetime? = TypeRefOrLifetime (*) [">"] - // - // ">" -> Reduce(TypeRefOrLifetime? = TypeRefOrLifetime => Call(ActionFn(146));) - // "," -> Shift(S119) - // - pub fn __state99< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state119(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action146(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 100 - // Comma = ( ",")* TypeRefOrLifetime? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, TypeRefOrLifetime? => Call(ActionFn(87));) - // - pub fn __state100< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action87(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 101 - // TypeRefOrLifetime = TypeRef (*) [","] - // TypeRefOrLifetime = TypeRef (*) [">"] - // - // ">" -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // "," -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // - pub fn __state101< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 102 - // TypeRef = Path "<" Comma ">" (*) [">"] - // - // ">" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state102< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 103 - // FieldPattern = @L Id @R (*) ":" Pattern [","] - // FieldPattern = @L Id @R (*) ":" Pattern ["}"] - // - // ":" -> Shift(S120) - // - pub fn __state103< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state120(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 104 - // PatternKind = Path "(" Comma (*) ")" [")"] - // PatternKind = Path "(" Comma (*) ")" [","] - // - // ")" -> Shift(S121) - // - pub fn __state104< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state121(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 105 - // ( ",") = (*) FieldPattern "," [".."] - // ( ",") = (*) FieldPattern "," ["Id"] - // ( ",") = (*) FieldPattern "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["Id"] - // FieldPattern = (*) @L Id @R ":" Pattern [","] - // FieldPattern = (*) @L Id @R ":" Pattern ["}"] - // FieldPattern? = (*) ["}"] - // FieldPattern? = (*) FieldPattern ["}"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [")"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [","] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [")"] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [","] - // - // "}" -> Reduce(FieldPattern? = => Call(ActionFn(74));) - // "Id" -> Reduce(@L = => Lookahead;) - // ".." -> Shift(S122) - // - // FieldPattern -> S45 - // FieldPattern? -> S123 - // @L -> S44 - // ( ",") -> S46 - pub fn __state105< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state122(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action74(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::FieldPattern(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::FieldPattern_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state123(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::_40L(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 106 - // PatternKind = "<" TypeRef ">" (*) [")"] - // PatternKind = "<" TypeRef ">" (*) [","] - // - // ")" -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // "," -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // - pub fn __state106< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 107 - // PatternKind = "(" Comma ")" (*) [")"] - // PatternKind = "(" Comma ")" (*) [","] - // - // ")" -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // "," -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // - pub fn __state107< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 108 - // Id = "Id" (*) ["("] - // Id = "Id" (*) [")"] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["{"] - // - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state108< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 109 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["("] - // Path = "::"? ( "::")* Id (*) [")"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["{"] - // - // "(" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // ")" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state109< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 110 - // TypeRef = "(" Comma ")" (*) [")"] - // TypeRef = "(" Comma ")" (*) [","] - // - // ")" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state110< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 111 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [")"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // - // "Escape" -> Shift(S67) - // "::" -> Shift(S6) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S62) - // "&" -> Shift(S66) - // - // TypeRef -> S124 - // Path -> S69 - // "::"? -> S68 - // Escape -> S64 - pub fn __state111< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state67(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state62(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state66(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state124(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state69(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state64(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 112 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [")"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // - // "::" -> Shift(S72) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ")" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state112< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 113 - // Id = "Id" (*) [")"] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state113< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 114 - // TypeRef = Path "<" Comma (*) ">" [")"] - // TypeRef = Path "<" Comma (*) ">" [","] - // - // ">" -> Shift(S125) - // - pub fn __state114< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state125(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 115 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" [">"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id [">"] - // - // "Id" -> Shift(S126) - // - // ( "::") -> S40 - // Id -> S127 - pub fn __state115< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state126(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state127(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 116 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [","] - // TypeRef = Path "<" (*) Comma ">" [">"] - // - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S128 - // ( ",")* -> S70 - pub fn __state116< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state128(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 117 - // TypeRef = "(" Comma (*) ")" [","] - // TypeRef = "(" Comma (*) ")" [">"] - // - // ")" -> Shift(S129) - // - pub fn __state117< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state129(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 118 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [">"] - // - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S59) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S130 - pub fn __state118< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state130(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 119 - // ( ",") = TypeRefOrLifetime "," (*) ["&"] - // ( ",") = TypeRefOrLifetime "," (*) ["("] - // ( ",") = TypeRefOrLifetime "," (*) ["::"] - // ( ",") = TypeRefOrLifetime "," (*) [">"] - // ( ",") = TypeRefOrLifetime "," (*) ["Escape"] - // ( ",") = TypeRefOrLifetime "," (*) ["Id"] - // ( ",") = TypeRefOrLifetime "," (*) ["Lifetime"] - // - // "&" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "::" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // ">" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Escape" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "(" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Lifetime" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Id" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // - pub fn __state119< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 120 - // @L = (*) ["("] - // @L = (*) [".."] - // @L = (*) ["::"] - // @L = (*) ["<"] - // @L = (*) ["Id"] - // @L = (*) ["_"] - // FieldPattern = @L Id @R ":" (*) Pattern [","] - // FieldPattern = @L Id @R ":" (*) Pattern ["}"] - // Pattern = (*) @L PatternKind @R [","] - // Pattern = (*) @L PatternKind @R ["}"] - // - // "::" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // ".." -> Reduce(@L = => Lookahead;) - // "_" -> Reduce(@L = => Lookahead;) - // - // @L -> S131 - // Pattern -> S132 - pub fn __state120< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state131(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - __Nonterminal::Pattern(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state132(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 121 - // PatternKind = Path "(" Comma ")" (*) [")"] - // PatternKind = Path "(" Comma ")" (*) [","] - // - // ")" -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // "," -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // - pub fn __state121< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 122 - // PatternKind = Path "{" ( ",")* ".." (*) "}" [")"] - // PatternKind = Path "{" ( ",")* ".." (*) "}" [","] - // - // "}" -> Shift(S133) - // - pub fn __state122< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state133(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 123 - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [")"] - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [","] - // - // "}" -> Shift(S134) - // - pub fn __state123< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state134(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 124 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [")"] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // - // ")" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state124< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 125 - // TypeRef = Path "<" Comma ">" (*) [")"] - // TypeRef = Path "<" Comma ">" (*) [","] - // - // ")" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state125< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 126 - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) [">"] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state126< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 127 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) [">"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ">" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state127< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 128 - // TypeRef = Path "<" Comma (*) ">" [","] - // TypeRef = Path "<" Comma (*) ">" [">"] - // - // ">" -> Shift(S135) - // - pub fn __state128< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state135(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 129 - // TypeRef = "(" Comma ")" (*) [","] - // TypeRef = "(" Comma ")" (*) [">"] - // - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // ">" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state129< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 130 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "Escape" -> Shift(S97) - // "(" -> Shift(S93) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S94) - // "::" -> Shift(S6) - // - // Path -> S91 - // Escape -> S96 - // "::"? -> S90 - // TypeRef -> S136 - pub fn __state130< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state97(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state91(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state96(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state136(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 131 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Path = (*) "::"? ( "::")* Id ["("] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["{"] - // Path = (*) "::"? ( "::")* Id ["}"] - // Pattern = @L (*) PatternKind @R [","] - // Pattern = @L (*) PatternKind @R ["}"] - // PatternKind = (*) Path [","] - // PatternKind = (*) Path ["}"] - // PatternKind = (*) Path "(" Comma ")" [","] - // PatternKind = (*) Path "(" Comma ")" ["}"] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" ["}"] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [","] - // PatternKind = (*) Path "{" ( ",")* ".." "}" ["}"] - // PatternKind = (*) "(" Comma ")" [","] - // PatternKind = (*) "(" Comma ")" ["}"] - // PatternKind = (*) ".." [","] - // PatternKind = (*) ".." ["}"] - // PatternKind = (*) "<" TypeRef ">" [","] - // PatternKind = (*) "<" TypeRef ">" ["}"] - // PatternKind = (*) "_" [","] - // PatternKind = (*) "_" ["}"] - // - // "::" -> Shift(S6) - // ".." -> Shift(S137) - // "<" -> Shift(S143) - // "_" -> Shift(S141) - // "(" -> Shift(S138) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // PatternKind -> S139 - // "::"? -> S140 - // Path -> S142 - pub fn __state131< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state137(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state143(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Underscore(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state141(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state138(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::PatternKind(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state139(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state140(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state142(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 132 - // FieldPattern = @L Id @R ":" Pattern (*) [","] - // FieldPattern = @L Id @R ":" Pattern (*) ["}"] - // - // "," -> Reduce(FieldPattern = @L, Id, @R, ":", Pattern => Call(ActionFn(65));) - // "}" -> Reduce(FieldPattern = @L, Id, @R, ":", Pattern => Call(ActionFn(65));) - // - pub fn __state132< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action65(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::FieldPattern(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action65(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::FieldPattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 133 - // PatternKind = Path "{" ( ",")* ".." "}" (*) [")"] - // PatternKind = Path "{" ( ",")* ".." "}" (*) [","] - // - // ")" -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // - pub fn __state133< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 134 - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [")"] - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [","] - // - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // ")" -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // - pub fn __state134< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 135 - // TypeRef = Path "<" Comma ">" (*) [","] - // TypeRef = Path "<" Comma ">" (*) [">"] - // - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // ">" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state135< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 136 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [">"] - // - // ">" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state136< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 137 - // PatternKind = ".." (*) [","] - // PatternKind = ".." (*) ["}"] - // - // "," -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // "}" -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // - pub fn __state137< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 138 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = "(" (*) Comma ")" [","] - // PatternKind = "(" (*) Comma ")" ["}"] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // Comma -> S144 - // ( ",")* -> S14 - pub fn __state138< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state144(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 139 - // @R = (*) [","] - // @R = (*) ["}"] - // Pattern = @L PatternKind (*) @R [","] - // Pattern = @L PatternKind (*) @R ["}"] - // - // "," -> Reduce(@R = => Lookbehind;) - // "}" -> Reduce(@R = => Lookbehind;) - // - // @R -> S145 - pub fn __state139< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state145(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 140 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["("] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["{"] - // Path = "::"? (*) ( "::")* Id ["}"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S146 - pub fn __state140< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state146(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 141 - // PatternKind = "_" (*) [","] - // PatternKind = "_" (*) ["}"] - // - // "}" -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // "," -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // - pub fn __state141< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 142 - // PatternKind = Path (*) [","] - // PatternKind = Path (*) ["}"] - // PatternKind = Path (*) "(" Comma ")" [","] - // PatternKind = Path (*) "(" Comma ")" ["}"] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" ["}"] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [","] - // PatternKind = Path (*) "{" ( ",")* ".." "}" ["}"] - // - // "{" -> Shift(S148) - // "," -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "}" -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "(" -> Shift(S147) - // - pub fn __state142< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state148(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state147(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 143 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // PatternKind = "<" (*) TypeRef ">" [","] - // PatternKind = "<" (*) TypeRef ">" ["}"] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "&" -> Shift(S17) - // "::" -> Shift(S6) - // "(" -> Shift(S18) - // "Escape" -> Shift(S22) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // Escape -> S20 - // TypeRef -> S149 - // "::"? -> S16 - // Path -> S21 - pub fn __state143< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state149(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 144 - // PatternKind = "(" Comma (*) ")" [","] - // PatternKind = "(" Comma (*) ")" ["}"] - // - // ")" -> Shift(S150) - // - pub fn __state144< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state150(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 145 - // Pattern = @L PatternKind @R (*) [","] - // Pattern = @L PatternKind @R (*) ["}"] - // - // "}" -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // "," -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // - pub fn __state145< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 146 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["{"] - // Id = (*) "Id" ["}"] - // Path = "::"? ( "::")* (*) Id ["("] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["{"] - // Path = "::"? ( "::")* (*) Id ["}"] - // - // "Id" -> Shift(S152) - // - // Id -> S151 - // ( "::") -> S40 - pub fn __state146< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state152(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state151(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 147 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = Path "(" (*) Comma ")" [","] - // PatternKind = Path "(" (*) Comma ")" ["}"] - // - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // ( ",")* -> S14 - // Comma -> S153 - pub fn __state147< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state153(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 148 - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [","] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" ["}"] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [","] - // PatternKind = Path "{" (*) ( ",")* ".." "}" ["}"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(75));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(75));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(75));) - // - // ( ",")* -> S154 - pub fn __state148< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state154(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 149 - // PatternKind = "<" TypeRef (*) ">" [","] - // PatternKind = "<" TypeRef (*) ">" ["}"] - // - // ">" -> Shift(S155) - // - pub fn __state149< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state155(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 150 - // PatternKind = "(" Comma ")" (*) [","] - // PatternKind = "(" Comma ")" (*) ["}"] - // - // "}" -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // "," -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // - pub fn __state150< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 151 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["("] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["{"] - // Path = "::"? ( "::")* Id (*) ["}"] - // - // "(" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // "}" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state151< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 152 - // Id = "Id" (*) ["("] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["{"] - // Id = "Id" (*) ["}"] - // - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "}" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state152< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 153 - // PatternKind = Path "(" Comma (*) ")" [","] - // PatternKind = Path "(" Comma (*) ")" ["}"] - // - // ")" -> Shift(S156) - // - pub fn __state153< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state156(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 154 - // ( ",") = (*) FieldPattern "," [".."] - // ( ",") = (*) FieldPattern "," ["Id"] - // ( ",") = (*) FieldPattern "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["Id"] - // FieldPattern = (*) @L Id @R ":" Pattern [","] - // FieldPattern = (*) @L Id @R ":" Pattern ["}"] - // FieldPattern? = (*) ["}"] - // FieldPattern? = (*) FieldPattern ["}"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [","] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" ["}"] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [","] - // PatternKind = Path "{" ( ",")* (*) ".." "}" ["}"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // "}" -> Reduce(FieldPattern? = => Call(ActionFn(74));) - // ".." -> Shift(S158) - // - // @L -> S44 - // ( ",") -> S46 - // FieldPattern? -> S157 - // FieldPattern -> S45 - pub fn __state154< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state158(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action74(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::FieldPattern_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state157(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::FieldPattern(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 155 - // PatternKind = "<" TypeRef ">" (*) [","] - // PatternKind = "<" TypeRef ">" (*) ["}"] - // - // "," -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // "}" -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // - pub fn __state155< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 156 - // PatternKind = Path "(" Comma ")" (*) [","] - // PatternKind = Path "(" Comma ")" (*) ["}"] - // - // "," -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // "}" -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // - pub fn __state156< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 157 - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [","] - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" ["}"] - // - // "}" -> Shift(S159) - // - pub fn __state157< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state159(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 158 - // PatternKind = Path "{" ( ",")* ".." (*) "}" [","] - // PatternKind = Path "{" ( ",")* ".." (*) "}" ["}"] - // - // "}" -> Shift(S160) - // - pub fn __state158< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state160(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 159 - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [","] - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) ["}"] - // - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // "}" -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // - pub fn __state159< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 160 - // PatternKind = Path "{" ( ",")* ".." "}" (*) [","] - // PatternKind = Path "{" ( ",")* ".." "}" (*) ["}"] - // - // "}" -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // - pub fn __state160< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } -} - -pub fn __action0< - 'input, ->( - text: &'input str, - __0: Grammar, -) -> Grammar -{ - (__0) -} - -pub fn __action1< - 'input, ->( - text: &'input str, - __0: Pattern, -) -> Pattern -{ - (__0) -} - -pub fn __action2< - 'input, ->( - text: &'input str, - uses: ::std::vec::Vec, - lo: usize, - _: Tok<'input>, - hi: usize, - tps: ::std::option::Option>, - parameters: ::std::option::Option>, - where_clauses: ::std::option::Option>, - _: Tok<'input>, - items: ::std::vec::Vec, -) -> Grammar -{ - { - let where_clauses = - where_clauses.iter() - .flat_map(|wc| wc.iter()) - .map(|s| s.to_string()) - .collect(); - Grammar { span: Span(lo, hi), - type_parameters: tps.unwrap_or(vec![]), - parameters: parameters.unwrap_or(vec![]), - where_clauses: where_clauses, - items: uses.into_iter().chain(items).collect() } - } -} - -pub fn __action3< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec, - _: Tok<'input>, -) -> Vec -{ - (__0) -} - -pub fn __action4< - 'input, ->( - text: &'input str, - l: &'input str, -) -> TypeParameter -{ - TypeParameter::Lifetime(intern(l)) -} - -pub fn __action5< - 'input, ->( - text: &'input str, - l: &'input str, -) -> TypeParameter -{ - TypeParameter::Id(intern(l)) -} - -pub fn __action6< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec, - _: Tok<'input>, -) -> Vec -{ - (__0) -} - -pub fn __action7< - 'input, ->( - text: &'input str, - id: InternedString, - _: Tok<'input>, - ty: TypeRef, -) -> Parameter -{ - Parameter { name: id, ty: ty } -} - -pub fn __action8< - 'input, ->( - text: &'input str, - __0: GrammarItem, -) -> GrammarItem -{ - (__0) -} - -pub fn __action9< - 'input, ->( - text: &'input str, - __0: GrammarItem, -) -> GrammarItem -{ - (__0) -} - -pub fn __action10< - 'input, ->( - text: &'input str, - __0: GrammarItem, -) -> GrammarItem -{ - (__0) -} - -pub fn __action11< - 'input, ->( - text: &'input str, - u: &'input str, - _: Tok<'input>, -) -> GrammarItem -{ - GrammarItem::Use(u.to_string()) -} - -pub fn __action12< - 'input, ->( - text: &'input str, - p: ::std::option::Option>, - lo: usize, - n: (NonterminalString, Vec), - hi: usize, - t: ::std::option::Option, - _: Tok<'input>, - a: Vec, -) -> GrammarItem -{ - { - GrammarItem::Nonterminal(NonterminalData { public: p.is_some(), - span: Span(lo, hi), - name: n.0, - args: n.1, - type_decl: t, - alternatives: a }) - } -} - -pub fn __action13< - 'input, ->( - text: &'input str, - __0: NonterminalString, - _: Tok<'input>, - __1: Vec, - _: Tok<'input>, -) -> (NonterminalString, Vec) -{ - (__0, __1) -} - -pub fn __action14< - 'input, ->( - text: &'input str, - n: NonterminalString, -) -> (NonterminalString, Vec) -{ - (n, vec![]) -} - -pub fn __action15< - 'input, ->( - text: &'input str, - __0: &'input str, -) -> (NonterminalString, Vec) -{ - (NonterminalString(intern(__0)), vec![]) -} - -pub fn __action16< - 'input, ->( - text: &'input str, - a: Alternative, -) -> Vec -{ - vec![a] -} - -pub fn __action17< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: ::std::vec::Vec, - _: Tok<'input>, - _: Tok<'input>, -) -> Vec -{ - (__0) -} - -pub fn __action18< - 'input, ->( - text: &'input str, - lo: usize, - s: ExprSymbol, - c: ::std::option::Option, - a: ::std::option::Option, - _: Tok<'input>, - hi: usize, -) -> Alternative -{ - { - Alternative { - span: Span(lo, hi), - expr: s, - condition: c, - action: a - } - } -} - -pub fn __action19< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ActionKind -{ - ActionKind::Lookahead -} - -pub fn __action20< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ActionKind -{ - ActionKind::Lookbehind -} - -pub fn __action21< - 'input, ->( - text: &'input str, - c: &'input str, -) -> ActionKind -{ - ActionKind::User(c.to_string()) -} - -pub fn __action22< - 'input, ->( - text: &'input str, - c: &'input str, -) -> ActionKind -{ - ActionKind::Fallible(c.to_string()) -} - -pub fn __action23< - 'input, ->( - text: &'input str, - lo: usize, - a: NonterminalString, - op: ConditionOp, - b: InternedString, - hi: usize, -) -> Condition -{ - { - Condition { span:Span(lo, hi), lhs:a, rhs:b, op:op } - } -} - -pub fn __action24< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::Equals -} - -pub fn __action25< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::NotEquals -} - -pub fn __action26< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::Match -} - -pub fn __action27< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::NotMatch -} - -pub fn __action28< - 'input, ->( - text: &'input str, - __0: ::std::vec::Vec, -) -> ExprSymbol -{ - ExprSymbol { symbols: __0 } -} - -pub fn __action29< - 'input, ->( - text: &'input str, - lo: usize, - _: Tok<'input>, - _: usize, - l: InternedString, - _: Tok<'input>, - s: Symbol, - _: Tok<'input>, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lo, hi), SymbolKind::Name(l, Box::new(s))) -} - -pub fn __action30< - 'input, ->( - text: &'input str, - lo: usize, - _: Tok<'input>, - s: Symbol, - _: Tok<'input>, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lo, hi), SymbolKind::Choose(Box::new(s))) -} - -pub fn __action31< - 'input, ->( - text: &'input str, - __0: Symbol, -) -> Symbol -{ - (__0) -} - -pub fn __action32< - 'input, ->( - text: &'input str, - __0: Symbol, -) -> Symbol -{ - (__0) -} - -pub fn __action33< - 'input, ->( - text: &'input str, - lhs: Symbol, - op: RepeatOp, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lhs.span.0, hi), - SymbolKind::Repeat(Box::new(RepeatSymbol { symbol: lhs, op: op }))) -} - -pub fn __action34< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> RepeatOp -{ - RepeatOp::Plus -} - -pub fn __action35< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> RepeatOp -{ - RepeatOp::Star -} - -pub fn __action36< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> RepeatOp -{ - RepeatOp::Question -} - -pub fn __action37< - 'input, ->( - text: &'input str, - lo: usize, - sk: SymbolKind, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lo, hi), sk) -} - -pub fn __action38< - 'input, ->( - text: &'input str, - name: NonterminalString, - _: Tok<'input>, - args: Vec, - _: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Macro(MacroSymbol { name: name, args: args }) -} - -pub fn __action39< - 'input, ->( - text: &'input str, - __0: TerminalString, -) -> SymbolKind -{ - SymbolKind::Terminal(__0) -} - -pub fn __action40< - 'input, ->( - text: &'input str, - __0: NonterminalString, -) -> SymbolKind -{ - SymbolKind::Nonterminal(__0) -} - -pub fn __action41< - 'input, ->( - text: &'input str, - __0: InternedString, -) -> SymbolKind -{ - SymbolKind::Nonterminal(NonterminalString(__0)) -} - -pub fn __action42< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: ExprSymbol, - _: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Expr(__0) -} - -pub fn __action43< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Lookahead -} - -pub fn __action44< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Lookbehind -} - -pub fn __action45< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec, - _: Tok<'input>, -) -> TypeRef -{ - TypeRef::Tuple(__0) -} - -pub fn __action46< - 'input, ->( - text: &'input str, - e: InternedString, -) -> Result,tok::Error>> -{ - { - panic!("parse escape symbol") - } -} - -pub fn __action47< - 'input, ->( - text: &'input str, - _: Tok<'input>, - l: ::std::option::Option, - m: ::std::option::Option>, - t: TypeRef, -) -> TypeRef -{ - TypeRef::Ref { lifetime: l, - mutable: m.is_some(), - referent: Box::new(t) } -} - -pub fn __action48< - 'input, ->( - text: &'input str, - p: Path, - _: Tok<'input>, - a: Vec, - _: Tok<'input>, -) -> TypeRef -{ - TypeRef::Nominal { path: p, types: a } -} - -pub fn __action49< - 'input, ->( - text: &'input str, - p: Path, -) -> TypeRef -{ - match p.as_id() { - Some(id) => TypeRef::Id(id), - None => TypeRef::Nominal { path: p, types: vec![] } - } -} - -pub fn __action50< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> TypeRef -{ - (__0) -} - -pub fn __action51< - 'input, ->( - text: &'input str, - __0: InternedString, -) -> TypeRef -{ - TypeRef::Lifetime(__0) -} - -pub fn __action52< - 'input, ->( - text: &'input str, - a: ::std::option::Option>, - h: ::std::vec::Vec, - t: InternedString, -) -> Path -{ - { - Path { absolute: a.is_some(), - ids: h.into_iter().chain(once(t)).collect() } - } -} - -pub fn __action53< - 'input, ->( - text: &'input str, - lo0: usize, - _: Tok<'input>, - _: Tok<'input>, - hi0: usize, - _: Tok<'input>, - a0: ::std::vec::Vec, - _: Tok<'input>, - lo: usize, - t: TypeRef, - hi: usize, - _: Tok<'input>, - c: Vec, - _: Tok<'input>, - a1: ::std::vec::Vec, - _: Tok<'input>, -) -> GrammarItem -{ - { - GrammarItem::ExternToken(ExternToken { - span: Span(lo0, hi0), - associated_types: a0.into_iter().chain(a1).collect(), - enum_token: EnumToken { - type_name: t, - type_span: Span(lo, hi), - conversions: c, - } - }) - } -} - -pub fn __action54< - 'input, ->( - text: &'input str, - _: Tok<'input>, - lo: usize, - n: InternedString, - hi: usize, - _: Tok<'input>, - t: TypeRef, - _: Tok<'input>, -) -> AssociatedType -{ - { - AssociatedType { type_span: Span(lo, hi), - type_name: n, - type_ref: t } - } -} - -pub fn __action55< - 'input, ->( - text: &'input str, - lo: usize, - from: TerminalString, - p: &'input str, - hi: usize, -) -> Result,tok::Error>> -{ - { - panic!("not yet implemented -- parse pattern") - } -} - -pub fn __action56< - 'input, ->( - text: &'input str, - lo: usize, - k: PatternKind, - hi: usize, -) -> Pattern -{ - Pattern { span: Span(lo, hi), kind: k } -} - -pub fn __action57< - 'input, ->( - text: &'input str, - __0: Path, - _: Tok<'input>, - __1: Vec>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Enum(__0, __1) -} - -pub fn __action58< - 'input, ->( - text: &'input str, - p: Path, - _: Tok<'input>, - a0: ::std::vec::Vec>, - a1: ::std::option::Option>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Struct(p, a0.into_iter().chain(a1).collect(), false) -} - -pub fn __action59< - 'input, ->( - text: &'input str, - p: Path, - _: Tok<'input>, - a0: ::std::vec::Vec>, - _: Tok<'input>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Struct(p, a0, true) -} - -pub fn __action60< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> PatternKind -{ - PatternKind::Underscore -} - -pub fn __action61< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> PatternKind -{ - PatternKind::DotDot -} - -pub fn __action62< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: TypeRef, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Choose(__0) -} - -pub fn __action63< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Tuple(__0) -} - -pub fn __action64< - 'input, ->( - text: &'input str, - __0: Path, -) -> PatternKind -{ - PatternKind::Path(__0) -} - -pub fn __action65< - 'input, ->( - text: &'input str, - lo: usize, - id: InternedString, - hi: usize, - _: Tok<'input>, - pat: Pattern, -) -> FieldPattern -{ - { - FieldPattern { field_span: Span(lo, hi), - field_name: id, - pattern: pat } - } -} - -pub fn __action66< - 'input, ->( - text: &'input str, - i: &'input str, -) -> NonterminalString -{ - NonterminalString(intern(i)) -} - -pub fn __action67< - 'input, ->( - text: &'input str, - i: InternedString, -) -> NonterminalString -{ - NonterminalString(i) -} - -pub fn __action68< - 'input, ->( - text: &'input str, - i: &'input str, -) -> InternedString -{ - intern(i) -} - -pub fn __action69< - 'input, ->( - text: &'input str, - i: &'input str, -) -> InternedString -{ - intern(i) -} - -pub fn __action70< - 'input, ->( - text: &'input str, - i: &'input str, -) -> InternedString -{ - intern(i) -} - -pub fn __action71< - 'input, ->( - text: &'input str, - s: InternedString, -) -> TerminalString -{ - TerminalString(s) -} - -pub fn __action72< - 'input, ->( - text: &'input str, - s: &'input str, -) -> InternedString -{ - intern(s) -} - -pub fn __action73< - 'input, ->( - text: &'input str, - __0: FieldPattern, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action74< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action75< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec> -{ - vec![] -} - -pub fn __action76< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec>, - e: FieldPattern, -) -> ::std::vec::Vec> -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action77< - 'input, ->( - text: &'input str, - __0: FieldPattern, - _: Tok<'input>, -) -> FieldPattern -{ - (__0) -} - -pub fn __action78< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec>, - e1: ::std::option::Option>, -) -> Vec> -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action79< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action80< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action81< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: AssociatedType, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action82< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action83< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: InternedString, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action84< - 'input, ->( - text: &'input str, - __0: InternedString, - _: Tok<'input>, -) -> InternedString -{ - (__0) -} - -pub fn __action85< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action86< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action87< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action88< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action89< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action90< - 'input, ->( - text: &'input str, - __0: InternedString, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action91< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action92< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action93< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action94< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action95< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Symbol, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action96< - 'input, ->( - text: &'input str, - __0: ActionKind, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action97< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action98< - 'input, ->( - text: &'input str, - __0: Condition, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action99< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action100< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Condition, -) -> Condition -{ - (__0) -} - -pub fn __action101< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action102< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Alternative, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action103< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action104< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action105< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action106< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: TypeRef, -) -> TypeRef -{ - (__0) -} - -pub fn __action107< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action108< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action109< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action110< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action111< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action112< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: GrammarItem, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action113< - 'input, ->( - text: &'input str, - __0: Vec<&'input str>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action114< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action115< - 'input, ->( - text: &'input str, - __0: Vec, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action116< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action117< - 'input, ->( - text: &'input str, - __0: Vec, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action118< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action119< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action120< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: GrammarItem, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action121< - 'input, ->( - text: &'input str, - __0: TypeParameter, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action122< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action123< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action124< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: TypeParameter, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action125< - 'input, ->( - text: &'input str, - __0: TypeParameter, - _: Tok<'input>, -) -> TypeParameter -{ - (__0) -} - -pub fn __action126< - 'input, ->( - text: &'input str, - __0: Parameter, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action127< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action128< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action129< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Parameter, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action130< - 'input, ->( - text: &'input str, - __0: Parameter, - _: Tok<'input>, -) -> Parameter -{ - (__0) -} - -pub fn __action131< - 'input, ->( - text: &'input str, - __0: NonterminalString, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action132< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action133< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action134< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: NonterminalString, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action135< - 'input, ->( - text: &'input str, - __0: NonterminalString, - _: Tok<'input>, -) -> NonterminalString -{ - (__0) -} - -pub fn __action136< - 'input, ->( - text: &'input str, - __0: Symbol, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action137< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action138< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action139< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Symbol, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action140< - 'input, ->( - text: &'input str, - __0: Symbol, - _: Tok<'input>, -) -> Symbol -{ - (__0) -} - -pub fn __action141< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action142< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action143< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action144< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: TypeRef, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action145< - 'input, ->( - text: &'input str, - __0: TypeRef, - _: Tok<'input>, -) -> TypeRef -{ - (__0) -} - -pub fn __action146< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action147< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action148< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action149< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: TypeRef, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action150< - 'input, ->( - text: &'input str, - __0: TypeRef, - _: Tok<'input>, -) -> TypeRef -{ - (__0) -} - -pub fn __action151< - 'input, ->( - text: &'input str, - __0: Conversion, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action152< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action153< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action154< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Conversion, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action155< - 'input, ->( - text: &'input str, - __0: Conversion, - _: Tok<'input>, -) -> Conversion -{ - (__0) -} - -pub fn __action156< - 'input, ->( - text: &'input str, - __0: Pattern, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action157< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action158< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec> -{ - vec![] -} - -pub fn __action159< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec>, - e: Pattern, -) -> ::std::vec::Vec> -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action160< - 'input, ->( - text: &'input str, - __0: Pattern, - _: Tok<'input>, -) -> Pattern -{ - (__0) -} - -pub trait __ToTriple<'input, > { - type Error; - fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize),Self::Error>; -} - -impl<'input, > __ToTriple<'input, > for (usize, Tok<'input>, usize) { - type Error = tok::Error; - fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize),tok::Error> { - Ok(value) - } -} -impl<'input, > __ToTriple<'input, > for Result<(usize, Tok<'input>, usize),tok::Error> { - type Error = tok::Error; - fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize),tok::Error> { - value - } -} diff --git a/lalrpop/src/newparser.rs b/lalrpop/src/newparser.rs deleted file mode 100644 index 491d3f9..0000000 --- a/lalrpop/src/newparser.rs +++ /dev/null @@ -1,42643 +0,0 @@ -#![allow(unused_imports)] -#![allow(unused_variables)] -use intern::{intern, InternedString}; -use grammar::parse_tree::*; -use grammar::pattern::*; -use std::iter::once; -use tok::{self, Tok}; -extern crate lalrpop_util as __lalrpop_util; -use self::__lalrpop_util::ParseError as __ParseError; -#[allow(non_snake_case)] -pub fn parse_Grammar< - 'input, - __TOKEN: __ToTriple<'input, Error=tok::Error>, - __TOKENS: IntoIterator, ->( - text: &'input str, - __tokens: __TOKENS, -) -> Result,tok::Error>> -{ - let mut __tokens = __tokens.into_iter(); - let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - match try!(__parse__Grammar::__state0(text, None, __lookahead, &mut __tokens)) { - (_, Some(__lookahead), _) => { - Err(__ParseError::ExtraToken { token: __lookahead }) - } - (_, None, __parse__Grammar::__Nonterminal::____Grammar(__nt)) => { - Ok(__nt) - } - _ => unreachable!(), - } -} - -mod __parse__Grammar { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use intern::{intern, InternedString}; - use grammar::parse_tree::*; - use grammar::pattern::*; - use std::iter::once; - use tok::{self, Tok}; - extern crate lalrpop_util as __lalrpop_util; - use self::__lalrpop_util::ParseError as __ParseError; - use super::__ToTriple; - - pub enum __Nonterminal<'input, > { - ____Grammar(Grammar), - Comma_3cNonterminalId_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType(AssociatedType), - Action_3f(::std::option::Option), - GrammarParameter_3f(::std::option::Option), - NonterminalId_3f(::std::option::Option), - Alternatives(Vec), - _28_3cId_3e_20_22_3a_3a_22_29_2a(::std::vec::Vec), - _28_3cFieldPattern_3e_20_22_2c_22_29(FieldPattern), - _22where_22_3f(::std::option::Option>), - Id(InternedString), - _28_3cTypeRef_3e_20_22_2c_22_29(TypeRef), - _40R(usize), - GrammarTypeParameters_3f(::std::option::Option>), - Use_2a(::std::vec::Vec), - _28_3cConversion_3e_20_22_2c_22_29(Conversion), - Symbol1(Symbol), - GrammarItem(GrammarItem), - RepeatOp(RepeatOp), - ExprSymbol(ExprSymbol), - Terminal(TerminalString), - Symbol_3f(::std::option::Option), - MacroId(NonterminalString), - _28_22if_22_20_3cCond_3e_29(Condition), - GrammarItem_2a(::std::vec::Vec), - FieldPattern_3f(::std::option::Option>), - _28_3cTypeRef_3e_20_22_2c_22_29_2a(::std::vec::Vec), - Comma_3cConversion_3e(Vec), - Action(ActionKind), - Cond(Condition), - Conversion_3f(::std::option::Option), - _28_3cFieldPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameters(Vec), - _22_3a_3a_22_3f(::std::option::Option>), - TypeRefOrLifetime_3f(::std::option::Option), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType_2a(::std::vec::Vec), - NonterminalName((NonterminalString, Vec)), - Comma_3cTypeRefOrLifetime_3e(Vec), - FieldPattern(FieldPattern), - Escape(InternedString), - Symbol0(Symbol), - Pattern_3f(::std::option::Option>), - _28_22if_22_20_3cCond_3e_29_3f(::std::option::Option), - _28_3cTypeParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - SymbolKind1(SymbolKind), - Symbol(Symbol), - Alternative(Alternative), - _22mut_22_3f(::std::option::Option>), - PatternKind(PatternKind), - GrammarTypeParameters(Vec), - Path(Path), - TypeRef_3f(::std::option::Option), - ExternToken(GrammarItem), - Lifetime_3f(::std::option::Option), - Comma_3cTypeRef_3e(Vec), - Comma_3cGrammarParameter_3e(Vec), - Grammar(Grammar), - _28_3cPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameter(Parameter), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(TypeRef), - _28_3cGrammarParameter_3e_20_22_2c_22_29(Parameter), - _28_3cSymbol_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeRef(TypeRef), - _28_22_3a_22_20_3cTypeRef_3e_29_3f(::std::option::Option), - Nonterminal(GrammarItem), - Pattern(Pattern), - Conversion(Conversion), - Use(GrammarItem), - CondOp(ConditionOp), - NonterminalId(NonterminalString), - Comma_3cSymbol_3e(Vec), - _28_3cSymbol_3e_20_22_2c_22_29(Symbol), - _28_22_3a_22_20_3cTypeRef_3e_29(TypeRef), - _28_3cId_3e_20_22_3a_3a_22_29(InternedString), - Alternative_2a(::std::vec::Vec), - _28_3cGrammarParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - _40L(usize), - _28_3cTypeParameter_3e_20_22_2c_22_29(TypeParameter), - Lifetime(InternedString), - TypeParameter_3f(::std::option::Option), - _28_3cConversion_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeParameter(TypeParameter), - Comma_3cTypeParameter_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29(NonterminalString), - _22pub_22_3f(::std::option::Option>), - Comma_3cPattern_3e(Vec>), - TypeRefOrLifetime(TypeRef), - _28_3cPattern_3e_20_22_2c_22_29(Pattern), - GrammarParameters_3f(::std::option::Option>), - Symbol_2a(::std::vec::Vec), - ____Pattern(Pattern), - StringLiteral(InternedString), - } - - // State 0 - // Grammar = (*) Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // Use* = (*) ["grammar"] - // Use* = (*) ["use"] - // Use* = (*) Use* Use ["grammar"] - // Use* = (*) Use* Use ["use"] - // __Grammar = (*) Grammar [EOF] - // - // "use" -> Reduce(Use* = => Call(ActionFn(119));) - // "grammar" -> Reduce(Use* = => Call(ActionFn(119));) - // - // Grammar -> S2 - // Use* -> S1 - pub fn __state0< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(_), _)) => { - let __nt = super::__action119(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt)); - } - Some((_, Tok::Grammar(..), _)) => { - let __nt = super::__action119(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - loop { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Grammar(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state2(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - __Nonterminal::Use_2a(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state1(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - } - - // State 1 - // @L = (*) ["grammar"] - // Grammar = Use* (*) @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // Use = (*) "use" ";" ["grammar"] - // Use = (*) "use" ";" ["use"] - // Use* = Use* (*) Use ["grammar"] - // Use* = Use* (*) Use ["use"] - // - // "use" -> Shift(S4) - // "grammar" -> Reduce(@L = => Lookahead;) - // - // @L -> S3 - // Use -> S5 - pub fn __state1< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state4(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Grammar(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state3(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Use(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state5(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 2 - // __Grammar = Grammar (*) [EOF] - // - // EOF -> Reduce(__Grammar = Grammar => Call(ActionFn(0));) - // - pub fn __state2< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action0(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::____Grammar(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 3 - // Grammar = Use* @L (*) "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // - // "grammar" -> Shift(S6) - // - pub fn __state3< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Grammar(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 4 - // Use = "use" (*) ";" ["grammar"] - // Use = "use" (*) ";" ["use"] - // - // ";" -> Shift(S7) - // - pub fn __state4< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state7(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 5 - // Use* = Use* Use (*) ["grammar"] - // Use* = Use* Use (*) ["use"] - // - // "use" -> Reduce(Use* = Use*, Use => Call(ActionFn(120));) - // "grammar" -> Reduce(Use* = Use*, Use => Call(ActionFn(120));) - // - pub fn __state5< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action120(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt))); - } - Some((_, Tok::Grammar(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action120(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 6 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["where"] - // Grammar = Use* @L "grammar" (*) @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // - // "<" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "where" -> Reduce(@R = => Lookbehind;) - // - // @R -> S8 - pub fn __state6< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Where(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state8(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 7 - // Use = "use" ";" (*) ["grammar"] - // Use = "use" ";" (*) ["use"] - // - // "grammar" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "use" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // - pub fn __state7< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Grammar(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 8 - // Grammar = Use* @L "grammar" @R (*) GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* [EOF] - // GrammarTypeParameters = (*) "<" Comma ">" ["("] - // GrammarTypeParameters = (*) "<" Comma ">" [";"] - // GrammarTypeParameters = (*) "<" Comma ">" ["where"] - // GrammarTypeParameters? = (*) ["("] - // GrammarTypeParameters? = (*) [";"] - // GrammarTypeParameters? = (*) ["where"] - // GrammarTypeParameters? = (*) GrammarTypeParameters ["("] - // GrammarTypeParameters? = (*) GrammarTypeParameters [";"] - // GrammarTypeParameters? = (*) GrammarTypeParameters ["where"] - // - // ";" -> Reduce(GrammarTypeParameters? = => Call(ActionFn(118));) - // "where" -> Reduce(GrammarTypeParameters? = => Call(ActionFn(118));) - // "(" -> Reduce(GrammarTypeParameters? = => Call(ActionFn(118));) - // "<" -> Shift(S11) - // - // GrammarTypeParameters -> S9 - // GrammarTypeParameters? -> S10 - pub fn __state8< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state11(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action118(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt)); - } - Some((_, Tok::Where(_), _)) => { - let __nt = super::__action118(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action118(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::GrammarTypeParameters(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state9(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - __Nonterminal::GrammarTypeParameters_3f(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state10(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 9 - // GrammarTypeParameters? = GrammarTypeParameters (*) ["("] - // GrammarTypeParameters? = GrammarTypeParameters (*) [";"] - // GrammarTypeParameters? = GrammarTypeParameters (*) ["where"] - // - // "where" -> Reduce(GrammarTypeParameters? = GrammarTypeParameters => Call(ActionFn(117));) - // "(" -> Reduce(GrammarTypeParameters? = GrammarTypeParameters => Call(ActionFn(117));) - // ";" -> Reduce(GrammarTypeParameters? = GrammarTypeParameters => Call(ActionFn(117));) - // - pub fn __state9< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action117(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action117(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action117(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 10 - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? (*) GrammarParameters? "where"? ";" GrammarItem* [EOF] - // GrammarParameters = (*) "(" Comma ")" [";"] - // GrammarParameters = (*) "(" Comma ")" ["where"] - // GrammarParameters? = (*) [";"] - // GrammarParameters? = (*) ["where"] - // GrammarParameters? = (*) GrammarParameters [";"] - // GrammarParameters? = (*) GrammarParameters ["where"] - // - // "where" -> Reduce(GrammarParameters? = => Call(ActionFn(116));) - // "(" -> Shift(S13) - // ";" -> Reduce(GrammarParameters? = => Call(ActionFn(116));) - // - // GrammarParameters? -> S12 - // GrammarParameters -> S14 - pub fn __state10< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state13(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, Tok::Where(_), _)) => { - let __nt = super::__action116(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action116(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::GrammarParameters_3f(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state12(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::GrammarParameters(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 11 - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeParameter? [">"] - // GrammarTypeParameters = "<" (*) Comma ">" ["("] - // GrammarTypeParameters = "<" (*) Comma ">" [";"] - // GrammarTypeParameters = "<" (*) Comma ">" ["where"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(123));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(123));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(123));) - // - // ( ",")* -> S15 - // Comma -> S16 - pub fn __state11< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action123(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action123(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action123(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state15(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeParameter_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 12 - // "where"? = (*) [";"] - // "where"? = (*) "where" [";"] - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? (*) "where"? ";" GrammarItem* [EOF] - // - // "where" -> Shift(S18) - // ";" -> Reduce("where"? = => Call(ActionFn(114));) - // - // "where"? -> S17 - pub fn __state12< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action114(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22where_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22where_22_3f(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 13 - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* GrammarParameter? [")"] - // GrammarParameters = "(" (*) Comma ")" [";"] - // GrammarParameters = "(" (*) Comma ")" ["where"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(128));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(128));) - // - // Comma -> S20 - // ( ",")* -> S19 - pub fn __state13< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action128(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action128(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cGrammarParameter_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state19(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 14 - // GrammarParameters? = GrammarParameters (*) [";"] - // GrammarParameters? = GrammarParameters (*) ["where"] - // - // "where" -> Reduce(GrammarParameters? = GrammarParameters => Call(ActionFn(115));) - // ";" -> Reduce(GrammarParameters? = GrammarParameters => Call(ActionFn(115));) - // - pub fn __state14< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action115(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action115(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 15 - // ( ",") = (*) TypeParameter "," [">"] - // ( ",") = (*) TypeParameter "," ["Id"] - // ( ",") = (*) TypeParameter "," ["Lifetime"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["Lifetime"] - // Comma = ( ",")* (*) TypeParameter? [">"] - // TypeParameter = (*) "Id" [","] - // TypeParameter = (*) "Id" [">"] - // TypeParameter = (*) "Lifetime" [","] - // TypeParameter = (*) "Lifetime" [">"] - // TypeParameter? = (*) [">"] - // TypeParameter? = (*) TypeParameter [">"] - // - // "Lifetime" -> Shift(S22) - // "Id" -> Shift(S21) - // ">" -> Reduce(TypeParameter? = => Call(ActionFn(122));) - // - // TypeParameter? -> S24 - // TypeParameter -> S23 - // ( ",") -> S25 - pub fn __state15< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action122(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeParameter_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeParameter_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state24(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeParameter(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state23(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state25(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 16 - // GrammarTypeParameters = "<" Comma (*) ">" ["("] - // GrammarTypeParameters = "<" Comma (*) ">" [";"] - // GrammarTypeParameters = "<" Comma (*) ">" ["where"] - // - // ">" -> Shift(S26) - // - pub fn __state16< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state26(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 17 - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? (*) ";" GrammarItem* [EOF] - // - // ";" -> Shift(S27) - // - pub fn __state17< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - __sym6: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym7 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state27(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 18 - // "where"? = "where" (*) [";"] - // - // ";" -> Reduce("where"? = "where" => Call(ActionFn(113));) - // - pub fn __state18< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action113(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22where_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 19 - // ( ",") = (*) GrammarParameter "," [")"] - // ( ",") = (*) GrammarParameter "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) GrammarParameter? [")"] - // GrammarParameter = (*) Id ":" TypeRef [")"] - // GrammarParameter = (*) Id ":" TypeRef [","] - // GrammarParameter? = (*) [")"] - // GrammarParameter? = (*) GrammarParameter [")"] - // Id = (*) "Id" [":"] - // - // "Id" -> Shift(S30) - // ")" -> Reduce(GrammarParameter? = => Call(ActionFn(127));) - // - // ( ",") -> S31 - // GrammarParameter -> S28 - // GrammarParameter? -> S29 - // Id -> S32 - pub fn __state19< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state30(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action127(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarParameter_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state31(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::GrammarParameter(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state28(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::GrammarParameter_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state29(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 20 - // GrammarParameters = "(" Comma (*) ")" [";"] - // GrammarParameters = "(" Comma (*) ")" ["where"] - // - // ")" -> Shift(S33) - // - pub fn __state20< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 21 - // TypeParameter = "Id" (*) [","] - // TypeParameter = "Id" (*) [">"] - // - // "," -> Reduce(TypeParameter = "Id" => Call(ActionFn(5));) - // ">" -> Reduce(TypeParameter = "Id" => Call(ActionFn(5));) - // - pub fn __state21< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action5(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action5(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 22 - // TypeParameter = "Lifetime" (*) [","] - // TypeParameter = "Lifetime" (*) [">"] - // - // "," -> Reduce(TypeParameter = "Lifetime" => Call(ActionFn(4));) - // ">" -> Reduce(TypeParameter = "Lifetime" => Call(ActionFn(4));) - // - pub fn __state22< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action4(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action4(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 23 - // ( ",") = TypeParameter (*) "," [">"] - // ( ",") = TypeParameter (*) "," ["Id"] - // ( ",") = TypeParameter (*) "," ["Lifetime"] - // TypeParameter? = TypeParameter (*) [">"] - // - // "," -> Shift(S34) - // ">" -> Reduce(TypeParameter? = TypeParameter => Call(ActionFn(121));) - // - pub fn __state23< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state34(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action121(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeParameter_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 24 - // Comma = ( ",")* TypeParameter? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, TypeParameter? => Call(ActionFn(110));) - // - pub fn __state24< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action110(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeParameter_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 25 - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["Lifetime"] - // - // "Lifetime" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(124));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(124));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(124));) - // - pub fn __state25< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action124(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action124(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action124(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 26 - // GrammarTypeParameters = "<" Comma ">" (*) ["("] - // GrammarTypeParameters = "<" Comma ">" (*) [";"] - // GrammarTypeParameters = "<" Comma ">" (*) ["where"] - // - // ";" -> Reduce(GrammarTypeParameters = "<", Comma, ">" => Call(ActionFn(3));) - // "(" -> Reduce(GrammarTypeParameters = "<", Comma, ">" => Call(ActionFn(3));) - // "where" -> Reduce(GrammarTypeParameters = "<", Comma, ">" => Call(ActionFn(3));) - // - pub fn __state26< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action3(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action3(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters(__nt))); - } - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action3(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarTypeParameters(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 27 - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" (*) GrammarItem* [EOF] - // GrammarItem* = (*) [EOF] - // GrammarItem* = (*) ["Escape"] - // GrammarItem* = (*) ["Id"] - // GrammarItem* = (*) ["MacroId"] - // GrammarItem* = (*) ["extern"] - // GrammarItem* = (*) ["pub"] - // GrammarItem* = (*) ["use"] - // GrammarItem* = (*) GrammarItem* GrammarItem [EOF] - // GrammarItem* = (*) GrammarItem* GrammarItem ["Escape"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["Id"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["MacroId"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["extern"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["pub"] - // GrammarItem* = (*) GrammarItem* GrammarItem ["use"] - // - // "Escape" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "MacroId" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "Id" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "pub" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // EOF -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "use" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // "extern" -> Reduce(GrammarItem* = => Call(ActionFn(111));) - // - // GrammarItem* -> S35 - pub fn __state27< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - __sym6: &mut Option<::std::option::Option>>, - __sym7: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Pub(..), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - None => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Use(_), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - Some((_, Tok::Extern(..), _)) => { - let __nt = super::__action111(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym7.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::GrammarItem_2a(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state35(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 28 - // ( ",") = GrammarParameter (*) "," [")"] - // ( ",") = GrammarParameter (*) "," ["Id"] - // GrammarParameter? = GrammarParameter (*) [")"] - // - // ")" -> Reduce(GrammarParameter? = GrammarParameter => Call(ActionFn(126));) - // "," -> Shift(S36) - // - pub fn __state28< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action126(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameter_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 29 - // Comma = ( ",")* GrammarParameter? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, GrammarParameter? => Call(ActionFn(109));) - // - pub fn __state29< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action109(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cGrammarParameter_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 30 - // Id = "Id" (*) [":"] - // - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state30< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 31 - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(129));) - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(129));) - // - pub fn __state31< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action129(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action129(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 32 - // GrammarParameter = Id (*) ":" TypeRef [")"] - // GrammarParameter = Id (*) ":" TypeRef [","] - // - // ":" -> Shift(S37) - // - pub fn __state32< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state37(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 33 - // GrammarParameters = "(" Comma ")" (*) [";"] - // GrammarParameters = "(" Comma ")" (*) ["where"] - // - // "where" -> Reduce(GrammarParameters = "(", Comma, ")" => Call(ActionFn(6));) - // ";" -> Reduce(GrammarParameters = "(", Comma, ")" => Call(ActionFn(6));) - // - pub fn __state33< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Where(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action6(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action6(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameters(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 34 - // ( ",") = TypeParameter "," (*) [">"] - // ( ",") = TypeParameter "," (*) ["Id"] - // ( ",") = TypeParameter "," (*) ["Lifetime"] - // - // "Lifetime" -> Reduce(( ",") = TypeParameter, "," => Call(ActionFn(125));) - // ">" -> Reduce(( ",") = TypeParameter, "," => Call(ActionFn(125));) - // "Id" -> Reduce(( ",") = TypeParameter, "," => Call(ActionFn(125));) - // - pub fn __state34< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action125(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action125(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action125(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeParameter_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 35 - // "pub"? = (*) ["Escape"] - // "pub"? = (*) ["Id"] - // "pub"? = (*) ["MacroId"] - // "pub"? = (*) "pub" ["Escape"] - // "pub"? = (*) "pub" ["Id"] - // "pub"? = (*) "pub" ["MacroId"] - // @L = (*) ["extern"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = (*) @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // Grammar = Use* @L "grammar" @R GrammarTypeParameters? GrammarParameters? "where"? ";" GrammarItem* (*) [EOF] - // GrammarItem = (*) ExternToken [EOF] - // GrammarItem = (*) ExternToken ["Escape"] - // GrammarItem = (*) ExternToken ["Id"] - // GrammarItem = (*) ExternToken ["MacroId"] - // GrammarItem = (*) ExternToken ["extern"] - // GrammarItem = (*) ExternToken ["pub"] - // GrammarItem = (*) ExternToken ["use"] - // GrammarItem = (*) Nonterminal [EOF] - // GrammarItem = (*) Nonterminal ["Escape"] - // GrammarItem = (*) Nonterminal ["Id"] - // GrammarItem = (*) Nonterminal ["MacroId"] - // GrammarItem = (*) Nonterminal ["extern"] - // GrammarItem = (*) Nonterminal ["pub"] - // GrammarItem = (*) Nonterminal ["use"] - // GrammarItem = (*) Use [EOF] - // GrammarItem = (*) Use ["Escape"] - // GrammarItem = (*) Use ["Id"] - // GrammarItem = (*) Use ["MacroId"] - // GrammarItem = (*) Use ["extern"] - // GrammarItem = (*) Use ["pub"] - // GrammarItem = (*) Use ["use"] - // GrammarItem* = GrammarItem* (*) GrammarItem [EOF] - // GrammarItem* = GrammarItem* (*) GrammarItem ["Escape"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["Id"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["MacroId"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["extern"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["pub"] - // GrammarItem* = GrammarItem* (*) GrammarItem ["use"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives [EOF] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = (*) "pub"? @L NonterminalName @R (":" )? "=" Alternatives ["use"] - // Use = (*) "use" ";" [EOF] - // Use = (*) "use" ";" ["Escape"] - // Use = (*) "use" ";" ["Id"] - // Use = (*) "use" ";" ["MacroId"] - // Use = (*) "use" ";" ["extern"] - // Use = (*) "use" ";" ["pub"] - // Use = (*) "use" ";" ["use"] - // - // "Id" -> Reduce("pub"? = => Call(ActionFn(108));) - // "extern" -> Reduce(@L = => Lookahead;) - // "use" -> Shift(S40) - // EOF -> Reduce(Grammar = Use*, @L, "grammar", @R, GrammarTypeParameters?, GrammarParameters?, "where"?, ";", GrammarItem* => Call(ActionFn(2));) - // "pub" -> Shift(S41) - // "MacroId" -> Reduce("pub"? = => Call(ActionFn(108));) - // "Escape" -> Reduce("pub"? = => Call(ActionFn(108));) - // - // ExternToken -> S38 - // GrammarItem -> S45 - // Nonterminal -> S42 - // "pub"? -> S39 - // Use -> S44 - // @L -> S43 - pub fn __state35< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>>, - __sym5: &mut Option<::std::option::Option>>, - __sym6: &mut Option<::std::option::Option>>, - __sym7: &mut Option>, - __sym8: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym9 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - Some((_, __tok @ Tok::Pub(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym9 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state41(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action108(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt)); - } - Some((_, Tok::Extern(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __nt = super::__action2(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8); - return Ok((__lookbehind, __lookahead, __Nonterminal::Grammar(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action108(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action108(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym8.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::ExternToken(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state38(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::GrammarItem(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym8, __sym9)); - } - __Nonterminal::Nonterminal(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state42(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::_22pub_22_3f(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state39(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::Use(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - __Nonterminal::_40L(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state43(text, __lookbehind, __lookahead, __tokens, __sym9)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 36 - // ( ",") = GrammarParameter "," (*) [")"] - // ( ",") = GrammarParameter "," (*) ["Id"] - // - // ")" -> Reduce(( ",") = GrammarParameter, "," => Call(ActionFn(130));) - // "Id" -> Reduce(( ",") = GrammarParameter, "," => Call(ActionFn(130));) - // - pub fn __state36< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action130(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action130(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cGrammarParameter_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 37 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // GrammarParameter = Id ":" (*) TypeRef [")"] - // GrammarParameter = Id ":" (*) TypeRef [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // - // "::" -> Shift(S50) - // "&" -> Shift(S46) - // "(" -> Shift(S47) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S53) - // - // Path -> S52 - // Escape -> S49 - // "::"? -> S48 - // TypeRef -> S51 - pub fn __state37< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Escape(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state51(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 38 - // GrammarItem = ExternToken (*) [EOF] - // GrammarItem = ExternToken (*) ["Escape"] - // GrammarItem = ExternToken (*) ["Id"] - // GrammarItem = ExternToken (*) ["MacroId"] - // GrammarItem = ExternToken (*) ["extern"] - // GrammarItem = ExternToken (*) ["pub"] - // GrammarItem = ExternToken (*) ["use"] - // - // "extern" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "MacroId" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "pub" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // EOF -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "Id" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "use" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // "Escape" -> Reduce(GrammarItem = ExternToken => Call(ActionFn(9));) - // - pub fn __state38< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action9(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 39 - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? (*) @L NonterminalName @R (":" )? "=" Alternatives ["use"] - // - // "MacroId" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S54 - pub fn __state39< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state54(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 40 - // Use = "use" (*) ";" [EOF] - // Use = "use" (*) ";" ["Escape"] - // Use = "use" (*) ";" ["Id"] - // Use = "use" (*) ";" ["MacroId"] - // Use = "use" (*) ";" ["extern"] - // Use = "use" (*) ";" ["pub"] - // Use = "use" (*) ";" ["use"] - // - // ";" -> Shift(S55) - // - pub fn __state40< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state55(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 41 - // "pub"? = "pub" (*) ["Escape"] - // "pub"? = "pub" (*) ["Id"] - // "pub"? = "pub" (*) ["MacroId"] - // - // "MacroId" -> Reduce("pub"? = "pub" => Call(ActionFn(107));) - // "Escape" -> Reduce("pub"? = "pub" => Call(ActionFn(107));) - // "Id" -> Reduce("pub"? = "pub" => Call(ActionFn(107));) - // - pub fn __state41< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action107(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action107(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action107(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22pub_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 42 - // GrammarItem = Nonterminal (*) [EOF] - // GrammarItem = Nonterminal (*) ["Escape"] - // GrammarItem = Nonterminal (*) ["Id"] - // GrammarItem = Nonterminal (*) ["MacroId"] - // GrammarItem = Nonterminal (*) ["extern"] - // GrammarItem = Nonterminal (*) ["pub"] - // GrammarItem = Nonterminal (*) ["use"] - // - // "MacroId" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "extern" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // EOF -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "pub" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "Escape" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "use" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // "Id" -> Reduce(GrammarItem = Nonterminal => Call(ActionFn(10));) - // - pub fn __state42< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action10(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 43 - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L (*) "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "extern" -> Shift(S56) - // - pub fn __state43< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Extern(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state56(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 44 - // GrammarItem = Use (*) [EOF] - // GrammarItem = Use (*) ["Escape"] - // GrammarItem = Use (*) ["Id"] - // GrammarItem = Use (*) ["MacroId"] - // GrammarItem = Use (*) ["extern"] - // GrammarItem = Use (*) ["pub"] - // GrammarItem = Use (*) ["use"] - // - // EOF -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "Escape" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "MacroId" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "use" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "extern" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "Id" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // "pub" -> Reduce(GrammarItem = Use => Call(ActionFn(8));) - // - pub fn __state44< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action8(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 45 - // GrammarItem* = GrammarItem* GrammarItem (*) [EOF] - // GrammarItem* = GrammarItem* GrammarItem (*) ["Escape"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["Id"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["MacroId"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["extern"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["pub"] - // GrammarItem* = GrammarItem* GrammarItem (*) ["use"] - // - // "MacroId" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // EOF -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "pub" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "use" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "Escape" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "Id" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // "extern" -> Reduce(GrammarItem* = GrammarItem*, GrammarItem => Call(ActionFn(112));) - // - pub fn __state45< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action112(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarItem_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 46 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [")"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime? -> S57 - // Lifetime -> S59 - pub fn __state46< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state57(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 47 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [")"] - // TypeRef = "(" (*) Comma ")" [","] - // - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S60 - // Comma -> S61 - pub fn __state47< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state61(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 48 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [")"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S62 - pub fn __state48< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state62(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 49 - // TypeRef = Escape (*) [")"] - // TypeRef = Escape (*) [","] - // - // ")" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state49< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 50 - // "::"? = "::" (*) ["Id"] - // - // "Id" -> Reduce("::"? = "::" => Call(ActionFn(85));) - // - pub fn __state50< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action85(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 51 - // GrammarParameter = Id ":" TypeRef (*) [")"] - // GrammarParameter = Id ":" TypeRef (*) [","] - // - // "," -> Reduce(GrammarParameter = Id, ":", TypeRef => Call(ActionFn(7));) - // ")" -> Reduce(GrammarParameter = Id, ":", TypeRef => Call(ActionFn(7));) - // - pub fn __state51< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action7(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameter(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action7(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::GrammarParameter(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 52 - // TypeRef = Path (*) [")"] - // TypeRef = Path (*) [","] - // TypeRef = Path (*) "<" Comma ">" [")"] - // TypeRef = Path (*) "<" Comma ">" [","] - // - // ")" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S63) - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state52< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state63(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 53 - // Escape = "Escape" (*) [")"] - // Escape = "Escape" (*) [","] - // - // ")" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state53< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 54 - // Id = (*) "Id" [":"] - // Id = (*) "Id" ["="] - // MacroId = (*) "MacroId" ["<"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L (*) NonterminalName @R (":" )? "=" Alternatives ["use"] - // NonterminalId = (*) Id [":"] - // NonterminalId = (*) Id ["="] - // NonterminalName = (*) MacroId "<" Comma ">" [":"] - // NonterminalName = (*) MacroId "<" Comma ">" ["="] - // NonterminalName = (*) NonterminalId [":"] - // NonterminalName = (*) NonterminalId ["="] - // NonterminalName = (*) "Escape" [":"] - // NonterminalName = (*) "Escape" ["="] - // - // "Escape" -> Shift(S67) - // "MacroId" -> Shift(S68) - // "Id" -> Shift(S66) - // - // NonterminalName -> S70 - // NonterminalId -> S65 - // Id -> S69 - // MacroId -> S64 - pub fn __state54< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state67(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state66(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalName(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state65(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state69(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::MacroId(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state64(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 55 - // Use = "use" ";" (*) [EOF] - // Use = "use" ";" (*) ["Escape"] - // Use = "use" ";" (*) ["Id"] - // Use = "use" ";" (*) ["MacroId"] - // Use = "use" ";" (*) ["extern"] - // Use = "use" ";" (*) ["pub"] - // Use = "use" ";" (*) ["use"] - // - // EOF -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "Id" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "Escape" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "MacroId" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "extern" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "use" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // "pub" -> Reduce(Use = "use", ";" => Call(ActionFn(11));) - // - pub fn __state55< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action11(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Use(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 56 - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" (*) "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "token" -> Shift(S71) - // - pub fn __state56< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Token(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state71(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 57 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [")"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S72 - pub fn __state57< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 58 - // Lifetime = "Lifetime" (*) ["&"] - // Lifetime = "Lifetime" (*) ["("] - // Lifetime = "Lifetime" (*) ["::"] - // Lifetime = "Lifetime" (*) ["Escape"] - // Lifetime = "Lifetime" (*) ["Id"] - // Lifetime = "Lifetime" (*) ["mut"] - // - // "&" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "Id" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "Escape" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "(" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "mut" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "::" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state58< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 59 - // Lifetime? = Lifetime (*) ["&"] - // Lifetime? = Lifetime (*) ["("] - // Lifetime? = Lifetime (*) ["::"] - // Lifetime? = Lifetime (*) ["Escape"] - // Lifetime? = Lifetime (*) ["Id"] - // Lifetime? = Lifetime (*) ["mut"] - // - // "::" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "&" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "mut" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Escape" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Id" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "(" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // - pub fn __state59< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 60 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRef "," ["&"] - // ( ",") = (*) TypeRef "," ["("] - // ( ",") = (*) TypeRef "," [")"] - // ( ",") = (*) TypeRef "," ["::"] - // ( ",") = (*) TypeRef "," ["Escape"] - // ( ",") = (*) TypeRef "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) TypeRef? [")"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef? = (*) [")"] - // TypeRef? = (*) TypeRef [")"] - // - // "&" -> Shift(S46) - // "::" -> Shift(S50) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // ")" -> Reduce(TypeRef? = => Call(ActionFn(142));) - // "Escape" -> Shift(S53) - // "(" -> Shift(S47) - // - // TypeRef? -> S75 - // TypeRef -> S76 - // Path -> S52 - // "::"? -> S48 - // Escape -> S49 - // ( ",") -> S74 - pub fn __state60< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action142(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeRef_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state75(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state76(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state74(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 61 - // TypeRef = "(" Comma (*) ")" [")"] - // TypeRef = "(" Comma (*) ")" [","] - // - // ")" -> Shift(S77) - // - pub fn __state61< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state77(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 62 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [")"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Path = "::"? ( "::")* (*) Id [")"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // - // "Id" -> Shift(S79) - // - // Id -> S78 - // ( "::") -> S80 - pub fn __state62< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state79(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state78(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 63 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [")"] - // TypeRef = Path "<" (*) Comma ">" [","] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S82 - // ( ",")* -> S81 - pub fn __state63< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state82(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 64 - // NonterminalName = MacroId (*) "<" Comma ">" [":"] - // NonterminalName = MacroId (*) "<" Comma ">" ["="] - // - // "<" -> Shift(S83) - // - pub fn __state64< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state83(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 65 - // NonterminalName = NonterminalId (*) [":"] - // NonterminalName = NonterminalId (*) ["="] - // - // ":" -> Reduce(NonterminalName = NonterminalId => Call(ActionFn(14));) - // "=" -> Reduce(NonterminalName = NonterminalId => Call(ActionFn(14));) - // - pub fn __state65< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action14(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action14(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 66 - // Id = "Id" (*) [":"] - // Id = "Id" (*) ["="] - // - // "=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state66< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 67 - // NonterminalName = "Escape" (*) [":"] - // NonterminalName = "Escape" (*) ["="] - // - // ":" -> Reduce(NonterminalName = "Escape" => Call(ActionFn(15));) - // "=" -> Reduce(NonterminalName = "Escape" => Call(ActionFn(15));) - // - pub fn __state67< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action15(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action15(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 68 - // MacroId = "MacroId" (*) ["<"] - // - // "<" -> Reduce(MacroId = "MacroId" => Call(ActionFn(66));) - // - pub fn __state68< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action66(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::MacroId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 69 - // NonterminalId = Id (*) [":"] - // NonterminalId = Id (*) ["="] - // - // ":" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state69< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 70 - // @R = (*) [":"] - // @R = (*) ["="] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName (*) @R (":" )? "=" Alternatives ["use"] - // - // "=" -> Reduce(@R = => Lookbehind;) - // ":" -> Reduce(@R = => Lookbehind;) - // - // @R -> S84 - pub fn __state70< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Colon(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state84(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 71 - // @R = (*) ["{"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" (*) @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Reduce(@R = => Lookbehind;) - // - // @R -> S85 - pub fn __state71< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state85(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 72 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [")"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // - // "::" -> Shift(S50) - // "(" -> Shift(S47) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S53) - // "&" -> Shift(S46) - // - // Escape -> S49 - // TypeRef -> S86 - // Path -> S52 - // "::"? -> S48 - pub fn __state72< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state86(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 73 - // "mut"? = "mut" (*) ["&"] - // "mut"? = "mut" (*) ["("] - // "mut"? = "mut" (*) ["::"] - // "mut"? = "mut" (*) ["Escape"] - // "mut"? = "mut" (*) ["Id"] - // - // "&" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "Id" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "::" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "Escape" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "(" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // - pub fn __state73< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 74 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // - pub fn __state74< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 75 - // Comma = ( ",")* TypeRef? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, TypeRef? => Call(ActionFn(92));) - // - pub fn __state75< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action92(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRef_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 76 - // ( ",") = TypeRef (*) "," ["&"] - // ( ",") = TypeRef (*) "," ["("] - // ( ",") = TypeRef (*) "," [")"] - // ( ",") = TypeRef (*) "," ["::"] - // ( ",") = TypeRef (*) "," ["Escape"] - // ( ",") = TypeRef (*) "," ["Id"] - // TypeRef? = TypeRef (*) [")"] - // - // ")" -> Reduce(TypeRef? = TypeRef => Call(ActionFn(141));) - // "," -> Shift(S87) - // - pub fn __state76< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state87(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action141(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 77 - // TypeRef = "(" Comma ")" (*) [")"] - // TypeRef = "(" Comma ")" (*) [","] - // - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // ")" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state77< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 78 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [")"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ")" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state78< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 79 - // Id = "Id" (*) [")"] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state79< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 80 - // ( "::")* = ( "::")* ( "::") (*) ["Id"] - // - // "Id" -> Reduce(( "::")* = ( "::")*, ( "::") => Call(ActionFn(83));) - // - pub fn __state80< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action83(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 81 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["&"] - // ( ",") = (*) TypeRefOrLifetime "," ["("] - // ( ",") = (*) TypeRefOrLifetime "," ["::"] - // ( ",") = (*) TypeRefOrLifetime "," [">"] - // ( ",") = (*) TypeRefOrLifetime "," ["Escape"] - // ( ",") = (*) TypeRefOrLifetime "," ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["Lifetime"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["Lifetime"] - // Comma = ( ",")* (*) TypeRefOrLifetime? [">"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Lifetime = (*) "Lifetime" [","] - // Lifetime = (*) "Lifetime" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // TypeRefOrLifetime = (*) Lifetime [","] - // TypeRefOrLifetime = (*) Lifetime [">"] - // TypeRefOrLifetime = (*) TypeRef [","] - // TypeRefOrLifetime = (*) TypeRef [">"] - // TypeRefOrLifetime? = (*) [">"] - // TypeRefOrLifetime? = (*) TypeRefOrLifetime [">"] - // - // "Escape" -> Shift(S93) - // "::" -> Shift(S50) - // "Lifetime" -> Shift(S95) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S100) - // "(" -> Shift(S94) - // ">" -> Reduce(TypeRefOrLifetime? = => Call(ActionFn(147));) - // - // ( ",") -> S92 - // TypeRef -> S98 - // Escape -> S99 - // "::"? -> S89 - // Path -> S90 - // TypeRefOrLifetime? -> S96 - // Lifetime -> S91 - // TypeRefOrLifetime -> S97 - pub fn __state81< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state95(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state100(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action147(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state92(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state98(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state99(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state89(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRefOrLifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state96(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state91(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRefOrLifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state97(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 82 - // TypeRef = Path "<" Comma (*) ">" [")"] - // TypeRef = Path "<" Comma (*) ">" [","] - // - // ">" -> Shift(S101) - // - pub fn __state82< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state101(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 83 - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* NonterminalId? [">"] - // NonterminalName = MacroId "<" (*) Comma ">" [":"] - // NonterminalName = MacroId "<" (*) Comma ">" ["="] - // - // ">" -> Reduce(( ",")* = => Call(ActionFn(133));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(133));) - // - // Comma -> S103 - // ( ",")* -> S102 - pub fn __state83< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action133(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action133(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cNonterminalId_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state103(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state102(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 84 - // (":" ) = (*) ":" TypeRef ["="] - // (":" )? = (*) ["="] - // (":" )? = (*) (":" ) ["="] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (*) (":" )? "=" Alternatives ["use"] - // - // "=" -> Reduce((":" )? = => Call(ActionFn(105));) - // ":" -> Shift(S104) - // - // (":" ) -> S106 - // (":" )? -> S105 - pub fn __state84< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state104(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - Some((_, Tok::Equals(..), _)) => { - let __nt = super::__action105(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state106(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29_3f(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state105(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 85 - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R (*) "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Shift(S107) - // - pub fn __state85< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state107(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 86 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [")"] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // ")" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state86< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 87 - // ( ",") = TypeRef "," (*) ["&"] - // ( ",") = TypeRef "," (*) ["("] - // ( ",") = TypeRef "," (*) [")"] - // ( ",") = TypeRef "," (*) ["::"] - // ( ",") = TypeRef "," (*) ["Escape"] - // ( ",") = TypeRef "," (*) ["Id"] - // - // "(" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "::" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "&" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // ")" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "Id" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "Escape" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // - pub fn __state87< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 88 - // ( "::") = Id "::" (*) ["Id"] - // - // "Id" -> Reduce(( "::") = Id, "::" => Call(ActionFn(84));) - // - pub fn __state88< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action84(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 89 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id [">"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S108 - pub fn __state89< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state108(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 90 - // TypeRef = Path (*) [","] - // TypeRef = Path (*) [">"] - // TypeRef = Path (*) "<" Comma ">" [","] - // TypeRef = Path (*) "<" Comma ">" [">"] - // - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S109) - // ">" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state90< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state109(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 91 - // TypeRefOrLifetime = Lifetime (*) [","] - // TypeRefOrLifetime = Lifetime (*) [">"] - // - // "," -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // ">" -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // - pub fn __state91< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 92 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["Lifetime"] - // - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Lifetime" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // - pub fn __state92< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 93 - // Escape = "Escape" (*) [","] - // Escape = "Escape" (*) [">"] - // - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state93< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 94 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [","] - // TypeRef = "(" (*) Comma ")" [">"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S110 - // ( ",")* -> S60 - pub fn __state94< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state110(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 95 - // Lifetime = "Lifetime" (*) [","] - // Lifetime = "Lifetime" (*) [">"] - // - // ">" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "," -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state95< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 96 - // Comma = ( ",")* TypeRefOrLifetime? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, TypeRefOrLifetime? => Call(ActionFn(87));) - // - pub fn __state96< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action87(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 97 - // ( ",") = TypeRefOrLifetime (*) "," ["&"] - // ( ",") = TypeRefOrLifetime (*) "," ["("] - // ( ",") = TypeRefOrLifetime (*) "," ["::"] - // ( ",") = TypeRefOrLifetime (*) "," [">"] - // ( ",") = TypeRefOrLifetime (*) "," ["Escape"] - // ( ",") = TypeRefOrLifetime (*) "," ["Id"] - // ( ",") = TypeRefOrLifetime (*) "," ["Lifetime"] - // TypeRefOrLifetime? = TypeRefOrLifetime (*) [">"] - // - // ">" -> Reduce(TypeRefOrLifetime? = TypeRefOrLifetime => Call(ActionFn(146));) - // "," -> Shift(S111) - // - pub fn __state97< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state111(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action146(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 98 - // TypeRefOrLifetime = TypeRef (*) [","] - // TypeRefOrLifetime = TypeRef (*) [">"] - // - // "," -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // ">" -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // - pub fn __state98< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 99 - // TypeRef = Escape (*) [","] - // TypeRef = Escape (*) [">"] - // - // ">" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state99< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 100 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [">"] - // - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S59 - // Lifetime? -> S112 - pub fn __state100< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state112(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 101 - // TypeRef = Path "<" Comma ">" (*) [")"] - // TypeRef = Path "<" Comma ">" (*) [","] - // - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // ")" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state101< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 102 - // ( ",") = (*) NonterminalId "," [">"] - // ( ",") = (*) NonterminalId "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) NonterminalId? [">"] - // Id = (*) "Id" [","] - // Id = (*) "Id" [">"] - // NonterminalId = (*) Id [","] - // NonterminalId = (*) Id [">"] - // NonterminalId? = (*) [">"] - // NonterminalId? = (*) NonterminalId [">"] - // - // "Id" -> Shift(S115) - // ">" -> Reduce(NonterminalId? = => Call(ActionFn(132));) - // - // NonterminalId -> S116 - // NonterminalId? -> S117 - // Id -> S114 - // ( ",") -> S113 - pub fn __state102< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state115(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action132(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::NonterminalId_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state116(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::NonterminalId_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state117(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state114(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state113(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 103 - // NonterminalName = MacroId "<" Comma (*) ">" [":"] - // NonterminalName = MacroId "<" Comma (*) ">" ["="] - // - // ">" -> Shift(S118) - // - pub fn __state103< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state118(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 104 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // (":" ) = ":" (*) TypeRef ["="] - // Escape = (*) "Escape" ["="] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["="] - // TypeRef = (*) Escape ["="] - // TypeRef = (*) Path ["="] - // TypeRef = (*) Path "<" Comma ">" ["="] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["="] - // TypeRef = (*) "(" Comma ")" ["="] - // - // "&" -> Shift(S122) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S125) - // "::" -> Shift(S50) - // "Escape" -> Shift(S120) - // - // Path -> S121 - // Escape -> S124 - // TypeRef -> S119 - // "::"? -> S123 - pub fn __state104< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state122(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state125(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state120(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state121(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state124(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state119(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state123(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 105 - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? (*) "=" Alternatives ["use"] - // - // "=" -> Shift(S126) - // - pub fn __state105< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Equals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state126(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 106 - // (":" )? = (":" ) (*) ["="] - // - // "=" -> Reduce((":" )? = (":" ) => Call(ActionFn(104));) - // - pub fn __state106< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action104(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 107 - // AssociatedType* = (*) ["enum"] - // AssociatedType* = (*) ["type"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["enum"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["type"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" (*) AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "enum" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // "type" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // - // AssociatedType* -> S127 - pub fn __state107< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Enum(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - Some((_, Tok::Type(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType_2a(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state127(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 108 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" [">"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id [">"] - // - // "Id" -> Shift(S129) - // - // ( "::") -> S80 - // Id -> S128 - pub fn __state108< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state129(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state128(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 109 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [","] - // TypeRef = Path "<" (*) Comma ">" [">"] - // - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S130 - // ( ",")* -> S81 - pub fn __state109< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state130(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 110 - // TypeRef = "(" Comma (*) ")" [","] - // TypeRef = "(" Comma (*) ")" [">"] - // - // ")" -> Shift(S131) - // - pub fn __state110< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state131(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 111 - // ( ",") = TypeRefOrLifetime "," (*) ["&"] - // ( ",") = TypeRefOrLifetime "," (*) ["("] - // ( ",") = TypeRefOrLifetime "," (*) ["::"] - // ( ",") = TypeRefOrLifetime "," (*) [">"] - // ( ",") = TypeRefOrLifetime "," (*) ["Escape"] - // ( ",") = TypeRefOrLifetime "," (*) ["Id"] - // ( ",") = TypeRefOrLifetime "," (*) ["Lifetime"] - // - // ">" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Id" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Lifetime" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "&" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Escape" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "(" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "::" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // - pub fn __state111< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 112 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [">"] - // - // "mut" -> Shift(S73) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S132 - pub fn __state112< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state132(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 113 - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(134));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(134));) - // - pub fn __state113< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action134(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action134(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 114 - // NonterminalId = Id (*) [","] - // NonterminalId = Id (*) [">"] - // - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "," -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state114< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 115 - // Id = "Id" (*) [","] - // Id = "Id" (*) [">"] - // - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state115< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 116 - // ( ",") = NonterminalId (*) "," [">"] - // ( ",") = NonterminalId (*) "," ["Id"] - // NonterminalId? = NonterminalId (*) [">"] - // - // "," -> Shift(S133) - // ">" -> Reduce(NonterminalId? = NonterminalId => Call(ActionFn(131));) - // - pub fn __state116< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state133(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action131(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 117 - // Comma = ( ",")* NonterminalId? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, NonterminalId? => Call(ActionFn(103));) - // - pub fn __state117< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action103(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cNonterminalId_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 118 - // NonterminalName = MacroId "<" Comma ">" (*) [":"] - // NonterminalName = MacroId "<" Comma ">" (*) ["="] - // - // ":" -> Reduce(NonterminalName = MacroId, "<", Comma, ">" => Call(ActionFn(13));) - // "=" -> Reduce(NonterminalName = MacroId, "<", Comma, ">" => Call(ActionFn(13));) - // - pub fn __state118< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action13(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action13(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalName(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 119 - // (":" ) = ":" TypeRef (*) ["="] - // - // "=" -> Reduce((":" ) = ":", TypeRef => Call(ActionFn(106));) - // - pub fn __state119< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action106(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22_3a_22_20_3cTypeRef_3e_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 120 - // Escape = "Escape" (*) ["="] - // - // "=" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state120< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 121 - // TypeRef = Path (*) ["="] - // TypeRef = Path (*) "<" Comma ">" ["="] - // - // "=" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S134) - // - pub fn __state121< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state134(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 122 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef ["="] - // - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime? -> S135 - // Lifetime -> S59 - pub fn __state122< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state135(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 123 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id ["="] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S136 - pub fn __state123< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state136(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 124 - // TypeRef = Escape (*) ["="] - // - // "=" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state124< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 125 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" ["="] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S60 - // Comma -> S137 - pub fn __state125< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state137(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 126 - // @L = (*) ["("] - // @L = (*) [";"] - // @L = (*) ["<"] - // @L = (*) ["=>"] - // @L = (*) ["=>?"] - // @L = (*) ["=>@L"] - // @L = (*) ["=>@R"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // @L = (*) ["if"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R [EOF] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["extern"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["pub"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["use"] - // Alternatives = (*) Alternative [EOF] - // Alternatives = (*) Alternative ["Escape"] - // Alternatives = (*) Alternative ["Id"] - // Alternatives = (*) Alternative ["MacroId"] - // Alternatives = (*) Alternative ["extern"] - // Alternatives = (*) Alternative ["pub"] - // Alternatives = (*) Alternative ["use"] - // Alternatives = (*) "{" Alternative* "}" ";" [EOF] - // Alternatives = (*) "{" Alternative* "}" ";" ["Escape"] - // Alternatives = (*) "{" Alternative* "}" ";" ["Id"] - // Alternatives = (*) "{" Alternative* "}" ";" ["MacroId"] - // Alternatives = (*) "{" Alternative* "}" ";" ["extern"] - // Alternatives = (*) "{" Alternative* "}" ";" ["pub"] - // Alternatives = (*) "{" Alternative* "}" ";" ["use"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" (*) Alternatives ["use"] - // - // "{" -> Shift(S139) - // "=>" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "=>?" -> Reduce(@L = => Lookahead;) - // "if" -> Reduce(@L = => Lookahead;) - // ";" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "=>@L" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // "=>@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // Alternatives -> S141 - // @L -> S138 - // Alternative -> S140 - pub fn __state126< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>, - __sym5: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state139(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Alternatives(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state141(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - __Nonterminal::_40L(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state138(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - __Nonterminal::Alternative(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state140(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 127 - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["enum"] - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["type"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["enum"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["type"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* (*) "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "type" -> Shift(S144) - // "enum" -> Shift(S142) - // - // AssociatedType -> S143 - pub fn __state127< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Type(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state144(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Enum(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state142(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state143(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 128 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) [">"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ">" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state128< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 129 - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) [">"] - // - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state129< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 130 - // TypeRef = Path "<" Comma (*) ">" [","] - // TypeRef = Path "<" Comma (*) ">" [">"] - // - // ">" -> Shift(S145) - // - pub fn __state130< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state145(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 131 - // TypeRef = "(" Comma ")" (*) [","] - // TypeRef = "(" Comma ")" (*) [">"] - // - // ">" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state131< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 132 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "(" -> Shift(S94) - // "::" -> Shift(S50) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S100) - // "Escape" -> Shift(S93) - // - // Path -> S90 - // Escape -> S99 - // TypeRef -> S146 - // "::"? -> S89 - pub fn __state132< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state100(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state99(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state146(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state89(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 133 - // ( ",") = NonterminalId "," (*) [">"] - // ( ",") = NonterminalId "," (*) ["Id"] - // - // ">" -> Reduce(( ",") = NonterminalId, "," => Call(ActionFn(135));) - // "Id" -> Reduce(( ",") = NonterminalId, "," => Call(ActionFn(135));) - // - pub fn __state133< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action135(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action135(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cNonterminalId_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 134 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" ["="] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // ( ",")* -> S81 - // Comma -> S147 - pub fn __state134< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state147(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 135 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef ["="] - // - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S148 - pub fn __state135< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state148(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 136 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["="] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id ["="] - // - // "Id" -> Shift(S150) - // - // Id -> S149 - // ( "::") -> S80 - pub fn __state136< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state150(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state149(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 137 - // TypeRef = "(" Comma (*) ")" ["="] - // - // ")" -> Shift(S151) - // - pub fn __state137< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state151(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 138 - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R [EOF] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["extern"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["pub"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["use"] - // ExprSymbol = (*) Symbol* [";"] - // ExprSymbol = (*) Symbol* ["=>"] - // ExprSymbol = (*) Symbol* ["=>?"] - // ExprSymbol = (*) Symbol* ["=>@L"] - // ExprSymbol = (*) Symbol* ["=>@R"] - // ExprSymbol = (*) Symbol* ["if"] - // Symbol* = (*) ["("] - // Symbol* = (*) [";"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["=>"] - // Symbol* = (*) ["=>?"] - // Symbol* = (*) ["=>@L"] - // Symbol* = (*) ["=>@R"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) ["if"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [";"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["=>"] - // Symbol* = (*) Symbol* Symbol ["=>?"] - // Symbol* = (*) Symbol* Symbol ["=>@L"] - // Symbol* = (*) Symbol* Symbol ["=>@R"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["if"] - // - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "if" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>?" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ";" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // ExprSymbol -> S152 - // Symbol* -> S153 - pub fn __state138< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state152(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state153(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 139 - // Alternative* = (*) ["("] - // Alternative* = (*) [";"] - // Alternative* = (*) ["<"] - // Alternative* = (*) ["=>"] - // Alternative* = (*) ["=>?"] - // Alternative* = (*) ["=>@L"] - // Alternative* = (*) ["=>@R"] - // Alternative* = (*) ["@L"] - // Alternative* = (*) ["@R"] - // Alternative* = (*) ["Escape"] - // Alternative* = (*) ["Id"] - // Alternative* = (*) ["MacroId"] - // Alternative* = (*) ["StringLiteral"] - // Alternative* = (*) ["if"] - // Alternative* = (*) ["}"] - // Alternative* = (*) Alternative* Alternative ["("] - // Alternative* = (*) Alternative* Alternative [";"] - // Alternative* = (*) Alternative* Alternative ["<"] - // Alternative* = (*) Alternative* Alternative ["=>"] - // Alternative* = (*) Alternative* Alternative ["=>?"] - // Alternative* = (*) Alternative* Alternative ["=>@L"] - // Alternative* = (*) Alternative* Alternative ["=>@R"] - // Alternative* = (*) Alternative* Alternative ["@L"] - // Alternative* = (*) Alternative* Alternative ["@R"] - // Alternative* = (*) Alternative* Alternative ["Escape"] - // Alternative* = (*) Alternative* Alternative ["Id"] - // Alternative* = (*) Alternative* Alternative ["MacroId"] - // Alternative* = (*) Alternative* Alternative ["StringLiteral"] - // Alternative* = (*) Alternative* Alternative ["if"] - // Alternative* = (*) Alternative* Alternative ["}"] - // Alternatives = "{" (*) Alternative* "}" ";" [EOF] - // Alternatives = "{" (*) Alternative* "}" ";" ["Escape"] - // Alternatives = "{" (*) Alternative* "}" ";" ["Id"] - // Alternatives = "{" (*) Alternative* "}" ";" ["MacroId"] - // Alternatives = "{" (*) Alternative* "}" ";" ["extern"] - // Alternatives = "{" (*) Alternative* "}" ";" ["pub"] - // Alternatives = "{" (*) Alternative* "}" ";" ["use"] - // - // ";" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "StringLiteral" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "MacroId" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>?" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>@R" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "=>@L" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "@L" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "Id" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "}" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "<" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "(" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "@R" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "Escape" -> Reduce(Alternative* = => Call(ActionFn(101));) - // "if" -> Reduce(Alternative* = => Call(ActionFn(101));) - // - // Alternative* -> S154 - pub fn __state139< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = super::__action101(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Alternative_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state154(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 140 - // Alternatives = Alternative (*) [EOF] - // Alternatives = Alternative (*) ["Escape"] - // Alternatives = Alternative (*) ["Id"] - // Alternatives = Alternative (*) ["MacroId"] - // Alternatives = Alternative (*) ["extern"] - // Alternatives = Alternative (*) ["pub"] - // Alternatives = Alternative (*) ["use"] - // - // "extern" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "MacroId" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "Escape" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "use" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "pub" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // "Id" -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // EOF -> Reduce(Alternatives = Alternative => Call(ActionFn(16));) - // - pub fn __state140< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action16(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 141 - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) [EOF] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["Escape"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["Id"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["MacroId"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["extern"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["pub"] - // Nonterminal = "pub"? @L NonterminalName @R (":" )? "=" Alternatives (*) ["use"] - // - // "pub" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "Id" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // EOF -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "extern" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "use" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "MacroId" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // "Escape" -> Reduce(Nonterminal = "pub"?, @L, NonterminalName, @R, (":" )?, "=", Alternatives => Call(ActionFn(12));) - // - pub fn __state141< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option, - __sym2: &mut Option<(NonterminalString, Vec)>, - __sym3: &mut Option, - __sym4: &mut Option<::std::option::Option>, - __sym5: &mut Option>, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action12(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::Nonterminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 142 - // @L = (*) ["&"] - // @L = (*) ["("] - // @L = (*) ["::"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" (*) @L TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "&" -> Reduce(@L = => Lookahead;) - // "::" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S155 - pub fn __state142< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state155(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 143 - // AssociatedType* = AssociatedType* AssociatedType (*) ["enum"] - // AssociatedType* = AssociatedType* AssociatedType (*) ["type"] - // - // "enum" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // "type" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // - pub fn __state143< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Enum(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 144 - // @L = (*) ["Id"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["enum"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["type"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S156 - pub fn __state144< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state156(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 145 - // TypeRef = Path "<" Comma ">" (*) [","] - // TypeRef = Path "<" Comma ">" (*) [">"] - // - // ">" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state145< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 146 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [">"] - // - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // ">" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state146< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 147 - // TypeRef = Path "<" Comma (*) ">" ["="] - // - // ">" -> Shift(S157) - // - pub fn __state147< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state157(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 148 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" ["="] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["="] - // TypeRef = (*) Escape ["="] - // TypeRef = (*) Path ["="] - // TypeRef = (*) Path "<" Comma ">" ["="] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["="] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef ["="] - // TypeRef = (*) "(" Comma ")" ["="] - // - // "(" -> Shift(S125) - // "&" -> Shift(S122) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S120) - // "::" -> Shift(S50) - // - // Path -> S121 - // TypeRef -> S158 - // Escape -> S124 - // "::"? -> S123 - pub fn __state148< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state125(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state122(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state120(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state121(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state158(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state124(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state123(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 149 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) ["="] - // - // "=" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // - pub fn __state149< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 150 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["="] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state150< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 151 - // TypeRef = "(" Comma ")" (*) ["="] - // - // "=" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state151< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 152 - // ("if" ) = (*) "if" Cond [";"] - // ("if" ) = (*) "if" Cond ["=>"] - // ("if" ) = (*) "if" Cond ["=>?"] - // ("if" ) = (*) "if" Cond ["=>@L"] - // ("if" ) = (*) "if" Cond ["=>@R"] - // ("if" )? = (*) [";"] - // ("if" )? = (*) ["=>"] - // ("if" )? = (*) ["=>?"] - // ("if" )? = (*) ["=>@L"] - // ("if" )? = (*) ["=>@R"] - // ("if" )? = (*) ("if" ) [";"] - // ("if" )? = (*) ("if" ) ["=>"] - // ("if" )? = (*) ("if" ) ["=>?"] - // ("if" )? = (*) ("if" ) ["=>@L"] - // ("if" )? = (*) ("if" ) ["=>@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R [EOF] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["extern"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["pub"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["use"] - // - // "if" -> Shift(S160) - // "=>" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>?" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>@R" -> Reduce(("if" )? = => Call(ActionFn(99));) - // ";" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>@L" -> Reduce(("if" )? = => Call(ActionFn(99));) - // - // ("if" )? -> S161 - // ("if" ) -> S159 - pub fn __state152< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::If(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state160(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state161(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state159(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 153 - // @L = (*) ["("] - // @L = (*) ["<"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // ExprSymbol = Symbol* (*) [";"] - // ExprSymbol = Symbol* (*) ["=>"] - // ExprSymbol = Symbol* (*) ["=>?"] - // ExprSymbol = Symbol* (*) ["=>@L"] - // ExprSymbol = Symbol* (*) ["=>@R"] - // ExprSymbol = Symbol* (*) ["if"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [";"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["if"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" Symbol0 ">" @R [";"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>?"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>@L"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["=>@R"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["if"] - // Symbol = (*) Symbol0 ["("] - // Symbol = (*) Symbol0 [";"] - // Symbol = (*) Symbol0 ["<"] - // Symbol = (*) Symbol0 ["=>"] - // Symbol = (*) Symbol0 ["=>?"] - // Symbol = (*) Symbol0 ["=>@L"] - // Symbol = (*) Symbol0 ["=>@R"] - // Symbol = (*) Symbol0 ["@L"] - // Symbol = (*) Symbol0 ["@R"] - // Symbol = (*) Symbol0 ["Escape"] - // Symbol = (*) Symbol0 ["Id"] - // Symbol = (*) Symbol0 ["MacroId"] - // Symbol = (*) Symbol0 ["StringLiteral"] - // Symbol = (*) Symbol0 ["if"] - // Symbol* = Symbol* (*) Symbol ["("] - // Symbol* = Symbol* (*) Symbol [";"] - // Symbol* = Symbol* (*) Symbol ["<"] - // Symbol* = Symbol* (*) Symbol ["=>"] - // Symbol* = Symbol* (*) Symbol ["=>?"] - // Symbol* = Symbol* (*) Symbol ["=>@L"] - // Symbol* = Symbol* (*) Symbol ["=>@R"] - // Symbol* = Symbol* (*) Symbol ["@L"] - // Symbol* = Symbol* (*) Symbol ["@R"] - // Symbol* = Symbol* (*) Symbol ["Escape"] - // Symbol* = Symbol* (*) Symbol ["Id"] - // Symbol* = Symbol* (*) Symbol ["MacroId"] - // Symbol* = Symbol* (*) Symbol ["StringLiteral"] - // Symbol* = Symbol* (*) Symbol ["if"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["("] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [";"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["<"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>?"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>@L"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["=>@R"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@L"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@R"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Escape"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Id"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["MacroId"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["if"] - // Symbol0 = (*) Symbol1 ["("] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [";"] - // Symbol0 = (*) Symbol1 ["<"] - // Symbol0 = (*) Symbol1 ["=>"] - // Symbol0 = (*) Symbol1 ["=>?"] - // Symbol0 = (*) Symbol1 ["=>@L"] - // Symbol0 = (*) Symbol1 ["=>@R"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol0 = (*) Symbol1 ["@L"] - // Symbol0 = (*) Symbol1 ["@R"] - // Symbol0 = (*) Symbol1 ["Escape"] - // Symbol0 = (*) Symbol1 ["Id"] - // Symbol0 = (*) Symbol1 ["MacroId"] - // Symbol0 = (*) Symbol1 ["StringLiteral"] - // Symbol0 = (*) Symbol1 ["if"] - // Symbol1 = (*) @L SymbolKind1 @R ["("] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [";"] - // Symbol1 = (*) @L SymbolKind1 @R ["<"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>?"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>@L"] - // Symbol1 = (*) @L SymbolKind1 @R ["=>@R"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["@L"] - // Symbol1 = (*) @L SymbolKind1 @R ["@R"] - // Symbol1 = (*) @L SymbolKind1 @R ["Escape"] - // Symbol1 = (*) @L SymbolKind1 @R ["Id"] - // Symbol1 = (*) @L SymbolKind1 @R ["MacroId"] - // Symbol1 = (*) @L SymbolKind1 @R ["StringLiteral"] - // Symbol1 = (*) @L SymbolKind1 @R ["if"] - // - // "<" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "=>@R" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "=>" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "(" -> Reduce(@L = => Lookahead;) - // ";" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "Escape" -> Reduce(@L = => Lookahead;) - // "=>@L" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "@L" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "if" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "=>?" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // - // @L -> S163 - // Symbol1 -> S164 - // Symbol -> S165 - // Symbol0 -> S162 - pub fn __state153< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state163(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state164(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state165(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state162(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 154 - // @L = (*) ["("] - // @L = (*) [";"] - // @L = (*) ["<"] - // @L = (*) ["=>"] - // @L = (*) ["=>?"] - // @L = (*) ["=>@L"] - // @L = (*) ["=>@R"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // @L = (*) ["if"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["("] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R [";"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["<"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>?"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>@L"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["=>@R"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["@L"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["@R"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["StringLiteral"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["if"] - // Alternative = (*) @L ExprSymbol ("if" )? Action? ";" @R ["}"] - // Alternative* = Alternative* (*) Alternative ["("] - // Alternative* = Alternative* (*) Alternative [";"] - // Alternative* = Alternative* (*) Alternative ["<"] - // Alternative* = Alternative* (*) Alternative ["=>"] - // Alternative* = Alternative* (*) Alternative ["=>?"] - // Alternative* = Alternative* (*) Alternative ["=>@L"] - // Alternative* = Alternative* (*) Alternative ["=>@R"] - // Alternative* = Alternative* (*) Alternative ["@L"] - // Alternative* = Alternative* (*) Alternative ["@R"] - // Alternative* = Alternative* (*) Alternative ["Escape"] - // Alternative* = Alternative* (*) Alternative ["Id"] - // Alternative* = Alternative* (*) Alternative ["MacroId"] - // Alternative* = Alternative* (*) Alternative ["StringLiteral"] - // Alternative* = Alternative* (*) Alternative ["if"] - // Alternative* = Alternative* (*) Alternative ["}"] - // Alternatives = "{" Alternative* (*) "}" ";" [EOF] - // Alternatives = "{" Alternative* (*) "}" ";" ["Escape"] - // Alternatives = "{" Alternative* (*) "}" ";" ["Id"] - // Alternatives = "{" Alternative* (*) "}" ";" ["MacroId"] - // Alternatives = "{" Alternative* (*) "}" ";" ["extern"] - // Alternatives = "{" Alternative* (*) "}" ";" ["pub"] - // Alternatives = "{" Alternative* (*) "}" ";" ["use"] - // - // "=>" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // "=>@R" -> Reduce(@L = => Lookahead;) - // ";" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "if" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "=>@L" -> Reduce(@L = => Lookahead;) - // "}" -> Shift(S168) - // "=>?" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // - // Alternative -> S166 - // @L -> S167 - pub fn __state154< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state168(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Alternative(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state166(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state167(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 155 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" ["{"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L (*) TypeRef @R "{" Comma "}" AssociatedType* "}" ["use"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["{"] - // TypeRef = (*) Escape ["{"] - // TypeRef = (*) Path ["{"] - // TypeRef = (*) Path "<" Comma ">" ["{"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["{"] - // TypeRef = (*) "(" Comma ")" ["{"] - // - // "::" -> Shift(S50) - // "&" -> Shift(S175) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S170) - // "(" -> Shift(S171) - // - // Path -> S169 - // TypeRef -> S174 - // Escape -> S173 - // "::"? -> S172 - pub fn __state155< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state175(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state170(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym8 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state171(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym7.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state169(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state174(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8)); - } - __Nonterminal::Escape(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state173(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym8 = &mut Some(__nt); - __result = try!(__state172(text, __lookbehind, __lookahead, __tokens, __sym8)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 156 - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["enum"] - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["type"] - // Id = (*) "Id" ["="] - // - // "Id" -> Shift(S176) - // - // Id -> S177 - pub fn __state156< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state176(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state177(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 157 - // TypeRef = Path "<" Comma ">" (*) ["="] - // - // "=" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state157< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 158 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) ["="] - // - // "=" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state158< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 159 - // ("if" )? = ("if" ) (*) [";"] - // ("if" )? = ("if" ) (*) ["=>"] - // ("if" )? = ("if" ) (*) ["=>?"] - // ("if" )? = ("if" ) (*) ["=>@L"] - // ("if" )? = ("if" ) (*) ["=>@R"] - // - // "=>?" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // "=>" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // "=>@L" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // ";" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // "=>@R" -> Reduce(("if" )? = ("if" ) => Call(ActionFn(98));) - // - pub fn __state159< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action98(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 160 - // ("if" ) = "if" (*) Cond [";"] - // ("if" ) = "if" (*) Cond ["=>"] - // ("if" ) = "if" (*) Cond ["=>?"] - // ("if" ) = "if" (*) Cond ["=>@L"] - // ("if" ) = "if" (*) Cond ["=>@R"] - // @L = (*) ["Id"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R [";"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>?"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>@L"] - // Cond = (*) @L NonterminalId CondOp StringLiteral @R ["=>@R"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S178 - // Cond -> S179 - pub fn __state160< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state178(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Cond(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state179(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 161 - // Action = (*) "=>" [";"] - // Action = (*) "=>?" [";"] - // Action = (*) "=>@L" [";"] - // Action = (*) "=>@R" [";"] - // Action? = (*) [";"] - // Action? = (*) Action [";"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R [EOF] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["extern"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["pub"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["use"] - // - // "=>?" -> Shift(S183) - // ";" -> Reduce(Action? = => Call(ActionFn(97));) - // "=>@R" -> Shift(S180) - // "=>" -> Shift(S184) - // "=>@L" -> Shift(S185) - // - // Action -> S182 - // Action? -> S181 - pub fn __state161< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state183(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state180(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::EqualsGreaterThanCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state184(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state185(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action97(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Action_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Action(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state182(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Action_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state181(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 162 - // RepeatOp = (*) "*" ["("] - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [";"] - // RepeatOp = (*) "*" ["<"] - // RepeatOp = (*) "*" ["=>"] - // RepeatOp = (*) "*" ["=>?"] - // RepeatOp = (*) "*" ["=>@L"] - // RepeatOp = (*) "*" ["=>@R"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "*" ["@L"] - // RepeatOp = (*) "*" ["@R"] - // RepeatOp = (*) "*" ["Escape"] - // RepeatOp = (*) "*" ["Id"] - // RepeatOp = (*) "*" ["MacroId"] - // RepeatOp = (*) "*" ["StringLiteral"] - // RepeatOp = (*) "*" ["if"] - // RepeatOp = (*) "+" ["("] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [";"] - // RepeatOp = (*) "+" ["<"] - // RepeatOp = (*) "+" ["=>"] - // RepeatOp = (*) "+" ["=>?"] - // RepeatOp = (*) "+" ["=>@L"] - // RepeatOp = (*) "+" ["=>@R"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "+" ["@L"] - // RepeatOp = (*) "+" ["@R"] - // RepeatOp = (*) "+" ["Escape"] - // RepeatOp = (*) "+" ["Id"] - // RepeatOp = (*) "+" ["MacroId"] - // RepeatOp = (*) "+" ["StringLiteral"] - // RepeatOp = (*) "+" ["if"] - // RepeatOp = (*) "?" ["("] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [";"] - // RepeatOp = (*) "?" ["<"] - // RepeatOp = (*) "?" ["=>"] - // RepeatOp = (*) "?" ["=>?"] - // RepeatOp = (*) "?" ["=>@L"] - // RepeatOp = (*) "?" ["=>@R"] - // RepeatOp = (*) "?" ["?"] - // RepeatOp = (*) "?" ["@L"] - // RepeatOp = (*) "?" ["@R"] - // RepeatOp = (*) "?" ["Escape"] - // RepeatOp = (*) "?" ["Id"] - // RepeatOp = (*) "?" ["MacroId"] - // RepeatOp = (*) "?" ["StringLiteral"] - // RepeatOp = (*) "?" ["if"] - // Symbol = Symbol0 (*) ["("] - // Symbol = Symbol0 (*) [";"] - // Symbol = Symbol0 (*) ["<"] - // Symbol = Symbol0 (*) ["=>"] - // Symbol = Symbol0 (*) ["=>?"] - // Symbol = Symbol0 (*) ["=>@L"] - // Symbol = Symbol0 (*) ["=>@R"] - // Symbol = Symbol0 (*) ["@L"] - // Symbol = Symbol0 (*) ["@R"] - // Symbol = Symbol0 (*) ["Escape"] - // Symbol = Symbol0 (*) ["Id"] - // Symbol = Symbol0 (*) ["MacroId"] - // Symbol = Symbol0 (*) ["StringLiteral"] - // Symbol = Symbol0 (*) ["if"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["("] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [";"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["<"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>?"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>@L"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["=>@R"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@L"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@R"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Escape"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Id"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["MacroId"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["if"] - // - // "=>@L" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "@L" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "if" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "?" -> Shift(S187) - // "+" -> Shift(S188) - // "Escape" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "*" -> Shift(S186) - // "=>@R" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "(" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "=>" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "MacroId" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "@R" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "StringLiteral" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "<" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "Id" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "=>?" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // ";" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // - // RepeatOp -> S189 - pub fn __state162< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state187(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state188(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state186(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state189(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 163 - // Escape = (*) "Escape" ["("] - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [";"] - // Escape = (*) "Escape" ["<"] - // Escape = (*) "Escape" ["=>"] - // Escape = (*) "Escape" ["=>?"] - // Escape = (*) "Escape" ["=>@L"] - // Escape = (*) "Escape" ["=>@R"] - // Escape = (*) "Escape" ["?"] - // Escape = (*) "Escape" ["@L"] - // Escape = (*) "Escape" ["@R"] - // Escape = (*) "Escape" ["Escape"] - // Escape = (*) "Escape" ["Id"] - // Escape = (*) "Escape" ["MacroId"] - // Escape = (*) "Escape" ["StringLiteral"] - // Escape = (*) "Escape" ["if"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [";"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["=>"] - // Id = (*) "Id" ["=>?"] - // Id = (*) "Id" ["=>@L"] - // Id = (*) "Id" ["=>@R"] - // Id = (*) "Id" ["?"] - // Id = (*) "Id" ["@L"] - // Id = (*) "Id" ["@R"] - // Id = (*) "Id" ["Escape"] - // Id = (*) "Id" ["Id"] - // Id = (*) "Id" ["MacroId"] - // Id = (*) "Id" ["StringLiteral"] - // Id = (*) "Id" ["if"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["("] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [";"] - // NonterminalId = (*) Id ["<"] - // NonterminalId = (*) Id ["=>"] - // NonterminalId = (*) Id ["=>?"] - // NonterminalId = (*) Id ["=>@L"] - // NonterminalId = (*) Id ["=>@R"] - // NonterminalId = (*) Id ["?"] - // NonterminalId = (*) Id ["@L"] - // NonterminalId = (*) Id ["@R"] - // NonterminalId = (*) Id ["Escape"] - // NonterminalId = (*) Id ["Id"] - // NonterminalId = (*) Id ["MacroId"] - // NonterminalId = (*) Id ["StringLiteral"] - // NonterminalId = (*) Id ["if"] - // StringLiteral = (*) "StringLiteral" ["("] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [";"] - // StringLiteral = (*) "StringLiteral" ["<"] - // StringLiteral = (*) "StringLiteral" ["=>"] - // StringLiteral = (*) "StringLiteral" ["=>?"] - // StringLiteral = (*) "StringLiteral" ["=>@L"] - // StringLiteral = (*) "StringLiteral" ["=>@R"] - // StringLiteral = (*) "StringLiteral" ["?"] - // StringLiteral = (*) "StringLiteral" ["@L"] - // StringLiteral = (*) "StringLiteral" ["@R"] - // StringLiteral = (*) "StringLiteral" ["Escape"] - // StringLiteral = (*) "StringLiteral" ["Id"] - // StringLiteral = (*) "StringLiteral" ["MacroId"] - // StringLiteral = (*) "StringLiteral" ["StringLiteral"] - // StringLiteral = (*) "StringLiteral" ["if"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [";"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["if"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" Symbol0 ">" @R [";"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>?"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>@L"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["=>@R"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["if"] - // Symbol1 = @L (*) SymbolKind1 @R ["("] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [";"] - // Symbol1 = @L (*) SymbolKind1 @R ["<"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>?"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>@L"] - // Symbol1 = @L (*) SymbolKind1 @R ["=>@R"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // Symbol1 = @L (*) SymbolKind1 @R ["@L"] - // Symbol1 = @L (*) SymbolKind1 @R ["@R"] - // Symbol1 = @L (*) SymbolKind1 @R ["Escape"] - // Symbol1 = @L (*) SymbolKind1 @R ["Id"] - // Symbol1 = @L (*) SymbolKind1 @R ["MacroId"] - // Symbol1 = @L (*) SymbolKind1 @R ["StringLiteral"] - // Symbol1 = @L (*) SymbolKind1 @R ["if"] - // SymbolKind1 = (*) Escape ["("] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [";"] - // SymbolKind1 = (*) Escape ["<"] - // SymbolKind1 = (*) Escape ["=>"] - // SymbolKind1 = (*) Escape ["=>?"] - // SymbolKind1 = (*) Escape ["=>@L"] - // SymbolKind1 = (*) Escape ["=>@R"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) Escape ["@L"] - // SymbolKind1 = (*) Escape ["@R"] - // SymbolKind1 = (*) Escape ["Escape"] - // SymbolKind1 = (*) Escape ["Id"] - // SymbolKind1 = (*) Escape ["MacroId"] - // SymbolKind1 = (*) Escape ["StringLiteral"] - // SymbolKind1 = (*) Escape ["if"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["("] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [";"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["<"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>@L"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["=>@R"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@L"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@R"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Escape"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Id"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["MacroId"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["StringLiteral"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["if"] - // SymbolKind1 = (*) NonterminalId ["("] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [";"] - // SymbolKind1 = (*) NonterminalId ["<"] - // SymbolKind1 = (*) NonterminalId ["=>"] - // SymbolKind1 = (*) NonterminalId ["=>?"] - // SymbolKind1 = (*) NonterminalId ["=>@L"] - // SymbolKind1 = (*) NonterminalId ["=>@R"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) NonterminalId ["@L"] - // SymbolKind1 = (*) NonterminalId ["@R"] - // SymbolKind1 = (*) NonterminalId ["Escape"] - // SymbolKind1 = (*) NonterminalId ["Id"] - // SymbolKind1 = (*) NonterminalId ["MacroId"] - // SymbolKind1 = (*) NonterminalId ["StringLiteral"] - // SymbolKind1 = (*) NonterminalId ["if"] - // SymbolKind1 = (*) Terminal ["("] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [";"] - // SymbolKind1 = (*) Terminal ["<"] - // SymbolKind1 = (*) Terminal ["=>"] - // SymbolKind1 = (*) Terminal ["=>?"] - // SymbolKind1 = (*) Terminal ["=>@L"] - // SymbolKind1 = (*) Terminal ["=>@R"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) Terminal ["@L"] - // SymbolKind1 = (*) Terminal ["@R"] - // SymbolKind1 = (*) Terminal ["Escape"] - // SymbolKind1 = (*) Terminal ["Id"] - // SymbolKind1 = (*) Terminal ["MacroId"] - // SymbolKind1 = (*) Terminal ["StringLiteral"] - // SymbolKind1 = (*) Terminal ["if"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["("] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [";"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["<"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>@L"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["=>@R"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@L"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@R"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Escape"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Id"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["MacroId"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["StringLiteral"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["if"] - // SymbolKind1 = (*) "@L" ["("] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [";"] - // SymbolKind1 = (*) "@L" ["<"] - // SymbolKind1 = (*) "@L" ["=>"] - // SymbolKind1 = (*) "@L" ["=>?"] - // SymbolKind1 = (*) "@L" ["=>@L"] - // SymbolKind1 = (*) "@L" ["=>@R"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@L" ["@L"] - // SymbolKind1 = (*) "@L" ["@R"] - // SymbolKind1 = (*) "@L" ["Escape"] - // SymbolKind1 = (*) "@L" ["Id"] - // SymbolKind1 = (*) "@L" ["MacroId"] - // SymbolKind1 = (*) "@L" ["StringLiteral"] - // SymbolKind1 = (*) "@L" ["if"] - // SymbolKind1 = (*) "@R" ["("] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [";"] - // SymbolKind1 = (*) "@R" ["<"] - // SymbolKind1 = (*) "@R" ["=>"] - // SymbolKind1 = (*) "@R" ["=>?"] - // SymbolKind1 = (*) "@R" ["=>@L"] - // SymbolKind1 = (*) "@R" ["=>@R"] - // SymbolKind1 = (*) "@R" ["?"] - // SymbolKind1 = (*) "@R" ["@L"] - // SymbolKind1 = (*) "@R" ["@R"] - // SymbolKind1 = (*) "@R" ["Escape"] - // SymbolKind1 = (*) "@R" ["Id"] - // SymbolKind1 = (*) "@R" ["MacroId"] - // SymbolKind1 = (*) "@R" ["StringLiteral"] - // SymbolKind1 = (*) "@R" ["if"] - // Terminal = (*) StringLiteral ["("] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [";"] - // Terminal = (*) StringLiteral ["<"] - // Terminal = (*) StringLiteral ["=>"] - // Terminal = (*) StringLiteral ["=>?"] - // Terminal = (*) StringLiteral ["=>@L"] - // Terminal = (*) StringLiteral ["=>@R"] - // Terminal = (*) StringLiteral ["?"] - // Terminal = (*) StringLiteral ["@L"] - // Terminal = (*) StringLiteral ["@R"] - // Terminal = (*) StringLiteral ["Escape"] - // Terminal = (*) StringLiteral ["Id"] - // Terminal = (*) StringLiteral ["MacroId"] - // Terminal = (*) StringLiteral ["StringLiteral"] - // Terminal = (*) StringLiteral ["if"] - // - // "@R" -> Shift(S197) - // "(" -> Shift(S193) - // "StringLiteral" -> Shift(S192) - // "<" -> Shift(S201) - // "Escape" -> Shift(S191) - // "MacroId" -> Shift(S68) - // "@L" -> Shift(S194) - // "Id" -> Shift(S195) - // - // StringLiteral -> S198 - // SymbolKind1 -> S196 - // NonterminalId -> S203 - // Terminal -> S199 - // MacroId -> S202 - // Escape -> S200 - // Id -> S190 - pub fn __state163< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state197(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state193(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state192(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state201(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state191(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state194(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state195(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state198(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state196(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state203(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state199(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state202(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state200(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state190(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 164 - // Symbol0 = Symbol1 (*) ["("] - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) [";"] - // Symbol0 = Symbol1 (*) ["<"] - // Symbol0 = Symbol1 (*) ["=>"] - // Symbol0 = Symbol1 (*) ["=>?"] - // Symbol0 = Symbol1 (*) ["=>@L"] - // Symbol0 = Symbol1 (*) ["=>@R"] - // Symbol0 = Symbol1 (*) ["?"] - // Symbol0 = Symbol1 (*) ["@L"] - // Symbol0 = Symbol1 (*) ["@R"] - // Symbol0 = Symbol1 (*) ["Escape"] - // Symbol0 = Symbol1 (*) ["Id"] - // Symbol0 = Symbol1 (*) ["MacroId"] - // Symbol0 = Symbol1 (*) ["StringLiteral"] - // Symbol0 = Symbol1 (*) ["if"] - // - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>@L" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "<" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Escape" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "MacroId" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ";" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@L" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "=>@R" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "if" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Id" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@R" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "(" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state164< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 165 - // Symbol* = Symbol* Symbol (*) ["("] - // Symbol* = Symbol* Symbol (*) [";"] - // Symbol* = Symbol* Symbol (*) ["<"] - // Symbol* = Symbol* Symbol (*) ["=>"] - // Symbol* = Symbol* Symbol (*) ["=>?"] - // Symbol* = Symbol* Symbol (*) ["=>@L"] - // Symbol* = Symbol* Symbol (*) ["=>@R"] - // Symbol* = Symbol* Symbol (*) ["@L"] - // Symbol* = Symbol* Symbol (*) ["@R"] - // Symbol* = Symbol* Symbol (*) ["Escape"] - // Symbol* = Symbol* Symbol (*) ["Id"] - // Symbol* = Symbol* Symbol (*) ["MacroId"] - // Symbol* = Symbol* Symbol (*) ["StringLiteral"] - // Symbol* = Symbol* Symbol (*) ["if"] - // - // "<" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "if" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Id" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>@L" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "@L" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Escape" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>?" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "@R" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "(" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // ";" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "MacroId" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "StringLiteral" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "=>@R" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // - pub fn __state165< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 166 - // Alternative* = Alternative* Alternative (*) ["("] - // Alternative* = Alternative* Alternative (*) [";"] - // Alternative* = Alternative* Alternative (*) ["<"] - // Alternative* = Alternative* Alternative (*) ["=>"] - // Alternative* = Alternative* Alternative (*) ["=>?"] - // Alternative* = Alternative* Alternative (*) ["=>@L"] - // Alternative* = Alternative* Alternative (*) ["=>@R"] - // Alternative* = Alternative* Alternative (*) ["@L"] - // Alternative* = Alternative* Alternative (*) ["@R"] - // Alternative* = Alternative* Alternative (*) ["Escape"] - // Alternative* = Alternative* Alternative (*) ["Id"] - // Alternative* = Alternative* Alternative (*) ["MacroId"] - // Alternative* = Alternative* Alternative (*) ["StringLiteral"] - // Alternative* = Alternative* Alternative (*) ["if"] - // Alternative* = Alternative* Alternative (*) ["}"] - // - // "=>" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "=>?" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "StringLiteral" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "<" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "@L" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "MacroId" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "(" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "=>@L" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "}" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "@R" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "Escape" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "if" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "=>@R" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // ";" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // "Id" -> Reduce(Alternative* = Alternative*, Alternative => Call(ActionFn(102));) - // - pub fn __state166< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action102(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 167 - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["("] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R [";"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["<"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>?"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>@L"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["=>@R"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["@L"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["@R"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["Id"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["StringLiteral"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["if"] - // Alternative = @L (*) ExprSymbol ("if" )? Action? ";" @R ["}"] - // ExprSymbol = (*) Symbol* [";"] - // ExprSymbol = (*) Symbol* ["=>"] - // ExprSymbol = (*) Symbol* ["=>?"] - // ExprSymbol = (*) Symbol* ["=>@L"] - // ExprSymbol = (*) Symbol* ["=>@R"] - // ExprSymbol = (*) Symbol* ["if"] - // Symbol* = (*) ["("] - // Symbol* = (*) [";"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["=>"] - // Symbol* = (*) ["=>?"] - // Symbol* = (*) ["=>@L"] - // Symbol* = (*) ["=>@R"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) ["if"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [";"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["=>"] - // Symbol* = (*) Symbol* Symbol ["=>?"] - // Symbol* = (*) Symbol* Symbol ["=>@L"] - // Symbol* = (*) Symbol* Symbol ["=>@R"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["if"] - // - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "if" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "=>?" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ";" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S153 - // ExprSymbol -> S204 - pub fn __state167< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state153(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state204(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 168 - // Alternatives = "{" Alternative* "}" (*) ";" [EOF] - // Alternatives = "{" Alternative* "}" (*) ";" ["Escape"] - // Alternatives = "{" Alternative* "}" (*) ";" ["Id"] - // Alternatives = "{" Alternative* "}" (*) ";" ["MacroId"] - // Alternatives = "{" Alternative* "}" (*) ";" ["extern"] - // Alternatives = "{" Alternative* "}" (*) ";" ["pub"] - // Alternatives = "{" Alternative* "}" (*) ";" ["use"] - // - // ";" -> Shift(S205) - // - pub fn __state168< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state205(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 169 - // TypeRef = Path (*) ["{"] - // TypeRef = Path (*) "<" Comma ">" ["{"] - // - // "<" -> Shift(S206) - // "{" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state169< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state206(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 170 - // Escape = "Escape" (*) ["{"] - // - // "{" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state170< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 171 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" ["{"] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S207 - // ( ",")* -> S60 - pub fn __state171< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state207(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 172 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id ["{"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S208 - pub fn __state172< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state208(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 173 - // TypeRef = Escape (*) ["{"] - // - // "{" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state173< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 174 - // @R = (*) ["{"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef (*) @R "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Reduce(@R = => Lookbehind;) - // - // @R -> S209 - pub fn __state174< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym8.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym9 = &mut Some(__nt); - __result = try!(__state209(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 175 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef ["{"] - // - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S59 - // Lifetime? -> S210 - pub fn __state175< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state210(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 176 - // Id = "Id" (*) ["="] - // - // "=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state176< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 177 - // @R = (*) ["="] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["enum"] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["type"] - // - // "=" -> Reduce(@R = => Lookbehind;) - // - // @R -> S211 - pub fn __state177< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state211(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 178 - // Cond = @L (*) NonterminalId CondOp StringLiteral @R [";"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>?"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>@L"] - // Cond = @L (*) NonterminalId CondOp StringLiteral @R ["=>@R"] - // Id = (*) "Id" ["!="] - // Id = (*) "Id" ["!~"] - // Id = (*) "Id" ["=="] - // Id = (*) "Id" ["~~"] - // NonterminalId = (*) Id ["!="] - // NonterminalId = (*) Id ["!~"] - // NonterminalId = (*) Id ["=="] - // NonterminalId = (*) Id ["~~"] - // - // "Id" -> Shift(S213) - // - // Id -> S214 - // NonterminalId -> S212 - pub fn __state178< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state213(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state214(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state212(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 179 - // ("if" ) = "if" Cond (*) [";"] - // ("if" ) = "if" Cond (*) ["=>"] - // ("if" ) = "if" Cond (*) ["=>?"] - // ("if" ) = "if" Cond (*) ["=>@L"] - // ("if" ) = "if" Cond (*) ["=>@R"] - // - // "=>@R" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // "=>" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // ";" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // "=>@L" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // "=>?" -> Reduce(("if" ) = "if", Cond => Call(ActionFn(100));) - // - pub fn __state179< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action100(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 180 - // Action = "=>@R" (*) [";"] - // - // ";" -> Reduce(Action = "=>@R" => Call(ActionFn(20));) - // - pub fn __state180< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action20(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 181 - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R [EOF] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["extern"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["pub"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["use"] - // - // ";" -> Shift(S215) - // - pub fn __state181< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state215(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 182 - // Action? = Action (*) [";"] - // - // ";" -> Reduce(Action? = Action => Call(ActionFn(96));) - // - pub fn __state182< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action96(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 183 - // Action = "=>?" (*) [";"] - // - // ";" -> Reduce(Action = "=>?" => Call(ActionFn(22));) - // - pub fn __state183< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action22(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 184 - // Action = "=>" (*) [";"] - // - // ";" -> Reduce(Action = "=>" => Call(ActionFn(21));) - // - pub fn __state184< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action21(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 185 - // Action = "=>@L" (*) [";"] - // - // ";" -> Reduce(Action = "=>@L" => Call(ActionFn(19));) - // - pub fn __state185< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action19(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Action(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 186 - // RepeatOp = "*" (*) ["("] - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) [";"] - // RepeatOp = "*" (*) ["<"] - // RepeatOp = "*" (*) ["=>"] - // RepeatOp = "*" (*) ["=>?"] - // RepeatOp = "*" (*) ["=>@L"] - // RepeatOp = "*" (*) ["=>@R"] - // RepeatOp = "*" (*) ["?"] - // RepeatOp = "*" (*) ["@L"] - // RepeatOp = "*" (*) ["@R"] - // RepeatOp = "*" (*) ["Escape"] - // RepeatOp = "*" (*) ["Id"] - // RepeatOp = "*" (*) ["MacroId"] - // RepeatOp = "*" (*) ["StringLiteral"] - // RepeatOp = "*" (*) ["if"] - // - // "if" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@L" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ";" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@R" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "<" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Escape" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Id" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "StringLiteral" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>@R" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "=>@L" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "(" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "MacroId" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state186< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 187 - // RepeatOp = "?" (*) ["("] - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) [";"] - // RepeatOp = "?" (*) ["<"] - // RepeatOp = "?" (*) ["=>"] - // RepeatOp = "?" (*) ["=>?"] - // RepeatOp = "?" (*) ["=>@L"] - // RepeatOp = "?" (*) ["=>@R"] - // RepeatOp = "?" (*) ["?"] - // RepeatOp = "?" (*) ["@L"] - // RepeatOp = "?" (*) ["@R"] - // RepeatOp = "?" (*) ["Escape"] - // RepeatOp = "?" (*) ["Id"] - // RepeatOp = "?" (*) ["MacroId"] - // RepeatOp = "?" (*) ["StringLiteral"] - // RepeatOp = "?" (*) ["if"] - // - // "StringLiteral" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "if" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>@L" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "MacroId" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "Escape" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ";" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@L" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "(" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "<" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>@R" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "Id" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "=>?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@R" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state187< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 188 - // RepeatOp = "+" (*) ["("] - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) [";"] - // RepeatOp = "+" (*) ["<"] - // RepeatOp = "+" (*) ["=>"] - // RepeatOp = "+" (*) ["=>?"] - // RepeatOp = "+" (*) ["=>@L"] - // RepeatOp = "+" (*) ["=>@R"] - // RepeatOp = "+" (*) ["?"] - // RepeatOp = "+" (*) ["@L"] - // RepeatOp = "+" (*) ["@R"] - // RepeatOp = "+" (*) ["Escape"] - // RepeatOp = "+" (*) ["Id"] - // RepeatOp = "+" (*) ["MacroId"] - // RepeatOp = "+" (*) ["StringLiteral"] - // RepeatOp = "+" (*) ["if"] - // - // "=>" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Escape" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Id" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@L" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "if" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ";" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "=>?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "(" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "MacroId" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "=>@L" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "<" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "=>@R" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@R" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "StringLiteral" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state188< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 189 - // @R = (*) ["("] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["("] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R [";"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["<"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>@L"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["=>@R"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@L"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@R"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Escape"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Id"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["MacroId"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["StringLiteral"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["if"] - // - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // - // @R -> S216 - pub fn __state189< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state216(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 190 - // NonterminalId = Id (*) ["("] - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [";"] - // NonterminalId = Id (*) ["<"] - // NonterminalId = Id (*) ["=>"] - // NonterminalId = Id (*) ["=>?"] - // NonterminalId = Id (*) ["=>@L"] - // NonterminalId = Id (*) ["=>@R"] - // NonterminalId = Id (*) ["?"] - // NonterminalId = Id (*) ["@L"] - // NonterminalId = Id (*) ["@R"] - // NonterminalId = Id (*) ["Escape"] - // NonterminalId = Id (*) ["Id"] - // NonterminalId = Id (*) ["MacroId"] - // NonterminalId = Id (*) ["StringLiteral"] - // NonterminalId = Id (*) ["if"] - // - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>@L" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@L" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "MacroId" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "if" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ";" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@R" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Id" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "<" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "StringLiteral" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "=>@R" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "(" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Escape" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state190< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 191 - // Escape = "Escape" (*) ["("] - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) [";"] - // Escape = "Escape" (*) ["<"] - // Escape = "Escape" (*) ["=>"] - // Escape = "Escape" (*) ["=>?"] - // Escape = "Escape" (*) ["=>@L"] - // Escape = "Escape" (*) ["=>@R"] - // Escape = "Escape" (*) ["?"] - // Escape = "Escape" (*) ["@L"] - // Escape = "Escape" (*) ["@R"] - // Escape = "Escape" (*) ["Escape"] - // Escape = "Escape" (*) ["Id"] - // Escape = "Escape" (*) ["MacroId"] - // Escape = "Escape" (*) ["StringLiteral"] - // Escape = "Escape" (*) ["if"] - // - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>@R" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "if" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Id" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "(" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>@L" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "MacroId" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "StringLiteral" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ";" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "=>?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@R" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@L" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Escape" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "<" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state191< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 192 - // StringLiteral = "StringLiteral" (*) ["("] - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) [";"] - // StringLiteral = "StringLiteral" (*) ["<"] - // StringLiteral = "StringLiteral" (*) ["=>"] - // StringLiteral = "StringLiteral" (*) ["=>?"] - // StringLiteral = "StringLiteral" (*) ["=>@L"] - // StringLiteral = "StringLiteral" (*) ["=>@R"] - // StringLiteral = "StringLiteral" (*) ["?"] - // StringLiteral = "StringLiteral" (*) ["@L"] - // StringLiteral = "StringLiteral" (*) ["@R"] - // StringLiteral = "StringLiteral" (*) ["Escape"] - // StringLiteral = "StringLiteral" (*) ["Id"] - // StringLiteral = "StringLiteral" (*) ["MacroId"] - // StringLiteral = "StringLiteral" (*) ["StringLiteral"] - // StringLiteral = "StringLiteral" (*) ["if"] - // - // "StringLiteral" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "(" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "MacroId" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "if" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "Escape" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ";" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "Id" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "<" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state192< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 193 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["("] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" [";"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["<"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>?"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>@L"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["=>@R"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@L"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@R"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Escape"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Id"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["MacroId"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["if"] - // - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S218 - // ExprSymbol -> S217 - pub fn __state193< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state217(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 194 - // SymbolKind1 = "@L" (*) ["("] - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) [";"] - // SymbolKind1 = "@L" (*) ["<"] - // SymbolKind1 = "@L" (*) ["=>"] - // SymbolKind1 = "@L" (*) ["=>?"] - // SymbolKind1 = "@L" (*) ["=>@L"] - // SymbolKind1 = "@L" (*) ["=>@R"] - // SymbolKind1 = "@L" (*) ["?"] - // SymbolKind1 = "@L" (*) ["@L"] - // SymbolKind1 = "@L" (*) ["@R"] - // SymbolKind1 = "@L" (*) ["Escape"] - // SymbolKind1 = "@L" (*) ["Id"] - // SymbolKind1 = "@L" (*) ["MacroId"] - // SymbolKind1 = "@L" (*) ["StringLiteral"] - // SymbolKind1 = "@L" (*) ["if"] - // - // "=>@L" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "<" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "if" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "MacroId" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "@L" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "@R" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "(" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Escape" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Id" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "=>" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "=>?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ";" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "=>@R" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state194< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 195 - // Id = "Id" (*) ["("] - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [";"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["=>"] - // Id = "Id" (*) ["=>?"] - // Id = "Id" (*) ["=>@L"] - // Id = "Id" (*) ["=>@R"] - // Id = "Id" (*) ["?"] - // Id = "Id" (*) ["@L"] - // Id = "Id" (*) ["@R"] - // Id = "Id" (*) ["Escape"] - // Id = "Id" (*) ["Id"] - // Id = "Id" (*) ["MacroId"] - // Id = "Id" (*) ["StringLiteral"] - // Id = "Id" (*) ["if"] - // - // ";" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@L" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "StringLiteral" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@R" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>@R" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Escape" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Id" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "if" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "MacroId" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "=>@L" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state195< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 196 - // @R = (*) ["("] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol1 = @L SymbolKind1 (*) @R ["("] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R [";"] - // Symbol1 = @L SymbolKind1 (*) @R ["<"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>?"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>@L"] - // Symbol1 = @L SymbolKind1 (*) @R ["=>@R"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["@L"] - // Symbol1 = @L SymbolKind1 (*) @R ["@R"] - // Symbol1 = @L SymbolKind1 (*) @R ["Escape"] - // Symbol1 = @L SymbolKind1 (*) @R ["Id"] - // Symbol1 = @L SymbolKind1 (*) @R ["MacroId"] - // Symbol1 = @L SymbolKind1 (*) @R ["StringLiteral"] - // Symbol1 = @L SymbolKind1 (*) @R ["if"] - // - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // - // @R -> S219 - pub fn __state196< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state219(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 197 - // SymbolKind1 = "@R" (*) ["("] - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) [";"] - // SymbolKind1 = "@R" (*) ["<"] - // SymbolKind1 = "@R" (*) ["=>"] - // SymbolKind1 = "@R" (*) ["=>?"] - // SymbolKind1 = "@R" (*) ["=>@L"] - // SymbolKind1 = "@R" (*) ["=>@R"] - // SymbolKind1 = "@R" (*) ["?"] - // SymbolKind1 = "@R" (*) ["@L"] - // SymbolKind1 = "@R" (*) ["@R"] - // SymbolKind1 = "@R" (*) ["Escape"] - // SymbolKind1 = "@R" (*) ["Id"] - // SymbolKind1 = "@R" (*) ["MacroId"] - // SymbolKind1 = "@R" (*) ["StringLiteral"] - // SymbolKind1 = "@R" (*) ["if"] - // - // "=>?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Escape" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ";" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@R" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Id" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "MacroId" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@L" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "(" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "=>" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "<" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "=>@L" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "if" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "=>@R" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state197< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 198 - // Terminal = StringLiteral (*) ["("] - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) [";"] - // Terminal = StringLiteral (*) ["<"] - // Terminal = StringLiteral (*) ["=>"] - // Terminal = StringLiteral (*) ["=>?"] - // Terminal = StringLiteral (*) ["=>@L"] - // Terminal = StringLiteral (*) ["=>@R"] - // Terminal = StringLiteral (*) ["?"] - // Terminal = StringLiteral (*) ["@L"] - // Terminal = StringLiteral (*) ["@R"] - // Terminal = StringLiteral (*) ["Escape"] - // Terminal = StringLiteral (*) ["Id"] - // Terminal = StringLiteral (*) ["MacroId"] - // Terminal = StringLiteral (*) ["StringLiteral"] - // Terminal = StringLiteral (*) ["if"] - // - // "Escape" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "MacroId" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>@L" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "if" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "Id" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "(" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // ";" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@L" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>@R" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "StringLiteral" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@R" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "<" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "=>" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state198< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 199 - // SymbolKind1 = Terminal (*) ["("] - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) [";"] - // SymbolKind1 = Terminal (*) ["<"] - // SymbolKind1 = Terminal (*) ["=>"] - // SymbolKind1 = Terminal (*) ["=>?"] - // SymbolKind1 = Terminal (*) ["=>@L"] - // SymbolKind1 = Terminal (*) ["=>@R"] - // SymbolKind1 = Terminal (*) ["?"] - // SymbolKind1 = Terminal (*) ["@L"] - // SymbolKind1 = Terminal (*) ["@R"] - // SymbolKind1 = Terminal (*) ["Escape"] - // SymbolKind1 = Terminal (*) ["Id"] - // SymbolKind1 = Terminal (*) ["MacroId"] - // SymbolKind1 = Terminal (*) ["StringLiteral"] - // SymbolKind1 = Terminal (*) ["if"] - // - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "MacroId" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "<" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Escape" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>@L" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Id" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // ";" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "if" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "StringLiteral" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>@R" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "=>?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@L" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@R" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "(" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state199< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 200 - // SymbolKind1 = Escape (*) ["("] - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) [";"] - // SymbolKind1 = Escape (*) ["<"] - // SymbolKind1 = Escape (*) ["=>"] - // SymbolKind1 = Escape (*) ["=>?"] - // SymbolKind1 = Escape (*) ["=>@L"] - // SymbolKind1 = Escape (*) ["=>@R"] - // SymbolKind1 = Escape (*) ["?"] - // SymbolKind1 = Escape (*) ["@L"] - // SymbolKind1 = Escape (*) ["@R"] - // SymbolKind1 = Escape (*) ["Escape"] - // SymbolKind1 = Escape (*) ["Id"] - // SymbolKind1 = Escape (*) ["MacroId"] - // SymbolKind1 = Escape (*) ["StringLiteral"] - // SymbolKind1 = Escape (*) ["if"] - // - // "StringLiteral" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Escape" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@L" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "if" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Id" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>@L" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "<" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "=>@R" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "(" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "MacroId" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // ";" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@R" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state200< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 201 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [";"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["if"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) Symbol0 ">" @R [";"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["if"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S220 - // @L -> S221 - // Symbol0 -> S222 - pub fn __state201< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state221(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state222(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 202 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["("] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" [";"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["<"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>?"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>@L"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["=>@R"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@L"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@R"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Escape"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Id"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["MacroId"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["StringLiteral"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["if"] - // - // "<" -> Shift(S223) - // - pub fn __state202< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state223(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 203 - // SymbolKind1 = NonterminalId (*) ["("] - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) [";"] - // SymbolKind1 = NonterminalId (*) ["<"] - // SymbolKind1 = NonterminalId (*) ["=>"] - // SymbolKind1 = NonterminalId (*) ["=>?"] - // SymbolKind1 = NonterminalId (*) ["=>@L"] - // SymbolKind1 = NonterminalId (*) ["=>@R"] - // SymbolKind1 = NonterminalId (*) ["?"] - // SymbolKind1 = NonterminalId (*) ["@L"] - // SymbolKind1 = NonterminalId (*) ["@R"] - // SymbolKind1 = NonterminalId (*) ["Escape"] - // SymbolKind1 = NonterminalId (*) ["Id"] - // SymbolKind1 = NonterminalId (*) ["MacroId"] - // SymbolKind1 = NonterminalId (*) ["StringLiteral"] - // SymbolKind1 = NonterminalId (*) ["if"] - // - // "=>?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "=>@R" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "=>" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Escape" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Id" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "<" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "=>@L" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "StringLiteral" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "@L" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ";" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "MacroId" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "if" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "(" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "@R" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state203< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 204 - // ("if" ) = (*) "if" Cond [";"] - // ("if" ) = (*) "if" Cond ["=>"] - // ("if" ) = (*) "if" Cond ["=>?"] - // ("if" ) = (*) "if" Cond ["=>@L"] - // ("if" ) = (*) "if" Cond ["=>@R"] - // ("if" )? = (*) [";"] - // ("if" )? = (*) ["=>"] - // ("if" )? = (*) ["=>?"] - // ("if" )? = (*) ["=>@L"] - // ("if" )? = (*) ["=>@R"] - // ("if" )? = (*) ("if" ) [";"] - // ("if" )? = (*) ("if" ) ["=>"] - // ("if" )? = (*) ("if" ) ["=>?"] - // ("if" )? = (*) ("if" ) ["=>@L"] - // ("if" )? = (*) ("if" ) ["=>@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["("] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R [";"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["<"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>?"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>@L"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["=>@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["@L"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["@R"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["StringLiteral"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["if"] - // Alternative = @L ExprSymbol (*) ("if" )? Action? ";" @R ["}"] - // - // "=>@L" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "if" -> Shift(S160) - // "=>?" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>" -> Reduce(("if" )? = => Call(ActionFn(99));) - // "=>@R" -> Reduce(("if" )? = => Call(ActionFn(99));) - // ";" -> Reduce(("if" )? = => Call(ActionFn(99));) - // - // ("if" )? -> S224 - // ("if" ) -> S159 - pub fn __state204< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::If(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state160(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action99(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_22if_22_20_3cCond_3e_29_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state224(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_22if_22_20_3cCond_3e_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state159(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 205 - // Alternatives = "{" Alternative* "}" ";" (*) [EOF] - // Alternatives = "{" Alternative* "}" ";" (*) ["Escape"] - // Alternatives = "{" Alternative* "}" ";" (*) ["Id"] - // Alternatives = "{" Alternative* "}" ";" (*) ["MacroId"] - // Alternatives = "{" Alternative* "}" ";" (*) ["extern"] - // Alternatives = "{" Alternative* "}" ";" (*) ["pub"] - // Alternatives = "{" Alternative* "}" ";" (*) ["use"] - // - // "pub" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "use" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "Id" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // EOF -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "Escape" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "extern" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // "MacroId" -> Reduce(Alternatives = "{", Alternative*, "}", ";" => Call(ActionFn(17));) - // - pub fn __state205< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action17(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternatives(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 206 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" ["{"] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S225 - // ( ",")* -> S81 - pub fn __state206< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state225(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 207 - // TypeRef = "(" Comma (*) ")" ["{"] - // - // ")" -> Shift(S226) - // - pub fn __state207< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state226(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 208 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["{"] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id ["{"] - // - // "Id" -> Shift(S228) - // - // Id -> S227 - // ( "::") -> S80 - pub fn __state208< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state228(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state227(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 209 - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R (*) "{" Comma "}" AssociatedType* "}" ["use"] - // - // "{" -> Shift(S229) - // - pub fn __state209< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym10 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state229(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 210 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef ["{"] - // - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S230 - pub fn __state210< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state230(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 211 - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["enum"] - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["type"] - // - // "=" -> Shift(S231) - // - pub fn __state211< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Equals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state231(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 212 - // Cond = @L NonterminalId (*) CondOp StringLiteral @R [";"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>?"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>@L"] - // Cond = @L NonterminalId (*) CondOp StringLiteral @R ["=>@R"] - // CondOp = (*) "!=" ["StringLiteral"] - // CondOp = (*) "!~" ["StringLiteral"] - // CondOp = (*) "==" ["StringLiteral"] - // CondOp = (*) "~~" ["StringLiteral"] - // - // "!=" -> Shift(S236) - // "==" -> Shift(S233) - // "!~" -> Shift(S232) - // "~~" -> Shift(S234) - // - // CondOp -> S235 - pub fn __state212< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::BangEquals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state236(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::EqualsEquals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state233(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::BangTilde(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state232(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, __tok @ Tok::TildeTilde(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state234(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::CondOp(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state235(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 213 - // Id = "Id" (*) ["!="] - // Id = "Id" (*) ["!~"] - // Id = "Id" (*) ["=="] - // Id = "Id" (*) ["~~"] - // - // "!=" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "~~" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "==" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "!~" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state213< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::BangEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::TildeTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::EqualsEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::BangTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 214 - // NonterminalId = Id (*) ["!="] - // NonterminalId = Id (*) ["!~"] - // NonterminalId = Id (*) ["=="] - // NonterminalId = Id (*) ["~~"] - // - // "~~" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "!=" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "==" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "!~" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state214< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::TildeTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::BangEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::EqualsEquals(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::BangTilde(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 215 - // @R = (*) [EOF] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["extern"] - // @R = (*) ["pub"] - // @R = (*) ["use"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R [EOF] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["extern"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["pub"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["use"] - // - // "Id" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "use" -> Reduce(@R = => Lookbehind;) - // "extern" -> Reduce(@R = => Lookbehind;) - // "pub" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // EOF -> Reduce(@R = => Lookbehind;) - // - // @R -> S237 - pub fn __state215< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Use(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Extern(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Pub(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - None => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state237(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 216 - // Symbol0 = Symbol0 RepeatOp @R (*) ["("] - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) [";"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["<"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>?"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>@L"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["=>@R"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@L"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@R"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Escape"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Id"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["MacroId"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["StringLiteral"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["if"] - // - // "=>@L" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "=>?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "(" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "=>" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "Escape" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "if" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "<" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@L" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "Id" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "=>@R" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@R" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "MacroId" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ";" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state216< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 217 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["("] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" [";"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["<"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>?"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>@L"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["=>@R"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@L"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@R"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Escape"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Id"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["MacroId"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["StringLiteral"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["if"] - // - // ")" -> Shift(S238) - // - pub fn __state217< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state238(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 218 - // @L = (*) ["("] - // @L = (*) ["<"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // ExprSymbol = Symbol* (*) [")"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [")"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["("] - // Symbol = (*) @L "<" Symbol0 ">" @R [")"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["<"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@L"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["@R"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Escape"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["Id"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["MacroId"] - // Symbol = (*) @L "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol = (*) Symbol0 ["("] - // Symbol = (*) Symbol0 [")"] - // Symbol = (*) Symbol0 ["<"] - // Symbol = (*) Symbol0 ["@L"] - // Symbol = (*) Symbol0 ["@R"] - // Symbol = (*) Symbol0 ["Escape"] - // Symbol = (*) Symbol0 ["Id"] - // Symbol = (*) Symbol0 ["MacroId"] - // Symbol = (*) Symbol0 ["StringLiteral"] - // Symbol* = Symbol* (*) Symbol ["("] - // Symbol* = Symbol* (*) Symbol [")"] - // Symbol* = Symbol* (*) Symbol ["<"] - // Symbol* = Symbol* (*) Symbol ["@L"] - // Symbol* = Symbol* (*) Symbol ["@R"] - // Symbol* = Symbol* (*) Symbol ["Escape"] - // Symbol* = Symbol* (*) Symbol ["Id"] - // Symbol* = Symbol* (*) Symbol ["MacroId"] - // Symbol* = Symbol* (*) Symbol ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["("] - // Symbol0 = (*) Symbol0 RepeatOp @R [")"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["<"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@L"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["@R"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Escape"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["Id"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["MacroId"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["StringLiteral"] - // Symbol0 = (*) Symbol1 ["("] - // Symbol0 = (*) Symbol1 [")"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 ["<"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol0 = (*) Symbol1 ["@L"] - // Symbol0 = (*) Symbol1 ["@R"] - // Symbol0 = (*) Symbol1 ["Escape"] - // Symbol0 = (*) Symbol1 ["Id"] - // Symbol0 = (*) Symbol1 ["MacroId"] - // Symbol0 = (*) Symbol1 ["StringLiteral"] - // Symbol1 = (*) @L SymbolKind1 @R ["("] - // Symbol1 = (*) @L SymbolKind1 @R [")"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R ["<"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["@L"] - // Symbol1 = (*) @L SymbolKind1 @R ["@R"] - // Symbol1 = (*) @L SymbolKind1 @R ["Escape"] - // Symbol1 = (*) @L SymbolKind1 @R ["Id"] - // Symbol1 = (*) @L SymbolKind1 @R ["MacroId"] - // Symbol1 = (*) @L SymbolKind1 @R ["StringLiteral"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // ")" -> Reduce(ExprSymbol = Symbol* => Call(ActionFn(28));) - // "@L" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S240 - // Symbol -> S241 - // Symbol0 -> S239 - // @L -> S242 - pub fn __state218< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action28(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExprSymbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state240(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state241(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state239(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state242(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 219 - // Symbol1 = @L SymbolKind1 @R (*) ["("] - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) [";"] - // Symbol1 = @L SymbolKind1 @R (*) ["<"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>?"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>@L"] - // Symbol1 = @L SymbolKind1 @R (*) ["=>@R"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // Symbol1 = @L SymbolKind1 @R (*) ["@L"] - // Symbol1 = @L SymbolKind1 @R (*) ["@R"] - // Symbol1 = @L SymbolKind1 @R (*) ["Escape"] - // Symbol1 = @L SymbolKind1 @R (*) ["Id"] - // Symbol1 = @L SymbolKind1 @R (*) ["MacroId"] - // Symbol1 = @L SymbolKind1 @R (*) ["StringLiteral"] - // Symbol1 = @L SymbolKind1 @R (*) ["if"] - // - // "=>" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "MacroId" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "=>@R" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "=>@L" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@R" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "<" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Id" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "(" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Escape" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "=>?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ";" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "StringLiteral" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "if" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@L" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state219< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 220 - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) [">"] - // Symbol0 = Symbol1 (*) ["?"] - // - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ">" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state220< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 221 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [":"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [";"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["if"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "Id" -> Shift(S249) - // "Escape" -> Shift(S250) - // "@R" -> Shift(S255) - // "@L" -> Shift(S246) - // "(" -> Shift(S248) - // "StringLiteral" -> Shift(S244) - // "MacroId" -> Shift(S68) - // - // Terminal -> S243 - // Id -> S247 - // Escape -> S252 - // MacroId -> S245 - // SymbolKind1 -> S251 - // StringLiteral -> S253 - // NonterminalId -> S254 - pub fn __state221< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state249(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Terminal(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Id(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state247(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::MacroId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 222 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" Symbol0 (*) ">" @R [";"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>?"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>@L"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["=>@R"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["if"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // ">" -> Shift(S258) - // "*" -> Shift(S257) - // "?" -> Shift(S259) - // "+" -> Shift(S260) - // - // RepeatOp -> S256 - pub fn __state222< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state258(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 223 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["("] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" [";"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["<"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>?"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>@L"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["=>@R"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@L"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@R"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Escape"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Id"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["MacroId"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["StringLiteral"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["if"] - // - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // Comma -> S262 - // ( ",")* -> S261 - pub fn __state223< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state262(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 224 - // Action = (*) "=>" [";"] - // Action = (*) "=>?" [";"] - // Action = (*) "=>@L" [";"] - // Action = (*) "=>@R" [";"] - // Action? = (*) [";"] - // Action? = (*) Action [";"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["("] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R [";"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["<"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>?"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["@L"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["@R"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["if"] - // Alternative = @L ExprSymbol ("if" )? (*) Action? ";" @R ["}"] - // - // "=>?" -> Shift(S183) - // "=>@R" -> Shift(S180) - // ";" -> Reduce(Action? = => Call(ActionFn(97));) - // "=>" -> Shift(S184) - // "=>@L" -> Shift(S185) - // - // Action? -> S263 - // Action -> S182 - pub fn __state224< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state183(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state180(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::EqualsGreaterThanCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state184(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::EqualsGreaterThanLookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state185(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = super::__action97(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Action_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Action_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state263(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Action(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state182(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 225 - // TypeRef = Path "<" Comma (*) ">" ["{"] - // - // ">" -> Shift(S264) - // - pub fn __state225< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state264(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 226 - // TypeRef = "(" Comma ")" (*) ["{"] - // - // "{" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state226< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 227 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) ["{"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // - pub fn __state227< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 228 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["{"] - // - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state228< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 229 - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // Comma = (*) ( ",")* Conversion? ["}"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" (*) Comma "}" AssociatedType* "}" ["use"] - // - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(153));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(153));) - // - // ( ",")* -> S265 - // Comma -> S266 - pub fn __state229< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action153(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action153(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym10.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt) => { - let __sym11 = &mut Some(__nt); - __result = try!(__state265(text, __lookbehind, __lookahead, __tokens, __sym11)); - } - __Nonterminal::Comma_3cConversion_3e(__nt) => { - let __sym11 = &mut Some(__nt); - __result = try!(__state266(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 230 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" ["{"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id ["{"] - // TypeRef = (*) Escape ["{"] - // TypeRef = (*) Path ["{"] - // TypeRef = (*) Path "<" Comma ">" ["{"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef ["{"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef ["{"] - // TypeRef = (*) "(" Comma ")" ["{"] - // - // "&" -> Shift(S175) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S170) - // "(" -> Shift(S171) - // "::" -> Shift(S50) - // - // Escape -> S173 - // TypeRef -> S267 - // Path -> S169 - // "::"? -> S172 - pub fn __state230< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state175(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state170(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state171(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state173(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state267(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state169(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state172(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 231 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["enum"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["type"] - // Escape = (*) "Escape" [";"] - // Path = (*) "::"? ( "::")* Id [";"] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [";"] - // TypeRef = (*) Path [";"] - // TypeRef = (*) Path "<" Comma ">" [";"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [";"] - // TypeRef = (*) "(" Comma ")" [";"] - // - // "Escape" -> Shift(S268) - // "::" -> Shift(S50) - // "&" -> Shift(S273) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S270) - // - // "::"? -> S272 - // TypeRef -> S269 - // Escape -> S271 - // Path -> S274 - pub fn __state231< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state268(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state273(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state270(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state272(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state269(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::Escape(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state271(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Path(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state274(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 232 - // CondOp = "!~" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "!~" => Call(ActionFn(27));) - // - pub fn __state232< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action27(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 233 - // CondOp = "==" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "==" => Call(ActionFn(24));) - // - pub fn __state233< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action24(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 234 - // CondOp = "~~" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "~~" => Call(ActionFn(26));) - // - pub fn __state234< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action26(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 235 - // Cond = @L NonterminalId CondOp (*) StringLiteral @R [";"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>?"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>@L"] - // Cond = @L NonterminalId CondOp (*) StringLiteral @R ["=>@R"] - // StringLiteral = (*) "StringLiteral" [";"] - // StringLiteral = (*) "StringLiteral" ["=>"] - // StringLiteral = (*) "StringLiteral" ["=>?"] - // StringLiteral = (*) "StringLiteral" ["=>@L"] - // StringLiteral = (*) "StringLiteral" ["=>@R"] - // - // "StringLiteral" -> Shift(S275) - // - // StringLiteral -> S276 - pub fn __state235< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state275(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state276(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 236 - // CondOp = "!=" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(CondOp = "!=" => Call(ActionFn(25));) - // - pub fn __state236< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action25(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::CondOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 237 - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) [EOF] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["extern"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["pub"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["use"] - // - // "use" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "extern" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "pub" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Id" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // EOF -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Escape" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "MacroId" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // - pub fn __state237< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 238 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["("] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) [";"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["<"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>?"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>@L"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["=>@R"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@L"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@R"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Escape"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Id"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["MacroId"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["StringLiteral"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["if"] - // - // "=>@L" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "=>@R" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Escape" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@R" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "(" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "StringLiteral" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "=>" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "MacroId" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Id" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "if" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ";" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "<" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@L" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "=>?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state238< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 239 - // RepeatOp = (*) "*" ["("] - // RepeatOp = (*) "*" [")"] - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" ["<"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "*" ["@L"] - // RepeatOp = (*) "*" ["@R"] - // RepeatOp = (*) "*" ["Escape"] - // RepeatOp = (*) "*" ["Id"] - // RepeatOp = (*) "*" ["MacroId"] - // RepeatOp = (*) "*" ["StringLiteral"] - // RepeatOp = (*) "+" ["("] - // RepeatOp = (*) "+" [")"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" ["<"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "+" ["@L"] - // RepeatOp = (*) "+" ["@R"] - // RepeatOp = (*) "+" ["Escape"] - // RepeatOp = (*) "+" ["Id"] - // RepeatOp = (*) "+" ["MacroId"] - // RepeatOp = (*) "+" ["StringLiteral"] - // RepeatOp = (*) "?" ["("] - // RepeatOp = (*) "?" [")"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" ["<"] - // RepeatOp = (*) "?" ["?"] - // RepeatOp = (*) "?" ["@L"] - // RepeatOp = (*) "?" ["@R"] - // RepeatOp = (*) "?" ["Escape"] - // RepeatOp = (*) "?" ["Id"] - // RepeatOp = (*) "?" ["MacroId"] - // RepeatOp = (*) "?" ["StringLiteral"] - // Symbol = Symbol0 (*) ["("] - // Symbol = Symbol0 (*) [")"] - // Symbol = Symbol0 (*) ["<"] - // Symbol = Symbol0 (*) ["@L"] - // Symbol = Symbol0 (*) ["@R"] - // Symbol = Symbol0 (*) ["Escape"] - // Symbol = Symbol0 (*) ["Id"] - // Symbol = Symbol0 (*) ["MacroId"] - // Symbol = Symbol0 (*) ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["("] - // Symbol0 = Symbol0 (*) RepeatOp @R [")"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["<"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@L"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["@R"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Escape"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["Id"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["MacroId"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["StringLiteral"] - // - // "Escape" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "@L" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "Id" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "MacroId" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "+" -> Shift(S278) - // ")" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "<" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "StringLiteral" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "(" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // "?" -> Shift(S280) - // "*" -> Shift(S279) - // "@R" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // - // RepeatOp -> S277 - pub fn __state239< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state278(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state280(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state279(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state277(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 240 - // Symbol0 = Symbol1 (*) ["("] - // Symbol0 = Symbol1 (*) [")"] - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) ["<"] - // Symbol0 = Symbol1 (*) ["?"] - // Symbol0 = Symbol1 (*) ["@L"] - // Symbol0 = Symbol1 (*) ["@R"] - // Symbol0 = Symbol1 (*) ["Escape"] - // Symbol0 = Symbol1 (*) ["Id"] - // Symbol0 = Symbol1 (*) ["MacroId"] - // Symbol0 = Symbol1 (*) ["StringLiteral"] - // - // "(" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Id" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@R" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "@L" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ")" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "<" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "MacroId" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "Escape" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state240< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 241 - // Symbol* = Symbol* Symbol (*) ["("] - // Symbol* = Symbol* Symbol (*) [")"] - // Symbol* = Symbol* Symbol (*) ["<"] - // Symbol* = Symbol* Symbol (*) ["@L"] - // Symbol* = Symbol* Symbol (*) ["@R"] - // Symbol* = Symbol* Symbol (*) ["Escape"] - // Symbol* = Symbol* Symbol (*) ["Id"] - // Symbol* = Symbol* Symbol (*) ["MacroId"] - // Symbol* = Symbol* Symbol (*) ["StringLiteral"] - // - // "@L" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Id" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "@R" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "<" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "(" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "StringLiteral" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "Escape" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // ")" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // "MacroId" -> Reduce(Symbol* = Symbol*, Symbol => Call(ActionFn(95));) - // - pub fn __state241< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action95(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 242 - // Escape = (*) "Escape" ["("] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" ["<"] - // Escape = (*) "Escape" ["?"] - // Escape = (*) "Escape" ["@L"] - // Escape = (*) "Escape" ["@R"] - // Escape = (*) "Escape" ["Escape"] - // Escape = (*) "Escape" ["Id"] - // Escape = (*) "Escape" ["MacroId"] - // Escape = (*) "Escape" ["StringLiteral"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" [")"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" ["?"] - // Id = (*) "Id" ["@L"] - // Id = (*) "Id" ["@R"] - // Id = (*) "Id" ["Escape"] - // Id = (*) "Id" ["Id"] - // Id = (*) "Id" ["MacroId"] - // Id = (*) "Id" ["StringLiteral"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["("] - // NonterminalId = (*) Id [")"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id ["<"] - // NonterminalId = (*) Id ["?"] - // NonterminalId = (*) Id ["@L"] - // NonterminalId = (*) Id ["@R"] - // NonterminalId = (*) Id ["Escape"] - // NonterminalId = (*) Id ["Id"] - // NonterminalId = (*) Id ["MacroId"] - // NonterminalId = (*) Id ["StringLiteral"] - // StringLiteral = (*) "StringLiteral" ["("] - // StringLiteral = (*) "StringLiteral" [")"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" ["<"] - // StringLiteral = (*) "StringLiteral" ["?"] - // StringLiteral = (*) "StringLiteral" ["@L"] - // StringLiteral = (*) "StringLiteral" ["@R"] - // StringLiteral = (*) "StringLiteral" ["Escape"] - // StringLiteral = (*) "StringLiteral" ["Id"] - // StringLiteral = (*) "StringLiteral" ["MacroId"] - // StringLiteral = (*) "StringLiteral" ["StringLiteral"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [")"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["("] - // Symbol = @L (*) "<" Symbol0 ">" @R [")"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["<"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@L"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["@R"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Escape"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["Id"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["MacroId"] - // Symbol = @L (*) "<" Symbol0 ">" @R ["StringLiteral"] - // Symbol1 = @L (*) SymbolKind1 @R ["("] - // Symbol1 = @L (*) SymbolKind1 @R [")"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R ["<"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // Symbol1 = @L (*) SymbolKind1 @R ["@L"] - // Symbol1 = @L (*) SymbolKind1 @R ["@R"] - // Symbol1 = @L (*) SymbolKind1 @R ["Escape"] - // Symbol1 = @L (*) SymbolKind1 @R ["Id"] - // Symbol1 = @L (*) SymbolKind1 @R ["MacroId"] - // Symbol1 = @L (*) SymbolKind1 @R ["StringLiteral"] - // SymbolKind1 = (*) Escape ["("] - // SymbolKind1 = (*) Escape [")"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape ["<"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) Escape ["@L"] - // SymbolKind1 = (*) Escape ["@R"] - // SymbolKind1 = (*) Escape ["Escape"] - // SymbolKind1 = (*) Escape ["Id"] - // SymbolKind1 = (*) Escape ["MacroId"] - // SymbolKind1 = (*) Escape ["StringLiteral"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["("] - // SymbolKind1 = (*) MacroId "<" Comma ">" [")"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["<"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@L"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["@R"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Escape"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["Id"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["MacroId"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["StringLiteral"] - // SymbolKind1 = (*) NonterminalId ["("] - // SymbolKind1 = (*) NonterminalId [")"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId ["<"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) NonterminalId ["@L"] - // SymbolKind1 = (*) NonterminalId ["@R"] - // SymbolKind1 = (*) NonterminalId ["Escape"] - // SymbolKind1 = (*) NonterminalId ["Id"] - // SymbolKind1 = (*) NonterminalId ["MacroId"] - // SymbolKind1 = (*) NonterminalId ["StringLiteral"] - // SymbolKind1 = (*) Terminal ["("] - // SymbolKind1 = (*) Terminal [")"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal ["<"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) Terminal ["@L"] - // SymbolKind1 = (*) Terminal ["@R"] - // SymbolKind1 = (*) Terminal ["Escape"] - // SymbolKind1 = (*) Terminal ["Id"] - // SymbolKind1 = (*) Terminal ["MacroId"] - // SymbolKind1 = (*) Terminal ["StringLiteral"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["("] - // SymbolKind1 = (*) "(" ExprSymbol ")" [")"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["<"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@L"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["@R"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Escape"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["Id"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["MacroId"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["StringLiteral"] - // SymbolKind1 = (*) "@L" ["("] - // SymbolKind1 = (*) "@L" [")"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" ["<"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@L" ["@L"] - // SymbolKind1 = (*) "@L" ["@R"] - // SymbolKind1 = (*) "@L" ["Escape"] - // SymbolKind1 = (*) "@L" ["Id"] - // SymbolKind1 = (*) "@L" ["MacroId"] - // SymbolKind1 = (*) "@L" ["StringLiteral"] - // SymbolKind1 = (*) "@R" ["("] - // SymbolKind1 = (*) "@R" [")"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" ["<"] - // SymbolKind1 = (*) "@R" ["?"] - // SymbolKind1 = (*) "@R" ["@L"] - // SymbolKind1 = (*) "@R" ["@R"] - // SymbolKind1 = (*) "@R" ["Escape"] - // SymbolKind1 = (*) "@R" ["Id"] - // SymbolKind1 = (*) "@R" ["MacroId"] - // SymbolKind1 = (*) "@R" ["StringLiteral"] - // Terminal = (*) StringLiteral ["("] - // Terminal = (*) StringLiteral [")"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral ["<"] - // Terminal = (*) StringLiteral ["?"] - // Terminal = (*) StringLiteral ["@L"] - // Terminal = (*) StringLiteral ["@R"] - // Terminal = (*) StringLiteral ["Escape"] - // Terminal = (*) StringLiteral ["Id"] - // Terminal = (*) StringLiteral ["MacroId"] - // Terminal = (*) StringLiteral ["StringLiteral"] - // - // "<" -> Shift(S282) - // "(" -> Shift(S281) - // "StringLiteral" -> Shift(S286) - // "@L" -> Shift(S288) - // "@R" -> Shift(S283) - // "MacroId" -> Shift(S68) - // "Escape" -> Shift(S287) - // "Id" -> Shift(S292) - // - // NonterminalId -> S289 - // MacroId -> S293 - // Escape -> S294 - // StringLiteral -> S291 - // Terminal -> S285 - // SymbolKind1 -> S284 - // Id -> S290 - pub fn __state242< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state282(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state281(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state286(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state288(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state283(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state287(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state292(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state289(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state293(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state294(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state291(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state285(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state284(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state290(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 243 - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) [">"] - // SymbolKind1 = Terminal (*) ["?"] - // - // ">" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state243< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 244 - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) [">"] - // StringLiteral = "StringLiteral" (*) ["?"] - // - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ">" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state244< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 245 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" [">"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // - // "<" -> Shift(S295) - // - pub fn __state245< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state295(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 246 - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) [">"] - // SymbolKind1 = "@L" (*) ["?"] - // - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ">" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state246< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 247 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [";"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["if"] - // - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ":" -> Shift(S296) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state247< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state296(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - Some((_, Tok::Star(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 248 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" [">"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S218 - // ExprSymbol -> S297 - pub fn __state248< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state297(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 249 - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [":"] - // Id = "Id" (*) [">"] - // Id = "Id" (*) ["?"] - // - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state249< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 250 - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) [">"] - // Escape = "Escape" (*) ["?"] - // - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state250< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 251 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R [">"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // - // ">" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // - // @R -> S298 - pub fn __state251< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state298(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 252 - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) [">"] - // SymbolKind1 = Escape (*) ["?"] - // - // ">" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state252< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 253 - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) [">"] - // Terminal = StringLiteral (*) ["?"] - // - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // ">" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state253< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 254 - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) [">"] - // SymbolKind1 = NonterminalId (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ">" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state254< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 255 - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) [">"] - // SymbolKind1 = "@R" (*) ["?"] - // - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ">" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state255< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 256 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R [">"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // ">" -> Reduce(@R = => Lookbehind;) - // - // @R -> S299 - pub fn __state256< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state299(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 257 - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) [">"] - // RepeatOp = "*" (*) ["?"] - // - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ">" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state257< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 258 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" Symbol0 ">" (*) @R [";"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>?"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>@L"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["=>@R"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["StringLiteral"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["if"] - // - // "if" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // - // @R -> S300 - pub fn __state258< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state300(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 259 - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) [">"] - // RepeatOp = "?" (*) ["?"] - // - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ">" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state259< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 260 - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) [">"] - // RepeatOp = "+" (*) ["?"] - // - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ">" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state260< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 261 - // ( ",") = (*) Symbol "," ["("] - // ( ",") = (*) Symbol "," ["<"] - // ( ",") = (*) Symbol "," [">"] - // ( ",") = (*) Symbol "," ["@L"] - // ( ",") = (*) Symbol "," ["@R"] - // ( ",") = (*) Symbol "," ["Escape"] - // ( ",") = (*) Symbol "," ["Id"] - // ( ",") = (*) Symbol "," ["MacroId"] - // ( ",") = (*) Symbol "," ["StringLiteral"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") ["<"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["@L"] - // ( ",")* = ( ",")* (*) ( ",") ["@R"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["MacroId"] - // ( ",")* = ( ",")* (*) ( ",") ["StringLiteral"] - // @L = (*) ["("] - // @L = (*) ["<"] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Comma = ( ",")* (*) Symbol? [">"] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [","] - // Symbol = (*) @L "<" @L Id ":" Symbol0 ">" @R [">"] - // Symbol = (*) @L "<" Symbol0 ">" @R [","] - // Symbol = (*) @L "<" Symbol0 ">" @R [">"] - // Symbol = (*) Symbol0 [","] - // Symbol = (*) Symbol0 [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [","] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [","] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [","] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // Symbol? = (*) [">"] - // Symbol? = (*) Symbol [">"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // ">" -> Reduce(Symbol? = => Call(ActionFn(137));) - // "@L" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // - // Symbol? -> S304 - // Symbol0 -> S302 - // ( ",") -> S303 - // Symbol -> S301 - // Symbol1 -> S306 - // @L -> S305 - pub fn __state261< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action137(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_3f(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state304(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state302(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state303(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state301(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state306(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state305(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 262 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["("] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" [";"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["<"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>?"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>@L"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["=>@R"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@L"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@R"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Escape"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Id"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["MacroId"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["StringLiteral"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["if"] - // - // ">" -> Shift(S307) - // - pub fn __state262< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state307(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 263 - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["("] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R [";"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["<"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>?"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["@L"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["@R"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["if"] - // Alternative = @L ExprSymbol ("if" )? Action? (*) ";" @R ["}"] - // - // ";" -> Shift(S308) - // - pub fn __state263< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state308(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 264 - // TypeRef = Path "<" Comma ">" (*) ["{"] - // - // "{" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state264< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 265 - // ( ",") = (*) Conversion "," ["StringLiteral"] - // ( ",") = (*) Conversion "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") ["StringLiteral"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["StringLiteral"] - // Comma = ( ",")* (*) Conversion? ["}"] - // Conversion = (*) @L Terminal "=>" @R [","] - // Conversion = (*) @L Terminal "=>" @R ["}"] - // Conversion? = (*) ["}"] - // Conversion? = (*) Conversion ["}"] - // - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "}" -> Reduce(Conversion? = => Call(ActionFn(152));) - // - // ( ",") -> S312 - // Conversion -> S310 - // @L -> S311 - // Conversion? -> S309 - pub fn __state265< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action152(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Conversion_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state312(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Conversion(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state310(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state311(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Conversion_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state309(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 266 - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma (*) "}" AssociatedType* "}" ["use"] - // - // "}" -> Shift(S313) - // - pub fn __state266< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym12 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state313(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 267 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) ["{"] - // - // "{" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state267< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 268 - // Escape = "Escape" (*) [";"] - // - // ";" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state268< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 269 - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["enum"] - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["type"] - // - // ";" -> Shift(S314) - // - pub fn __state269< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state314(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 270 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [";"] - // - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S60 - // Comma -> S315 - pub fn __state270< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state315(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 271 - // TypeRef = Escape (*) [";"] - // - // ";" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state271< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 272 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [";"] - // Path = "::"? (*) ( "::")* Id ["<"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S316 - pub fn __state272< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state316(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 273 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [";"] - // - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S58) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S59 - // Lifetime? -> S317 - pub fn __state273< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state317(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 274 - // TypeRef = Path (*) [";"] - // TypeRef = Path (*) "<" Comma ">" [";"] - // - // "<" -> Shift(S318) - // ";" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state274< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state318(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 275 - // StringLiteral = "StringLiteral" (*) [";"] - // StringLiteral = "StringLiteral" (*) ["=>"] - // StringLiteral = "StringLiteral" (*) ["=>?"] - // StringLiteral = "StringLiteral" (*) ["=>@L"] - // StringLiteral = "StringLiteral" (*) ["=>@R"] - // - // "=>@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ";" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "=>@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state275< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 276 - // @R = (*) [";"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R [";"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>?"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>@L"] - // Cond = @L NonterminalId CondOp StringLiteral (*) @R ["=>@R"] - // - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // - // @R -> S319 - pub fn __state276< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state319(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 277 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) ["<"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["("] - // Symbol0 = Symbol0 RepeatOp (*) @R [")"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["<"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@L"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["@R"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Escape"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["Id"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["MacroId"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["StringLiteral"] - // - // ")" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // - // @R -> S320 - pub fn __state277< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state320(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 278 - // RepeatOp = "+" (*) ["("] - // RepeatOp = "+" (*) [")"] - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) ["<"] - // RepeatOp = "+" (*) ["?"] - // RepeatOp = "+" (*) ["@L"] - // RepeatOp = "+" (*) ["@R"] - // RepeatOp = "+" (*) ["Escape"] - // RepeatOp = "+" (*) ["Id"] - // RepeatOp = "+" (*) ["MacroId"] - // RepeatOp = "+" (*) ["StringLiteral"] - // - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "StringLiteral" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "(" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "MacroId" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@R" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Escape" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "@L" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ")" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "Id" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "<" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state278< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 279 - // RepeatOp = "*" (*) ["("] - // RepeatOp = "*" (*) [")"] - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) ["<"] - // RepeatOp = "*" (*) ["?"] - // RepeatOp = "*" (*) ["@L"] - // RepeatOp = "*" (*) ["@R"] - // RepeatOp = "*" (*) ["Escape"] - // RepeatOp = "*" (*) ["Id"] - // RepeatOp = "*" (*) ["MacroId"] - // RepeatOp = "*" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Id" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "MacroId" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@R" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "<" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "@L" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "Escape" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "(" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ")" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state279< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 280 - // RepeatOp = "?" (*) ["("] - // RepeatOp = "?" (*) [")"] - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) ["<"] - // RepeatOp = "?" (*) ["?"] - // RepeatOp = "?" (*) ["@L"] - // RepeatOp = "?" (*) ["@R"] - // RepeatOp = "?" (*) ["Escape"] - // RepeatOp = "?" (*) ["Id"] - // RepeatOp = "?" (*) ["MacroId"] - // RepeatOp = "?" (*) ["StringLiteral"] - // - // "Id" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "<" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@L" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "StringLiteral" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "(" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "@R" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "MacroId" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "Escape" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ")" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state280< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 281 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["("] - // SymbolKind1 = "(" (*) ExprSymbol ")" [")"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["<"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@L"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["@R"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Escape"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["Id"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["MacroId"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["StringLiteral"] - // - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // ExprSymbol -> S321 - // Symbol* -> S218 - pub fn __state281< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state321(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 282 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [")"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" (*) Symbol0 ">" @R [")"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S220 - // @L -> S323 - // Symbol0 -> S322 - pub fn __state282< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state323(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state322(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 283 - // SymbolKind1 = "@R" (*) ["("] - // SymbolKind1 = "@R" (*) [")"] - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) ["<"] - // SymbolKind1 = "@R" (*) ["?"] - // SymbolKind1 = "@R" (*) ["@L"] - // SymbolKind1 = "@R" (*) ["@R"] - // SymbolKind1 = "@R" (*) ["Escape"] - // SymbolKind1 = "@R" (*) ["Id"] - // SymbolKind1 = "@R" (*) ["MacroId"] - // SymbolKind1 = "@R" (*) ["StringLiteral"] - // - // "MacroId" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Id" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "Escape" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@L" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "@R" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ")" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "<" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "(" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state283< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 284 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) ["<"] - // @R = (*) ["?"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol1 = @L SymbolKind1 (*) @R ["("] - // Symbol1 = @L SymbolKind1 (*) @R [")"] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R ["<"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["@L"] - // Symbol1 = @L SymbolKind1 (*) @R ["@R"] - // Symbol1 = @L SymbolKind1 (*) @R ["Escape"] - // Symbol1 = @L SymbolKind1 (*) @R ["Id"] - // Symbol1 = @L SymbolKind1 (*) @R ["MacroId"] - // Symbol1 = @L SymbolKind1 (*) @R ["StringLiteral"] - // - // "*" -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // ")" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // - // @R -> S324 - pub fn __state284< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state324(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 285 - // SymbolKind1 = Terminal (*) ["("] - // SymbolKind1 = Terminal (*) [")"] - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) ["<"] - // SymbolKind1 = Terminal (*) ["?"] - // SymbolKind1 = Terminal (*) ["@L"] - // SymbolKind1 = Terminal (*) ["@R"] - // SymbolKind1 = Terminal (*) ["Escape"] - // SymbolKind1 = Terminal (*) ["Id"] - // SymbolKind1 = Terminal (*) ["MacroId"] - // SymbolKind1 = Terminal (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // ")" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@R" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Escape" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "MacroId" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "@L" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "<" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "Id" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "(" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state285< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 286 - // StringLiteral = "StringLiteral" (*) ["("] - // StringLiteral = "StringLiteral" (*) [")"] - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) ["<"] - // StringLiteral = "StringLiteral" (*) ["?"] - // StringLiteral = "StringLiteral" (*) ["@L"] - // StringLiteral = "StringLiteral" (*) ["@R"] - // StringLiteral = "StringLiteral" (*) ["Escape"] - // StringLiteral = "StringLiteral" (*) ["Id"] - // StringLiteral = "StringLiteral" (*) ["MacroId"] - // StringLiteral = "StringLiteral" (*) ["StringLiteral"] - // - // "Id" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "<" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "(" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@R" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "Escape" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ")" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "MacroId" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "@L" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "StringLiteral" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state286< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 287 - // Escape = "Escape" (*) ["("] - // Escape = "Escape" (*) [")"] - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) ["<"] - // Escape = "Escape" (*) ["?"] - // Escape = "Escape" (*) ["@L"] - // Escape = "Escape" (*) ["@R"] - // Escape = "Escape" (*) ["Escape"] - // Escape = "Escape" (*) ["Id"] - // Escape = "Escape" (*) ["MacroId"] - // Escape = "Escape" (*) ["StringLiteral"] - // - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "<" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Id" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "StringLiteral" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "(" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@R" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "Escape" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "MacroId" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ")" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "@L" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state287< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 288 - // SymbolKind1 = "@L" (*) ["("] - // SymbolKind1 = "@L" (*) [")"] - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) ["<"] - // SymbolKind1 = "@L" (*) ["?"] - // SymbolKind1 = "@L" (*) ["@L"] - // SymbolKind1 = "@L" (*) ["@R"] - // SymbolKind1 = "@L" (*) ["Escape"] - // SymbolKind1 = "@L" (*) ["Id"] - // SymbolKind1 = "@L" (*) ["MacroId"] - // SymbolKind1 = "@L" (*) ["StringLiteral"] - // - // "@R" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "MacroId" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "@L" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "<" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Id" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "(" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "Escape" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ")" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "StringLiteral" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state288< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 289 - // SymbolKind1 = NonterminalId (*) ["("] - // SymbolKind1 = NonterminalId (*) [")"] - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) ["<"] - // SymbolKind1 = NonterminalId (*) ["?"] - // SymbolKind1 = NonterminalId (*) ["@L"] - // SymbolKind1 = NonterminalId (*) ["@R"] - // SymbolKind1 = NonterminalId (*) ["Escape"] - // SymbolKind1 = NonterminalId (*) ["Id"] - // SymbolKind1 = NonterminalId (*) ["MacroId"] - // SymbolKind1 = NonterminalId (*) ["StringLiteral"] - // - // "@R" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Id" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ")" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "@L" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "(" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "MacroId" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "Escape" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "StringLiteral" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "<" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state289< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 290 - // NonterminalId = Id (*) ["("] - // NonterminalId = Id (*) [")"] - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) ["<"] - // NonterminalId = Id (*) ["?"] - // NonterminalId = Id (*) ["@L"] - // NonterminalId = Id (*) ["@R"] - // NonterminalId = Id (*) ["Escape"] - // NonterminalId = Id (*) ["Id"] - // NonterminalId = Id (*) ["MacroId"] - // NonterminalId = Id (*) ["StringLiteral"] - // - // "(" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "<" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@L" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ")" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Escape" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "Id" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "@R" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "MacroId" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "StringLiteral" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state290< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 291 - // Terminal = StringLiteral (*) ["("] - // Terminal = StringLiteral (*) [")"] - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) ["<"] - // Terminal = StringLiteral (*) ["?"] - // Terminal = StringLiteral (*) ["@L"] - // Terminal = StringLiteral (*) ["@R"] - // Terminal = StringLiteral (*) ["Escape"] - // Terminal = StringLiteral (*) ["Id"] - // Terminal = StringLiteral (*) ["MacroId"] - // Terminal = StringLiteral (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@L" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // ")" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "Escape" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "Id" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "<" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "@R" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "MacroId" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "(" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state291< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 292 - // Id = "Id" (*) ["("] - // Id = "Id" (*) [")"] - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) ["?"] - // Id = "Id" (*) ["@L"] - // Id = "Id" (*) ["@R"] - // Id = "Id" (*) ["Escape"] - // Id = "Id" (*) ["Id"] - // Id = "Id" (*) ["MacroId"] - // Id = "Id" (*) ["StringLiteral"] - // - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "StringLiteral" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "MacroId" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@L" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "@R" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Id" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "Escape" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state292< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 293 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["("] - // SymbolKind1 = MacroId (*) "<" Comma ">" [")"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["<"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@L"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["@R"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Escape"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["Id"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["MacroId"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["StringLiteral"] - // - // "<" -> Shift(S325) - // - pub fn __state293< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state325(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 294 - // SymbolKind1 = Escape (*) ["("] - // SymbolKind1 = Escape (*) [")"] - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) ["<"] - // SymbolKind1 = Escape (*) ["?"] - // SymbolKind1 = Escape (*) ["@L"] - // SymbolKind1 = Escape (*) ["@R"] - // SymbolKind1 = Escape (*) ["Escape"] - // SymbolKind1 = Escape (*) ["Id"] - // SymbolKind1 = Escape (*) ["MacroId"] - // SymbolKind1 = Escape (*) ["StringLiteral"] - // - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "<" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "MacroId" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@L" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // ")" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "(" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "StringLiteral" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Escape" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "Id" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "@R" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state294< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 295 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // ( ",")* -> S261 - // Comma -> S326 - pub fn __state295< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state326(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 296 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [";"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>?"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>@L"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["=>@R"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["if"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // - // Symbol0 -> S328 - // Symbol1 -> S220 - // @L -> S327 - pub fn __state296< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol0(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state328(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::_40L(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state327(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 297 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" [">"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // - // ")" -> Shift(S329) - // - pub fn __state297< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state329(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 298 - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) [">"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ">" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state298< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 299 - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) [">"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ">" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state299< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 300 - // Symbol = @L "<" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" Symbol0 ">" @R (*) [";"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>?"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>@L"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["=>@R"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["StringLiteral"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["if"] - // - // "<" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "Escape" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>@L" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>@R" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@R" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@L" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "=>?" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "if" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "Id" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // ";" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "MacroId" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "(" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // - pub fn __state300< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 301 - // ( ",") = Symbol (*) "," ["("] - // ( ",") = Symbol (*) "," ["<"] - // ( ",") = Symbol (*) "," [">"] - // ( ",") = Symbol (*) "," ["@L"] - // ( ",") = Symbol (*) "," ["@R"] - // ( ",") = Symbol (*) "," ["Escape"] - // ( ",") = Symbol (*) "," ["Id"] - // ( ",") = Symbol (*) "," ["MacroId"] - // ( ",") = Symbol (*) "," ["StringLiteral"] - // Symbol? = Symbol (*) [">"] - // - // ">" -> Reduce(Symbol? = Symbol => Call(ActionFn(136));) - // "," -> Shift(S330) - // - pub fn __state301< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state330(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action136(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 302 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [","] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [","] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [","] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = Symbol0 (*) [","] - // Symbol = Symbol0 (*) [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [","] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "?" -> Shift(S332) - // "*" -> Shift(S333) - // "+" -> Shift(S334) - // "," -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // ">" -> Reduce(Symbol = Symbol0 => Call(ActionFn(31));) - // - // RepeatOp -> S331 - pub fn __state302< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state332(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state333(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state334(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action31(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state331(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 303 - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) ["<"] - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["@L"] - // ( ",")* = ( ",")* ( ",") (*) ["@R"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["MacroId"] - // ( ",")* = ( ",")* ( ",") (*) ["StringLiteral"] - // - // "<" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "@R" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "StringLiteral" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "@L" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "MacroId" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(139));) - // - pub fn __state303< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action139(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 304 - // Comma = ( ",")* Symbol? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, Symbol? => Call(ActionFn(93));) - // - pub fn __state304< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action93(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cSymbol_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 305 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [","] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [","] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [","] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [","] - // Symbol = @L (*) "<" @L Id ":" Symbol0 ">" @R [">"] - // Symbol = @L (*) "<" Symbol0 ">" @R [","] - // Symbol = @L (*) "<" Symbol0 ">" @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [","] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [","] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [","] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [","] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [","] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [","] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [","] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [","] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [","] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "Id" -> Shift(S343) - // "Escape" -> Shift(S337) - // "<" -> Shift(S346) - // "MacroId" -> Shift(S68) - // "@R" -> Shift(S335) - // "StringLiteral" -> Shift(S345) - // "(" -> Shift(S344) - // "@L" -> Shift(S347) - // - // StringLiteral -> S348 - // MacroId -> S342 - // SymbolKind1 -> S339 - // NonterminalId -> S340 - // Escape -> S341 - // Terminal -> S338 - // Id -> S336 - pub fn __state305< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state343(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state337(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state346(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state335(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state345(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state344(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state347(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state348(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state342(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state339(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state340(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state341(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state338(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state336(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 306 - // Symbol0 = Symbol1 (*) ["*"] - // Symbol0 = Symbol1 (*) ["+"] - // Symbol0 = Symbol1 (*) [","] - // Symbol0 = Symbol1 (*) [">"] - // Symbol0 = Symbol1 (*) ["?"] - // - // "," -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "*" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "?" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // ">" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // "+" -> Reduce(Symbol0 = Symbol1 => Call(ActionFn(32));) - // - pub fn __state306< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action32(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 307 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["("] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) [";"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["<"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>?"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>@L"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["=>@R"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@L"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@R"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Escape"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Id"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["MacroId"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["StringLiteral"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["if"] - // - // "=>" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "if" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "(" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "=>@R" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Escape" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "MacroId" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@L" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "<" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "=>@L" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "StringLiteral" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Id" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "=>?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@R" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ";" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state307< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 308 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // @R = (*) ["}"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["("] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R [";"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["<"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>?"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["if"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" (*) @R ["}"] - // - // "@L" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "}" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // - // @R -> S349 - pub fn __state308< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state349(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 309 - // Comma = ( ",")* Conversion? (*) ["}"] - // - // "}" -> Reduce(Comma = ( ",")*, Conversion? => Call(ActionFn(79));) - // - pub fn __state309< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action79(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cConversion_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 310 - // ( ",") = Conversion (*) "," ["StringLiteral"] - // ( ",") = Conversion (*) "," ["}"] - // Conversion? = Conversion (*) ["}"] - // - // "}" -> Reduce(Conversion? = Conversion => Call(ActionFn(151));) - // "," -> Shift(S350) - // - pub fn __state310< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state350(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action151(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Conversion_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 311 - // Conversion = @L (*) Terminal "=>" @R [","] - // Conversion = @L (*) Terminal "=>" @R ["}"] - // StringLiteral = (*) "StringLiteral" ["=>"] - // Terminal = (*) StringLiteral ["=>"] - // - // "StringLiteral" -> Shift(S351) - // - // StringLiteral -> S353 - // Terminal -> S352 - pub fn __state311< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state351(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state353(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state352(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 312 - // ( ",")* = ( ",")* ( ",") (*) ["StringLiteral"] - // ( ",")* = ( ",")* ( ",") (*) ["}"] - // - // "StringLiteral" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(154));) - // "}" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(154));) - // - pub fn __state312< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action154(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action154(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 313 - // AssociatedType* = (*) ["type"] - // AssociatedType* = (*) ["}"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["type"] - // AssociatedType* = (*) AssociatedType* AssociatedType ["}"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" (*) AssociatedType* "}" ["use"] - // - // "}" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // "type" -> Reduce(AssociatedType* = => Call(ActionFn(80));) - // - // AssociatedType* -> S354 - pub fn __state313< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - __sym12: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - Some((_, Tok::Type(..), _)) => { - let __nt = super::__action80(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym12.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType_2a(__nt) => { - let __sym13 = &mut Some(__nt); - __result = try!(__state354(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 314 - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["enum"] - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["type"] - // - // "enum" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // "type" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // - pub fn __state314< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Enum(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 315 - // TypeRef = "(" Comma (*) ")" [";"] - // - // ")" -> Shift(S355) - // - pub fn __state315< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state355(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 316 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" [";"] - // Id = (*) "Id" ["<"] - // Path = "::"? ( "::")* (*) Id [";"] - // Path = "::"? ( "::")* (*) Id ["<"] - // - // "Id" -> Shift(S357) - // - // Id -> S356 - // ( "::") -> S80 - pub fn __state316< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state357(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state356(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 317 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [";"] - // - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S73) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S358 - pub fn __state317< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state358(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 318 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [";"] - // - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S359 - // ( ",")* -> S81 - pub fn __state318< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state359(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 319 - // Cond = @L NonterminalId CondOp StringLiteral @R (*) [";"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>?"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>@L"] - // Cond = @L NonterminalId CondOp StringLiteral @R (*) ["=>@R"] - // - // ";" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>@L" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>?" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>@R" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // "=>" -> Reduce(Cond = @L, NonterminalId, CondOp, StringLiteral, @R => Call(ActionFn(23));) - // - pub fn __state319< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action23(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Cond(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 320 - // Symbol0 = Symbol0 RepeatOp @R (*) ["("] - // Symbol0 = Symbol0 RepeatOp @R (*) [")"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["<"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@L"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["@R"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Escape"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["Id"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["MacroId"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["StringLiteral"] - // - // "Id" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "<" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@R" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "Escape" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "(" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ")" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "@L" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "MacroId" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "StringLiteral" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state320< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 321 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["("] - // SymbolKind1 = "(" ExprSymbol (*) ")" [")"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["<"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@L"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["@R"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Escape"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["Id"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["MacroId"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["StringLiteral"] - // - // ")" -> Shift(S360) - // - pub fn __state321< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state360(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 322 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" Symbol0 (*) ">" @R [")"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "+" -> Shift(S260) - // "?" -> Shift(S259) - // "*" -> Shift(S257) - // ">" -> Shift(S361) - // - // RepeatOp -> S256 - pub fn __state322< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state361(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 323 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [":"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [")"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R ["StringLiteral"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "Escape" -> Shift(S250) - // "@R" -> Shift(S255) - // "MacroId" -> Shift(S68) - // "Id" -> Shift(S249) - // "(" -> Shift(S248) - // "@L" -> Shift(S246) - // "StringLiteral" -> Shift(S244) - // - // NonterminalId -> S254 - // SymbolKind1 -> S251 - // Terminal -> S243 - // StringLiteral -> S253 - // MacroId -> S245 - // Escape -> S252 - // Id -> S362 - pub fn __state323< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state249(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::NonterminalId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::Terminal(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::MacroId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Id(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state362(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 324 - // Symbol1 = @L SymbolKind1 @R (*) ["("] - // Symbol1 = @L SymbolKind1 @R (*) [")"] - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) ["<"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // Symbol1 = @L SymbolKind1 @R (*) ["@L"] - // Symbol1 = @L SymbolKind1 @R (*) ["@R"] - // Symbol1 = @L SymbolKind1 @R (*) ["Escape"] - // Symbol1 = @L SymbolKind1 @R (*) ["Id"] - // Symbol1 = @L SymbolKind1 @R (*) ["MacroId"] - // Symbol1 = @L SymbolKind1 @R (*) ["StringLiteral"] - // - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ")" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "(" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "StringLiteral" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "<" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "MacroId" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Escape" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@L" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "@R" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "Id" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state324< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 325 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["("] - // SymbolKind1 = MacroId "<" (*) Comma ">" [")"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["<"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@L"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["@R"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Escape"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["Id"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["MacroId"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["StringLiteral"] - // - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // ( ",")* -> S261 - // Comma -> S363 - pub fn __state325< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state363(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 326 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" [">"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // - // ">" -> Shift(S364) - // - pub fn __state326< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state364(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 327 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "(" -> Shift(S248) - // "@R" -> Shift(S255) - // "Escape" -> Shift(S250) - // "Id" -> Shift(S365) - // "@L" -> Shift(S246) - // "StringLiteral" -> Shift(S244) - // "MacroId" -> Shift(S68) - // - // SymbolKind1 -> S251 - // Terminal -> S243 - // NonterminalId -> S254 - // Id -> S366 - // Escape -> S252 - // MacroId -> S245 - // StringLiteral -> S253 - pub fn __state327< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state365(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::SymbolKind1(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Terminal(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state366(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::MacroId(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 328 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [";"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>@L"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["=>@R"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["if"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "?" -> Shift(S259) - // ">" -> Shift(S367) - // "+" -> Shift(S260) - // "*" -> Shift(S257) - // - // RepeatOp -> S256 - pub fn __state328< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state367(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 329 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) [">"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ">" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state329< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 330 - // ( ",") = Symbol "," (*) ["("] - // ( ",") = Symbol "," (*) ["<"] - // ( ",") = Symbol "," (*) [">"] - // ( ",") = Symbol "," (*) ["@L"] - // ( ",") = Symbol "," (*) ["@R"] - // ( ",") = Symbol "," (*) ["Escape"] - // ( ",") = Symbol "," (*) ["Id"] - // ( ",") = Symbol "," (*) ["MacroId"] - // ( ",") = Symbol "," (*) ["StringLiteral"] - // - // ">" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "(" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "Escape" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "MacroId" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "Id" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "@R" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "<" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "StringLiteral" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // "@L" -> Reduce(( ",") = Symbol, "," => Call(ActionFn(140));) - // - pub fn __state330< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action140(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 331 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [","] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["*"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["+"] - // Symbol0 = Symbol0 RepeatOp (*) @R [","] - // Symbol0 = Symbol0 RepeatOp (*) @R [">"] - // Symbol0 = Symbol0 RepeatOp (*) @R ["?"] - // - // ">" -> Reduce(@R = => Lookbehind;) - // "," -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // - // @R -> S368 - pub fn __state331< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state368(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 332 - // RepeatOp = "?" (*) ["*"] - // RepeatOp = "?" (*) ["+"] - // RepeatOp = "?" (*) [","] - // RepeatOp = "?" (*) [">"] - // RepeatOp = "?" (*) ["?"] - // - // "?" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // ">" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "+" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "*" -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // "," -> Reduce(RepeatOp = "?" => Call(ActionFn(36));) - // - pub fn __state332< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action36(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 333 - // RepeatOp = "*" (*) ["*"] - // RepeatOp = "*" (*) ["+"] - // RepeatOp = "*" (*) [","] - // RepeatOp = "*" (*) [">"] - // RepeatOp = "*" (*) ["?"] - // - // "*" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "," -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "+" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // "?" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // ">" -> Reduce(RepeatOp = "*" => Call(ActionFn(35));) - // - pub fn __state333< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action35(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 334 - // RepeatOp = "+" (*) ["*"] - // RepeatOp = "+" (*) ["+"] - // RepeatOp = "+" (*) [","] - // RepeatOp = "+" (*) [">"] - // RepeatOp = "+" (*) ["?"] - // - // "," -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // ">" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "*" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "?" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // "+" -> Reduce(RepeatOp = "+" => Call(ActionFn(34));) - // - pub fn __state334< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action34(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::RepeatOp(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 335 - // SymbolKind1 = "@R" (*) ["*"] - // SymbolKind1 = "@R" (*) ["+"] - // SymbolKind1 = "@R" (*) [","] - // SymbolKind1 = "@R" (*) [">"] - // SymbolKind1 = "@R" (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "+" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "," -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // ">" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // "?" -> Reduce(SymbolKind1 = "@R" => Call(ActionFn(44));) - // - pub fn __state335< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action44(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 336 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [","] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "," -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state336< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 337 - // Escape = "Escape" (*) ["*"] - // Escape = "Escape" (*) ["+"] - // Escape = "Escape" (*) [","] - // Escape = "Escape" (*) [">"] - // Escape = "Escape" (*) ["?"] - // - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "?" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "*" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // "+" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state337< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 338 - // SymbolKind1 = Terminal (*) ["*"] - // SymbolKind1 = Terminal (*) ["+"] - // SymbolKind1 = Terminal (*) [","] - // SymbolKind1 = Terminal (*) [">"] - // SymbolKind1 = Terminal (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "?" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "+" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // ">" -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // "," -> Reduce(SymbolKind1 = Terminal => Call(ActionFn(39));) - // - pub fn __state338< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action39(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 339 - // @R = (*) ["*"] - // @R = (*) ["+"] - // @R = (*) [","] - // @R = (*) [">"] - // @R = (*) ["?"] - // Symbol1 = @L SymbolKind1 (*) @R ["*"] - // Symbol1 = @L SymbolKind1 (*) @R ["+"] - // Symbol1 = @L SymbolKind1 (*) @R [","] - // Symbol1 = @L SymbolKind1 (*) @R [">"] - // Symbol1 = @L SymbolKind1 (*) @R ["?"] - // - // "," -> Reduce(@R = => Lookbehind;) - // "+" -> Reduce(@R = => Lookbehind;) - // ">" -> Reduce(@R = => Lookbehind;) - // "*" -> Reduce(@R = => Lookbehind;) - // "?" -> Reduce(@R = => Lookbehind;) - // - // @R -> S369 - pub fn __state339< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Plus(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Star(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Question(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state369(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 340 - // SymbolKind1 = NonterminalId (*) ["*"] - // SymbolKind1 = NonterminalId (*) ["+"] - // SymbolKind1 = NonterminalId (*) [","] - // SymbolKind1 = NonterminalId (*) [">"] - // SymbolKind1 = NonterminalId (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "?" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "+" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // "," -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // ">" -> Reduce(SymbolKind1 = NonterminalId => Call(ActionFn(40));) - // - pub fn __state340< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action40(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 341 - // SymbolKind1 = Escape (*) ["*"] - // SymbolKind1 = Escape (*) ["+"] - // SymbolKind1 = Escape (*) [","] - // SymbolKind1 = Escape (*) [">"] - // SymbolKind1 = Escape (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "," -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // ">" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "+" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // "?" -> Reduce(SymbolKind1 = Escape => Call(ActionFn(41));) - // - pub fn __state341< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action41(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 342 - // SymbolKind1 = MacroId (*) "<" Comma ">" ["*"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["+"] - // SymbolKind1 = MacroId (*) "<" Comma ">" [","] - // SymbolKind1 = MacroId (*) "<" Comma ">" [">"] - // SymbolKind1 = MacroId (*) "<" Comma ">" ["?"] - // - // "<" -> Shift(S370) - // - pub fn __state342< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state370(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 343 - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [","] - // Id = "Id" (*) [">"] - // Id = "Id" (*) ["?"] - // - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state343< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 344 - // ExprSymbol = (*) Symbol* [")"] - // Symbol* = (*) ["("] - // Symbol* = (*) [")"] - // Symbol* = (*) ["<"] - // Symbol* = (*) ["@L"] - // Symbol* = (*) ["@R"] - // Symbol* = (*) ["Escape"] - // Symbol* = (*) ["Id"] - // Symbol* = (*) ["MacroId"] - // Symbol* = (*) ["StringLiteral"] - // Symbol* = (*) Symbol* Symbol ["("] - // Symbol* = (*) Symbol* Symbol [")"] - // Symbol* = (*) Symbol* Symbol ["<"] - // Symbol* = (*) Symbol* Symbol ["@L"] - // Symbol* = (*) Symbol* Symbol ["@R"] - // Symbol* = (*) Symbol* Symbol ["Escape"] - // Symbol* = (*) Symbol* Symbol ["Id"] - // Symbol* = (*) Symbol* Symbol ["MacroId"] - // Symbol* = (*) Symbol* Symbol ["StringLiteral"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["*"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["+"] - // SymbolKind1 = "(" (*) ExprSymbol ")" [","] - // SymbolKind1 = "(" (*) ExprSymbol ")" [">"] - // SymbolKind1 = "(" (*) ExprSymbol ")" ["?"] - // - // "Id" -> Reduce(Symbol* = => Call(ActionFn(94));) - // ")" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "MacroId" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@R" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "<" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "(" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "Escape" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "StringLiteral" -> Reduce(Symbol* = => Call(ActionFn(94));) - // "@L" -> Reduce(Symbol* = => Call(ActionFn(94));) - // - // Symbol* -> S218 - // ExprSymbol -> S371 - pub fn __state344< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action94(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Symbol_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state218(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::ExprSymbol(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state371(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 345 - // StringLiteral = "StringLiteral" (*) ["*"] - // StringLiteral = "StringLiteral" (*) ["+"] - // StringLiteral = "StringLiteral" (*) [","] - // StringLiteral = "StringLiteral" (*) [">"] - // StringLiteral = "StringLiteral" (*) ["?"] - // - // "*" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // ">" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "+" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "?" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // "," -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state345< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 346 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [","] - // Symbol = @L "<" (*) @L Id ":" Symbol0 ">" @R [">"] - // Symbol = @L "<" (*) Symbol0 ">" @R [","] - // Symbol = @L "<" (*) Symbol0 ">" @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "(" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // - // @L -> S373 - // Symbol1 -> S220 - // Symbol0 -> S372 - pub fn __state346< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state373(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state372(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 347 - // SymbolKind1 = "@L" (*) ["*"] - // SymbolKind1 = "@L" (*) ["+"] - // SymbolKind1 = "@L" (*) [","] - // SymbolKind1 = "@L" (*) [">"] - // SymbolKind1 = "@L" (*) ["?"] - // - // "+" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // ">" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "," -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "*" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // "?" -> Reduce(SymbolKind1 = "@L" => Call(ActionFn(43));) - // - pub fn __state347< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action43(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 348 - // Terminal = StringLiteral (*) ["*"] - // Terminal = StringLiteral (*) ["+"] - // Terminal = StringLiteral (*) [","] - // Terminal = StringLiteral (*) [">"] - // Terminal = StringLiteral (*) ["?"] - // - // ">" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "," -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "*" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "+" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // "?" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state348< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 349 - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["("] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) [";"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["<"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>?"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["=>@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["@L"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["@R"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Escape"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["Id"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["MacroId"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["StringLiteral"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["if"] - // Alternative = @L ExprSymbol ("if" )? Action? ";" @R (*) ["}"] - // - // "@R" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Id" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "}" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "MacroId" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "Escape" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // ";" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "(" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "@L" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>?" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>@R" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "<" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "StringLiteral" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "=>@L" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // "if" -> Reduce(Alternative = @L, ExprSymbol, ("if" )?, Action?, ";", @R => Call(ActionFn(18));) - // - pub fn __state349< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<::std::option::Option>, - __sym3: &mut Option<::std::option::Option>, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __nt = super::__action18(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5); - return Ok((__lookbehind, __lookahead, __Nonterminal::Alternative(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 350 - // ( ",") = Conversion "," (*) ["StringLiteral"] - // ( ",") = Conversion "," (*) ["}"] - // - // "}" -> Reduce(( ",") = Conversion, "," => Call(ActionFn(155));) - // "StringLiteral" -> Reduce(( ",") = Conversion, "," => Call(ActionFn(155));) - // - pub fn __state350< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action155(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action155(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cConversion_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 351 - // StringLiteral = "StringLiteral" (*) ["=>"] - // - // "=>" -> Reduce(StringLiteral = "StringLiteral" => Call(ActionFn(72));) - // - pub fn __state351< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action72(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::StringLiteral(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 352 - // Conversion = @L Terminal (*) "=>" @R [","] - // Conversion = @L Terminal (*) "=>" @R ["}"] - // - // "=>" -> Shift(S374) - // - pub fn __state352< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state374(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 353 - // Terminal = StringLiteral (*) ["=>"] - // - // "=>" -> Reduce(Terminal = StringLiteral => Call(ActionFn(71));) - // - pub fn __state353< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action71(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Terminal(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 354 - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["type"] - // AssociatedType = (*) "type" @L Id @R "=" TypeRef ";" ["}"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["type"] - // AssociatedType* = AssociatedType* (*) AssociatedType ["}"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* (*) "}" ["use"] - // - // "type" -> Shift(S377) - // "}" -> Shift(S376) - // - // AssociatedType -> S375 - pub fn __state354< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - __sym12: &mut Option>, - __sym13: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Type(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym14 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state377(text, __lookbehind, __lookahead, __tokens, __sym14)); - } - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym14 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state376(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym13.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::AssociatedType(__nt) => { - let __sym14 = &mut Some(__nt); - __result = try!(__state375(text, __lookbehind, __lookahead, __tokens, __sym13, __sym14)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 355 - // TypeRef = "(" Comma ")" (*) [";"] - // - // ";" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state355< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 356 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [";"] - // Path = "::"? ( "::")* Id (*) ["<"] - // - // ";" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S88) - // - pub fn __state356< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 357 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) [";"] - // Id = "Id" (*) ["<"] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ";" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state357< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 358 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [";"] - // Path = (*) "::"? ( "::")* Id [";"] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [";"] - // TypeRef = (*) Path [";"] - // TypeRef = (*) Path "<" Comma ">" [";"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [";"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [";"] - // TypeRef = (*) "(" Comma ")" [";"] - // - // "::" -> Shift(S50) - // "Escape" -> Shift(S268) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S270) - // "&" -> Shift(S273) - // - // "::"? -> S272 - // Escape -> S271 - // Path -> S274 - // TypeRef -> S378 - pub fn __state358< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state268(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state270(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state273(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state272(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state271(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state274(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state378(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 359 - // TypeRef = Path "<" Comma (*) ">" [";"] - // - // ">" -> Shift(S379) - // - pub fn __state359< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state379(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 360 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["("] - // SymbolKind1 = "(" ExprSymbol ")" (*) [")"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["<"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@L"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["@R"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Escape"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["Id"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["MacroId"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["StringLiteral"] - // - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Id" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "(" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@R" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "MacroId" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "Escape" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "@L" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "StringLiteral" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "<" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ")" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state360< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 361 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["<"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" Symbol0 ">" (*) @R [")"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" Symbol0 ">" (*) @R ["StringLiteral"] - // - // ")" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // - // @R -> S380 - pub fn __state361< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state380(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 362 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [")"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R ["StringLiteral"] - // - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ":" -> Shift(S381) - // - pub fn __state362< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state381(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - Some((_, Tok::Plus(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 363 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["("] - // SymbolKind1 = MacroId "<" Comma (*) ">" [")"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["<"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@L"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["@R"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Escape"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["Id"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["MacroId"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["StringLiteral"] - // - // ">" -> Shift(S382) - // - pub fn __state363< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state382(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 364 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) [">"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ">" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state364< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 365 - // Id = "Id" (*) ["*"] - // Id = "Id" (*) ["+"] - // Id = "Id" (*) [">"] - // Id = "Id" (*) ["?"] - // - // "?" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "+" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "*" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state365< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 366 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state366< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action67(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 367 - // @R = (*) ["("] - // @R = (*) [";"] - // @R = (*) ["<"] - // @R = (*) ["=>"] - // @R = (*) ["=>?"] - // @R = (*) ["=>@L"] - // @R = (*) ["=>@R"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // @R = (*) ["if"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [";"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>?"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["=>@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["if"] - // - // "Id" -> Reduce(@R = => Lookbehind;) - // "=>?" -> Reduce(@R = => Lookbehind;) - // "=>@R" -> Reduce(@R = => Lookbehind;) - // "if" -> Reduce(@R = => Lookbehind;) - // ";" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "=>" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "=>@L" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // - // @R -> S383 - pub fn __state367< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::If(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Semi(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state383(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 368 - // Symbol0 = Symbol0 RepeatOp @R (*) ["*"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["+"] - // Symbol0 = Symbol0 RepeatOp @R (*) [","] - // Symbol0 = Symbol0 RepeatOp @R (*) [">"] - // Symbol0 = Symbol0 RepeatOp @R (*) ["?"] - // - // "+" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "," -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "?" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // "*" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // ">" -> Reduce(Symbol0 = Symbol0, RepeatOp, @R => Call(ActionFn(33));) - // - pub fn __state368< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action33(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol0(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 369 - // Symbol1 = @L SymbolKind1 @R (*) ["*"] - // Symbol1 = @L SymbolKind1 @R (*) ["+"] - // Symbol1 = @L SymbolKind1 @R (*) [","] - // Symbol1 = @L SymbolKind1 @R (*) [">"] - // Symbol1 = @L SymbolKind1 @R (*) ["?"] - // - // "+" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // ">" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "*" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "?" -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // "," -> Reduce(Symbol1 = @L, SymbolKind1, @R => Call(ActionFn(37));) - // - pub fn __state369< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action37(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 370 - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["@L"] - // ( ",")* = (*) ["@R"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["MacroId"] - // ( ",")* = (*) ["StringLiteral"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["@L"] - // ( ",")* = (*) ( ",")* ( ",") ["@R"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["MacroId"] - // ( ",")* = (*) ( ",")* ( ",") ["StringLiteral"] - // Comma = (*) ( ",")* Symbol? [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["*"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["+"] - // SymbolKind1 = MacroId "<" (*) Comma ">" [","] - // SymbolKind1 = MacroId "<" (*) Comma ">" [">"] - // SymbolKind1 = MacroId "<" (*) Comma ">" ["?"] - // - // "StringLiteral" -> Reduce(( ",")* = => Call(ActionFn(138));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "MacroId" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@L" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "@R" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(138));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(138));) - // - // ( ",")* -> S261 - // Comma -> S384 - pub fn __state370< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action138(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cSymbol_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state261(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cSymbol_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state384(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 371 - // SymbolKind1 = "(" ExprSymbol (*) ")" ["*"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["+"] - // SymbolKind1 = "(" ExprSymbol (*) ")" [","] - // SymbolKind1 = "(" ExprSymbol (*) ")" [">"] - // SymbolKind1 = "(" ExprSymbol (*) ")" ["?"] - // - // ")" -> Shift(S385) - // - pub fn __state371< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state385(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 372 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" Symbol0 (*) ">" @R [","] - // Symbol = @L "<" Symbol0 (*) ">" @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // ">" -> Shift(S386) - // "?" -> Shift(S259) - // "*" -> Shift(S257) - // "+" -> Shift(S260) - // - // RepeatOp -> S256 - pub fn __state372< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state386(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 373 - // Escape = (*) "Escape" ["*"] - // Escape = (*) "Escape" ["+"] - // Escape = (*) "Escape" [">"] - // Escape = (*) "Escape" ["?"] - // Id = (*) "Id" ["*"] - // Id = (*) "Id" ["+"] - // Id = (*) "Id" [":"] - // Id = (*) "Id" [">"] - // Id = (*) "Id" ["?"] - // MacroId = (*) "MacroId" ["<"] - // NonterminalId = (*) Id ["*"] - // NonterminalId = (*) Id ["+"] - // NonterminalId = (*) Id [">"] - // NonterminalId = (*) Id ["?"] - // StringLiteral = (*) "StringLiteral" ["*"] - // StringLiteral = (*) "StringLiteral" ["+"] - // StringLiteral = (*) "StringLiteral" [">"] - // StringLiteral = (*) "StringLiteral" ["?"] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [","] - // Symbol = @L "<" @L (*) Id ":" Symbol0 ">" @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["*"] - // Symbol1 = @L (*) SymbolKind1 @R ["+"] - // Symbol1 = @L (*) SymbolKind1 @R [">"] - // Symbol1 = @L (*) SymbolKind1 @R ["?"] - // SymbolKind1 = (*) Escape ["*"] - // SymbolKind1 = (*) Escape ["+"] - // SymbolKind1 = (*) Escape [">"] - // SymbolKind1 = (*) Escape ["?"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["*"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["+"] - // SymbolKind1 = (*) MacroId "<" Comma ">" [">"] - // SymbolKind1 = (*) MacroId "<" Comma ">" ["?"] - // SymbolKind1 = (*) NonterminalId ["*"] - // SymbolKind1 = (*) NonterminalId ["+"] - // SymbolKind1 = (*) NonterminalId [">"] - // SymbolKind1 = (*) NonterminalId ["?"] - // SymbolKind1 = (*) Terminal ["*"] - // SymbolKind1 = (*) Terminal ["+"] - // SymbolKind1 = (*) Terminal [">"] - // SymbolKind1 = (*) Terminal ["?"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["*"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["+"] - // SymbolKind1 = (*) "(" ExprSymbol ")" [">"] - // SymbolKind1 = (*) "(" ExprSymbol ")" ["?"] - // SymbolKind1 = (*) "@L" ["*"] - // SymbolKind1 = (*) "@L" ["+"] - // SymbolKind1 = (*) "@L" [">"] - // SymbolKind1 = (*) "@L" ["?"] - // SymbolKind1 = (*) "@R" ["*"] - // SymbolKind1 = (*) "@R" ["+"] - // SymbolKind1 = (*) "@R" [">"] - // SymbolKind1 = (*) "@R" ["?"] - // Terminal = (*) StringLiteral ["*"] - // Terminal = (*) StringLiteral ["+"] - // Terminal = (*) StringLiteral [">"] - // Terminal = (*) StringLiteral ["?"] - // - // "@L" -> Shift(S246) - // "@R" -> Shift(S255) - // "MacroId" -> Shift(S68) - // "StringLiteral" -> Shift(S244) - // "(" -> Shift(S248) - // "Escape" -> Shift(S250) - // "Id" -> Shift(S249) - // - // Terminal -> S243 - // Escape -> S252 - // StringLiteral -> S253 - // SymbolKind1 -> S251 - // MacroId -> S245 - // Id -> S387 - // NonterminalId -> S254 - pub fn __state373< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Lookahead(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state246(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Lookbehind(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state255(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::MacroId(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::StringLiteral(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state244(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state248(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state250(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state249(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Terminal(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state243(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state252(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::StringLiteral(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state253(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::SymbolKind1(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state251(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::MacroId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state245(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Id(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state387(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::NonterminalId(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state254(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 374 - // @R = (*) [","] - // @R = (*) ["}"] - // Conversion = @L Terminal "=>" (*) @R [","] - // Conversion = @L Terminal "=>" (*) @R ["}"] - // - // "}" -> Reduce(@R = => Lookbehind;) - // "," -> Reduce(@R = => Lookbehind;) - // - // @R -> S388 - pub fn __state374< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state388(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 375 - // AssociatedType* = AssociatedType* AssociatedType (*) ["type"] - // AssociatedType* = AssociatedType* AssociatedType (*) ["}"] - // - // "type" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // "}" -> Reduce(AssociatedType* = AssociatedType*, AssociatedType => Call(ActionFn(81));) - // - pub fn __state375< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action81(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 376 - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) [EOF] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["Escape"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["Id"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["MacroId"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["extern"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["pub"] - // ExternToken = @L "extern" "token" @R "{" AssociatedType* "enum" @L TypeRef @R "{" Comma "}" AssociatedType* "}" (*) ["use"] - // - // "Escape" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "use" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // EOF -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "Id" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "MacroId" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "extern" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // "pub" -> Reduce(ExternToken = @L, "extern", "token", @R, "{", AssociatedType*, "enum", @L, TypeRef, @R, "{", Comma, "}", AssociatedType*, "}" => Call(ActionFn(53));) - // - pub fn __state376< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option<::std::vec::Vec>, - __sym6: &mut Option>, - __sym7: &mut Option, - __sym8: &mut Option, - __sym9: &mut Option, - __sym10: &mut Option>, - __sym11: &mut Option>, - __sym12: &mut Option>, - __sym13: &mut Option<::std::vec::Vec>, - __sym14: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Use(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Extern(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - Some((_, Tok::Pub(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __sym8 = __sym8.take().unwrap(); - let __sym9 = __sym9.take().unwrap(); - let __sym10 = __sym10.take().unwrap(); - let __sym11 = __sym11.take().unwrap(); - let __sym12 = __sym12.take().unwrap(); - let __sym13 = __sym13.take().unwrap(); - let __sym14 = __sym14.take().unwrap(); - let __nt = super::__action53(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7, __sym8, __sym9, __sym10, __sym11, __sym12, __sym13, __sym14); - return Ok((__lookbehind, __lookahead, __Nonterminal::ExternToken(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 377 - // @L = (*) ["Id"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["type"] - // AssociatedType = "type" (*) @L Id @R "=" TypeRef ";" ["}"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // - // @L -> S389 - pub fn __state377< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state389(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 378 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [";"] - // - // ";" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state378< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 379 - // TypeRef = Path "<" Comma ">" (*) [";"] - // - // ";" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state379< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 380 - // Symbol = @L "<" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" Symbol0 ">" @R (*) [")"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" Symbol0 ">" @R (*) ["StringLiteral"] - // - // "Escape" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // ")" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@L" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "MacroId" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "(" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "<" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "@R" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "Id" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // - pub fn __state380< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 381 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["("] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [")"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["<"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R ["StringLiteral"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "(" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "Escape" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // - // Symbol0 -> S390 - // @L -> S327 - // Symbol1 -> S220 - pub fn __state381< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol0(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state390(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::_40L(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state327(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Symbol1(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 382 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["("] - // SymbolKind1 = MacroId "<" Comma ">" (*) [")"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["<"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@L"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["@R"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Escape"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["Id"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["MacroId"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["StringLiteral"] - // - // "StringLiteral" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "(" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "MacroId" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "<" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Escape" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@L" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "Id" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "@R" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ")" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state382< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 383 - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [";"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>?"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["=>@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["if"] - // - // ";" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "Escape" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "if" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "(" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "MacroId" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>@L" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@R" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@L" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "Id" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "<" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>@R" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "=>?" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // - pub fn __state383< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Semi(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::If(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanLookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::EqualsGreaterThanQuestionCode(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 384 - // SymbolKind1 = MacroId "<" Comma (*) ">" ["*"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["+"] - // SymbolKind1 = MacroId "<" Comma (*) ">" [","] - // SymbolKind1 = MacroId "<" Comma (*) ">" [">"] - // SymbolKind1 = MacroId "<" Comma (*) ">" ["?"] - // - // ">" -> Shift(S391) - // - pub fn __state384< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state391(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 385 - // SymbolKind1 = "(" ExprSymbol ")" (*) ["*"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["+"] - // SymbolKind1 = "(" ExprSymbol ")" (*) [","] - // SymbolKind1 = "(" ExprSymbol ")" (*) [">"] - // SymbolKind1 = "(" ExprSymbol ")" (*) ["?"] - // - // "," -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "*" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "+" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // "?" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // ">" -> Reduce(SymbolKind1 = "(", ExprSymbol, ")" => Call(ActionFn(42));) - // - pub fn __state385< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action42(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 386 - // @R = (*) [","] - // @R = (*) [">"] - // Symbol = @L "<" Symbol0 ">" (*) @R [","] - // Symbol = @L "<" Symbol0 ">" (*) @R [">"] - // - // "," -> Reduce(@R = => Lookbehind;) - // ">" -> Reduce(@R = => Lookbehind;) - // - // @R -> S392 - pub fn __state386< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state392(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 387 - // NonterminalId = Id (*) ["*"] - // NonterminalId = Id (*) ["+"] - // NonterminalId = Id (*) [">"] - // NonterminalId = Id (*) ["?"] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [","] - // Symbol = @L "<" @L Id (*) ":" Symbol0 ">" @R [">"] - // - // "?" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // "*" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ">" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // ":" -> Shift(S393) - // "+" -> Reduce(NonterminalId = Id => Call(ActionFn(67));) - // - pub fn __state387< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state393(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - Some((_, Tok::Question(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Star(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action67(text, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::NonterminalId(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 388 - // Conversion = @L Terminal "=>" @R (*) [","] - // Conversion = @L Terminal "=>" @R (*) ["}"] - // - // "}" -> Reduce(Conversion = @L, Terminal, "=>", @R => TryCall(ActionFn(55));) - // "," -> Reduce(Conversion = @L, Terminal, "=>", @R => TryCall(ActionFn(55));) - // - pub fn __state388< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option<&'input str>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = try!(super::__action55(text, __sym0, __sym1, __sym2, __sym3)); - return Ok((__lookbehind, __lookahead, __Nonterminal::Conversion(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = try!(super::__action55(text, __sym0, __sym1, __sym2, __sym3)); - return Ok((__lookbehind, __lookahead, __Nonterminal::Conversion(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 389 - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["type"] - // AssociatedType = "type" @L (*) Id @R "=" TypeRef ";" ["}"] - // Id = (*) "Id" ["="] - // - // "Id" -> Shift(S176) - // - // Id -> S394 - pub fn __state389< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state176(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state394(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 390 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [")"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R ["StringLiteral"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "*" -> Shift(S257) - // "?" -> Shift(S259) - // "+" -> Shift(S260) - // ">" -> Shift(S395) - // - // RepeatOp -> S256 - pub fn __state390< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state395(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 391 - // SymbolKind1 = MacroId "<" Comma ">" (*) ["*"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["+"] - // SymbolKind1 = MacroId "<" Comma ">" (*) [","] - // SymbolKind1 = MacroId "<" Comma ">" (*) [">"] - // SymbolKind1 = MacroId "<" Comma ">" (*) ["?"] - // - // "*" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "?" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "," -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // ">" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // "+" -> Reduce(SymbolKind1 = MacroId, "<", Comma, ">" => Call(ActionFn(38));) - // - pub fn __state391< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Star(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Question(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - Some((_, Tok::Plus(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action38(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::SymbolKind1(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 392 - // Symbol = @L "<" Symbol0 ">" @R (*) [","] - // Symbol = @L "<" Symbol0 ">" @R (*) [">"] - // - // "," -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // ">" -> Reduce(Symbol = @L, "<", Symbol0, ">", @R => Call(ActionFn(30));) - // - pub fn __state392< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action30(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 393 - // @L = (*) ["("] - // @L = (*) ["@L"] - // @L = (*) ["@R"] - // @L = (*) ["Escape"] - // @L = (*) ["Id"] - // @L = (*) ["MacroId"] - // @L = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [","] - // Symbol = @L "<" @L Id ":" (*) Symbol0 ">" @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["*"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["+"] - // Symbol0 = (*) Symbol0 RepeatOp @R [">"] - // Symbol0 = (*) Symbol0 RepeatOp @R ["?"] - // Symbol0 = (*) Symbol1 ["*"] - // Symbol0 = (*) Symbol1 ["+"] - // Symbol0 = (*) Symbol1 [">"] - // Symbol0 = (*) Symbol1 ["?"] - // Symbol1 = (*) @L SymbolKind1 @R ["*"] - // Symbol1 = (*) @L SymbolKind1 @R ["+"] - // Symbol1 = (*) @L SymbolKind1 @R [">"] - // Symbol1 = (*) @L SymbolKind1 @R ["?"] - // - // "Escape" -> Reduce(@L = => Lookahead;) - // "@R" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "StringLiteral" -> Reduce(@L = => Lookahead;) - // "MacroId" -> Reduce(@L = => Lookahead;) - // "@L" -> Reduce(@L = => Lookahead;) - // - // Symbol1 -> S220 - // Symbol0 -> S396 - // @L -> S327 - pub fn __state393< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Symbol1(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state220(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Symbol0(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state396(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::_40L(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state327(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 394 - // @R = (*) ["="] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["type"] - // AssociatedType = "type" @L Id (*) @R "=" TypeRef ";" ["}"] - // - // "=" -> Reduce(@R = => Lookbehind;) - // - // @R -> S397 - pub fn __state394< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Equals(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state397(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 395 - // @R = (*) ["("] - // @R = (*) [")"] - // @R = (*) ["<"] - // @R = (*) ["@L"] - // @R = (*) ["@R"] - // @R = (*) ["Escape"] - // @R = (*) ["Id"] - // @R = (*) ["MacroId"] - // @R = (*) ["StringLiteral"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [")"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R ["StringLiteral"] - // - // ")" -> Reduce(@R = => Lookbehind;) - // "StringLiteral" -> Reduce(@R = => Lookbehind;) - // "(" -> Reduce(@R = => Lookbehind;) - // "Id" -> Reduce(@R = => Lookbehind;) - // "MacroId" -> Reduce(@R = => Lookbehind;) - // "Escape" -> Reduce(@R = => Lookbehind;) - // "@R" -> Reduce(@R = => Lookbehind;) - // "<" -> Reduce(@R = => Lookbehind;) - // "@L" -> Reduce(@R = => Lookbehind;) - // - // @R -> S398 - pub fn __state395< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::MacroId(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Lookahead(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state398(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 396 - // RepeatOp = (*) "*" ["*"] - // RepeatOp = (*) "*" ["+"] - // RepeatOp = (*) "*" [">"] - // RepeatOp = (*) "*" ["?"] - // RepeatOp = (*) "+" ["*"] - // RepeatOp = (*) "+" ["+"] - // RepeatOp = (*) "+" [">"] - // RepeatOp = (*) "+" ["?"] - // RepeatOp = (*) "?" ["*"] - // RepeatOp = (*) "?" ["+"] - // RepeatOp = (*) "?" [">"] - // RepeatOp = (*) "?" ["?"] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [","] - // Symbol = @L "<" @L Id ":" Symbol0 (*) ">" @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["*"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["+"] - // Symbol0 = Symbol0 (*) RepeatOp @R [">"] - // Symbol0 = Symbol0 (*) RepeatOp @R ["?"] - // - // "?" -> Shift(S259) - // ">" -> Shift(S399) - // "+" -> Shift(S260) - // "*" -> Shift(S257) - // - // RepeatOp -> S256 - pub fn __state396< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Question(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state259(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state399(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - Some((_, __tok @ Tok::Plus(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state260(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - Some((_, __tok @ Tok::Star(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state257(text, __lookbehind, __lookahead, __tokens, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym5.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::RepeatOp(__nt) => { - let __sym6 = &mut Some(__nt); - __result = try!(__state256(text, __lookbehind, __lookahead, __tokens, __sym5, __sym6)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 397 - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["type"] - // AssociatedType = "type" @L Id @R (*) "=" TypeRef ";" ["}"] - // - // "=" -> Shift(S400) - // - pub fn __state397< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Equals(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state400(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 398 - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["("] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [")"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["<"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@L"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["@R"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Escape"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["Id"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["MacroId"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) ["StringLiteral"] - // - // "Id" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "MacroId" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "Escape" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "StringLiteral" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "<" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@L" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "@R" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // ")" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // "(" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // - pub fn __state398< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::MacroId(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::StringLiteral(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookahead(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::Lookbehind(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 399 - // @R = (*) [","] - // @R = (*) [">"] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [","] - // Symbol = @L "<" @L Id ":" Symbol0 ">" (*) @R [">"] - // - // ">" -> Reduce(@R = => Lookbehind;) - // "," -> Reduce(@R = => Lookbehind;) - // - // @R -> S401 - pub fn __state399< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym6.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym7 = &mut Some(__nt); - __result = try!(__state401(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 400 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["type"] - // AssociatedType = "type" @L Id @R "=" (*) TypeRef ";" ["}"] - // Escape = (*) "Escape" [";"] - // Path = (*) "::"? ( "::")* Id [";"] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [";"] - // TypeRef = (*) Path [";"] - // TypeRef = (*) Path "<" Comma ">" [";"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [";"] - // TypeRef = (*) "(" Comma ")" [";"] - // - // "Escape" -> Shift(S268) - // "&" -> Shift(S273) - // "(" -> Shift(S270) - // "::" -> Shift(S50) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // Path -> S274 - // Escape -> S271 - // TypeRef -> S402 - // "::"? -> S272 - pub fn __state400< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state268(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state273(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state270(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym5 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym4.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state274(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::Escape(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state271(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state402(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym5 = &mut Some(__nt); - __result = try!(__state272(text, __lookbehind, __lookahead, __tokens, __sym5)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 401 - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [","] - // Symbol = @L "<" @L Id ":" Symbol0 ">" @R (*) [">"] - // - // "," -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // ">" -> Reduce(Symbol = @L, "<", @L, Id, ":", Symbol0, ">", @R => Call(ActionFn(29));) - // - pub fn __state401< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - __sym7: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __sym7 = __sym7.take().unwrap(); - let __nt = super::__action29(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6, __sym7); - return Ok((__lookbehind, __lookahead, __Nonterminal::Symbol(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 402 - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["type"] - // AssociatedType = "type" @L Id @R "=" TypeRef (*) ";" ["}"] - // - // ";" -> Shift(S403) - // - pub fn __state402< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Semi(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym6 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state403(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 403 - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["type"] - // AssociatedType = "type" @L Id @R "=" TypeRef ";" (*) ["}"] - // - // "}" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // "type" -> Reduce(AssociatedType = "type", @L, Id, @R, "=", TypeRef, ";" => Call(ActionFn(54));) - // - pub fn __state403< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option, - __sym4: &mut Option>, - __sym5: &mut Option, - __sym6: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - Some((_, Tok::Type(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __sym5 = __sym5.take().unwrap(); - let __sym6 = __sym6.take().unwrap(); - let __nt = super::__action54(text, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6); - return Ok((__lookbehind, __lookahead, __Nonterminal::AssociatedType(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } -} -#[allow(non_snake_case)] -pub fn parse_Pattern< - 'input, - __TOKEN: __ToTriple<'input, Error=tok::Error>, - __TOKENS: IntoIterator, ->( - text: &'input str, - __tokens: __TOKENS, -) -> Result, __ParseError,tok::Error>> -{ - let mut __tokens = __tokens.into_iter(); - let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - match try!(__parse__Pattern::__state0(text, None, __lookahead, &mut __tokens)) { - (_, Some(__lookahead), _) => { - Err(__ParseError::ExtraToken { token: __lookahead }) - } - (_, None, __parse__Pattern::__Nonterminal::____Pattern(__nt)) => { - Ok(__nt) - } - _ => unreachable!(), - } -} - -mod __parse__Pattern { - #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)] - - use intern::{intern, InternedString}; - use grammar::parse_tree::*; - use grammar::pattern::*; - use std::iter::once; - use tok::{self, Tok}; - extern crate lalrpop_util as __lalrpop_util; - use self::__lalrpop_util::ParseError as __ParseError; - use super::__ToTriple; - - pub enum __Nonterminal<'input, > { - ____Grammar(Grammar), - Comma_3cNonterminalId_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType(AssociatedType), - Action_3f(::std::option::Option), - GrammarParameter_3f(::std::option::Option), - NonterminalId_3f(::std::option::Option), - Alternatives(Vec), - _28_3cId_3e_20_22_3a_3a_22_29_2a(::std::vec::Vec), - _28_3cFieldPattern_3e_20_22_2c_22_29(FieldPattern), - _22where_22_3f(::std::option::Option>), - Id(InternedString), - _28_3cTypeRef_3e_20_22_2c_22_29(TypeRef), - _40R(usize), - GrammarTypeParameters_3f(::std::option::Option>), - Use_2a(::std::vec::Vec), - _28_3cConversion_3e_20_22_2c_22_29(Conversion), - Symbol1(Symbol), - GrammarItem(GrammarItem), - RepeatOp(RepeatOp), - ExprSymbol(ExprSymbol), - Terminal(TerminalString), - Symbol_3f(::std::option::Option), - MacroId(NonterminalString), - _28_22if_22_20_3cCond_3e_29(Condition), - GrammarItem_2a(::std::vec::Vec), - FieldPattern_3f(::std::option::Option>), - _28_3cTypeRef_3e_20_22_2c_22_29_2a(::std::vec::Vec), - Comma_3cConversion_3e(Vec), - Action(ActionKind), - Cond(Condition), - Conversion_3f(::std::option::Option), - _28_3cFieldPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameters(Vec), - _22_3a_3a_22_3f(::std::option::Option>), - TypeRefOrLifetime_3f(::std::option::Option), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(::std::vec::Vec), - AssociatedType_2a(::std::vec::Vec), - NonterminalName((NonterminalString, Vec)), - Comma_3cTypeRefOrLifetime_3e(Vec), - FieldPattern(FieldPattern), - Escape(InternedString), - Symbol0(Symbol), - Pattern_3f(::std::option::Option>), - _28_22if_22_20_3cCond_3e_29_3f(::std::option::Option), - _28_3cTypeParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - SymbolKind1(SymbolKind), - Symbol(Symbol), - Alternative(Alternative), - _22mut_22_3f(::std::option::Option>), - PatternKind(PatternKind), - GrammarTypeParameters(Vec), - Path(Path), - TypeRef_3f(::std::option::Option), - ExternToken(GrammarItem), - Lifetime_3f(::std::option::Option), - Comma_3cTypeRef_3e(Vec), - Comma_3cGrammarParameter_3e(Vec), - Grammar(Grammar), - _28_3cPattern_3e_20_22_2c_22_29_2a(::std::vec::Vec>), - GrammarParameter(Parameter), - _28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(TypeRef), - _28_3cGrammarParameter_3e_20_22_2c_22_29(Parameter), - _28_3cSymbol_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeRef(TypeRef), - _28_22_3a_22_20_3cTypeRef_3e_29_3f(::std::option::Option), - Nonterminal(GrammarItem), - Pattern(Pattern), - Conversion(Conversion), - Use(GrammarItem), - CondOp(ConditionOp), - NonterminalId(NonterminalString), - Comma_3cSymbol_3e(Vec), - _28_3cSymbol_3e_20_22_2c_22_29(Symbol), - _28_22_3a_22_20_3cTypeRef_3e_29(TypeRef), - _28_3cId_3e_20_22_3a_3a_22_29(InternedString), - Alternative_2a(::std::vec::Vec), - _28_3cGrammarParameter_3e_20_22_2c_22_29_2a(::std::vec::Vec), - _40L(usize), - _28_3cTypeParameter_3e_20_22_2c_22_29(TypeParameter), - Lifetime(InternedString), - TypeParameter_3f(::std::option::Option), - _28_3cConversion_3e_20_22_2c_22_29_2a(::std::vec::Vec), - TypeParameter(TypeParameter), - Comma_3cTypeParameter_3e(Vec), - _28_3cNonterminalId_3e_20_22_2c_22_29(NonterminalString), - _22pub_22_3f(::std::option::Option>), - Comma_3cPattern_3e(Vec>), - TypeRefOrLifetime(TypeRef), - _28_3cPattern_3e_20_22_2c_22_29(Pattern), - GrammarParameters_3f(::std::option::Option>), - Symbol_2a(::std::vec::Vec), - ____Pattern(Pattern), - StringLiteral(InternedString), - } - - // State 0 - // @L = (*) ["("] - // @L = (*) [".."] - // @L = (*) ["::"] - // @L = (*) ["<"] - // @L = (*) ["Id"] - // @L = (*) ["_"] - // Pattern = (*) @L PatternKind @R [EOF] - // __Pattern = (*) Pattern [EOF] - // - // "_" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // "::" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // ".." -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // - // @L -> S2 - // Pattern -> S1 - pub fn __state0< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Underscore(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - loop { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state2(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - __Nonterminal::Pattern(__nt) => { - let __sym0 = &mut Some(__nt); - __result = try!(__state1(text, __lookbehind, __lookahead, __tokens, __sym0)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - } - - // State 1 - // __Pattern = Pattern (*) [EOF] - // - // EOF -> Reduce(__Pattern = Pattern => Call(ActionFn(1));) - // - pub fn __state1< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action1(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::____Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 2 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Path = (*) "::"? ( "::")* Id [EOF] - // Path = (*) "::"? ( "::")* Id ["("] - // Path = (*) "::"? ( "::")* Id ["{"] - // Pattern = @L (*) PatternKind @R [EOF] - // PatternKind = (*) Path [EOF] - // PatternKind = (*) Path "(" Comma ")" [EOF] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [EOF] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [EOF] - // PatternKind = (*) "(" Comma ")" [EOF] - // PatternKind = (*) ".." [EOF] - // PatternKind = (*) "<" TypeRef ">" [EOF] - // PatternKind = (*) "_" [EOF] - // - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S7) - // "::" -> Shift(S6) - // "<" -> Shift(S9) - // ".." -> Shift(S4) - // "_" -> Shift(S8) - // - // PatternKind -> S5 - // Path -> S3 - // "::"? -> S10 - pub fn __state2< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state7(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state9(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state4(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Underscore(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state8(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::PatternKind(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state5(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state3(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state10(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 3 - // PatternKind = Path (*) [EOF] - // PatternKind = Path (*) "(" Comma ")" [EOF] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [EOF] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [EOF] - // - // "(" -> Shift(S12) - // EOF -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "{" -> Shift(S11) - // - pub fn __state3< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state12(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state11(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 4 - // PatternKind = ".." (*) [EOF] - // - // EOF -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // - pub fn __state4< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 5 - // @R = (*) [EOF] - // Pattern = @L PatternKind (*) @R [EOF] - // - // EOF -> Reduce(@R = => Lookbehind;) - // - // @R -> S13 - pub fn __state5< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state13(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 6 - // "::"? = "::" (*) ["Id"] - // - // "Id" -> Reduce("::"? = "::" => Call(ActionFn(85));) - // - pub fn __state6< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action85(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 7 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = "(" (*) Comma ")" [EOF] - // - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // Comma -> S15 - // ( ",")* -> S14 - pub fn __state7< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state15(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 8 - // PatternKind = "_" (*) [EOF] - // - // EOF -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // - pub fn __state8< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 9 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // PatternKind = "<" (*) TypeRef ">" [EOF] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "(" -> Shift(S18) - // "&" -> Shift(S17) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "::" -> Shift(S6) - // "Escape" -> Shift(S22) - // - // "::"? -> S16 - // Escape -> S20 - // Path -> S21 - // TypeRef -> S19 - pub fn __state9< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state19(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 10 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [EOF] - // Path = "::"? (*) ( "::")* Id ["("] - // Path = "::"? (*) ( "::")* Id ["{"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S23 - pub fn __state10< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state23(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 11 - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [EOF] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [EOF] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(75));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(75));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(75));) - // - // ( ",")* -> S24 - pub fn __state11< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state24(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 12 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = Path "(" (*) Comma ")" [EOF] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // Comma -> S25 - // ( ",")* -> S14 - pub fn __state12< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state25(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 13 - // Pattern = @L PatternKind @R (*) [EOF] - // - // EOF -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // - pub fn __state13< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 14 - // ( ",") = (*) Pattern "," ["("] - // ( ",") = (*) Pattern "," [")"] - // ( ",") = (*) Pattern "," [".."] - // ( ",") = (*) Pattern "," ["::"] - // ( ",") = (*) Pattern "," ["<"] - // ( ",") = (*) Pattern "," ["Id"] - // ( ",") = (*) Pattern "," ["_"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") ["<"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["_"] - // @L = (*) ["("] - // @L = (*) [".."] - // @L = (*) ["::"] - // @L = (*) ["<"] - // @L = (*) ["Id"] - // @L = (*) ["_"] - // Comma = ( ",")* (*) Pattern? [")"] - // Pattern = (*) @L PatternKind @R [")"] - // Pattern = (*) @L PatternKind @R [","] - // Pattern? = (*) [")"] - // Pattern? = (*) Pattern [")"] - // - // "::" -> Reduce(@L = => Lookahead;) - // ".." -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // ")" -> Reduce(Pattern? = => Call(ActionFn(157));) - // "_" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // - // ( ",") -> S28 - // Pattern? -> S27 - // Pattern -> S26 - // @L -> S29 - pub fn __state14< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action157(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Pattern_3f(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state28(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Pattern_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state27(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Pattern(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state26(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_40L(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state29(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 15 - // PatternKind = "(" Comma (*) ")" [EOF] - // - // ")" -> Shift(S30) - // - pub fn __state15< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state30(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 16 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id [">"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S31 - pub fn __state16< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state31(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 17 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [">"] - // - // "Lifetime" -> Shift(S32) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S33 - // Lifetime? -> S34 - pub fn __state17< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state34(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 18 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [">"] - // - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // ( ",")* -> S36 - // Comma -> S35 - pub fn __state18< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state35(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 19 - // PatternKind = "<" TypeRef (*) ">" [EOF] - // - // ">" -> Shift(S37) - // - pub fn __state19< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state37(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 20 - // TypeRef = Escape (*) [">"] - // - // ">" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state20< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 21 - // TypeRef = Path (*) [">"] - // TypeRef = Path (*) "<" Comma ">" [">"] - // - // ">" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "<" -> Shift(S38) - // - pub fn __state21< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state38(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 22 - // Escape = "Escape" (*) [">"] - // - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state22< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 23 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [EOF] - // Id = (*) "Id" ["("] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["{"] - // Path = "::"? ( "::")* (*) Id [EOF] - // Path = "::"? ( "::")* (*) Id ["("] - // Path = "::"? ( "::")* (*) Id ["{"] - // - // "Id" -> Shift(S39) - // - // Id -> S41 - // ( "::") -> S40 - pub fn __state23< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state39(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state41(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 24 - // ( ",") = (*) FieldPattern "," [".."] - // ( ",") = (*) FieldPattern "," ["Id"] - // ( ",") = (*) FieldPattern "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["Id"] - // FieldPattern = (*) @L Id @R ":" Pattern [","] - // FieldPattern = (*) @L Id @R ":" Pattern ["}"] - // FieldPattern? = (*) ["}"] - // FieldPattern? = (*) FieldPattern ["}"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [EOF] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [EOF] - // - // "Id" -> Reduce(@L = => Lookahead;) - // ".." -> Shift(S43) - // "}" -> Reduce(FieldPattern? = => Call(ActionFn(74));) - // - // @L -> S44 - // FieldPattern -> S45 - // ( ",") -> S46 - // FieldPattern? -> S42 - pub fn __state24< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state43(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action74(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::FieldPattern(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::FieldPattern_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state42(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 25 - // PatternKind = Path "(" Comma (*) ")" [EOF] - // - // ")" -> Shift(S47) - // - pub fn __state25< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state47(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 26 - // ( ",") = Pattern (*) "," ["("] - // ( ",") = Pattern (*) "," [")"] - // ( ",") = Pattern (*) "," [".."] - // ( ",") = Pattern (*) "," ["::"] - // ( ",") = Pattern (*) "," ["<"] - // ( ",") = Pattern (*) "," ["Id"] - // ( ",") = Pattern (*) "," ["_"] - // Pattern? = Pattern (*) [")"] - // - // "," -> Shift(S48) - // ")" -> Reduce(Pattern? = Pattern => Call(ActionFn(156));) - // - pub fn __state26< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state48(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action156(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 27 - // Comma = ( ",")* Pattern? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, Pattern? => Call(ActionFn(78));) - // - pub fn __state27< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - __sym1: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action78(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cPattern_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 28 - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) [".."] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) ["<"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["_"] - // - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "<" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // "_" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // ".." -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(159));) - // - pub fn __state28< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Underscore(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action159(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 29 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Path = (*) "::"? ( "::")* Id ["("] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["{"] - // Pattern = @L (*) PatternKind @R [")"] - // Pattern = @L (*) PatternKind @R [","] - // PatternKind = (*) Path [")"] - // PatternKind = (*) Path [","] - // PatternKind = (*) Path "(" Comma ")" [")"] - // PatternKind = (*) Path "(" Comma ")" [","] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [")"] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [")"] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [","] - // PatternKind = (*) "(" Comma ")" [")"] - // PatternKind = (*) "(" Comma ")" [","] - // PatternKind = (*) ".." [")"] - // PatternKind = (*) ".." [","] - // PatternKind = (*) "<" TypeRef ">" [")"] - // PatternKind = (*) "<" TypeRef ">" [","] - // PatternKind = (*) "_" [")"] - // PatternKind = (*) "_" [","] - // - // ".." -> Shift(S54) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "<" -> Shift(S50) - // "(" -> Shift(S51) - // "_" -> Shift(S55) - // "::" -> Shift(S6) - // - // Path -> S49 - // "::"? -> S53 - // PatternKind -> S52 - pub fn __state29< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state54(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state50(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state51(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Underscore(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state55(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state49(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state53(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::PatternKind(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state52(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 30 - // PatternKind = "(" Comma ")" (*) [EOF] - // - // EOF -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // - pub fn __state30< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 31 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" [">"] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id [">"] - // - // "Id" -> Shift(S57) - // - // Id -> S56 - // ( "::") -> S40 - pub fn __state31< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state57(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state56(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 32 - // Lifetime = "Lifetime" (*) ["&"] - // Lifetime = "Lifetime" (*) ["("] - // Lifetime = "Lifetime" (*) ["::"] - // Lifetime = "Lifetime" (*) ["Escape"] - // Lifetime = "Lifetime" (*) ["Id"] - // Lifetime = "Lifetime" (*) ["mut"] - // - // "Id" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "::" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "Escape" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "mut" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "&" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // "(" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state32< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 33 - // Lifetime? = Lifetime (*) ["&"] - // Lifetime? = Lifetime (*) ["("] - // Lifetime? = Lifetime (*) ["::"] - // Lifetime? = Lifetime (*) ["Escape"] - // Lifetime? = Lifetime (*) ["Id"] - // Lifetime? = Lifetime (*) ["mut"] - // - // "mut" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "::" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Id" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "&" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "Escape" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // "(" -> Reduce(Lifetime? = Lifetime => Call(ActionFn(90));) - // - pub fn __state33< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Mut(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action90(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 34 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [">"] - // - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S59) - // - // "mut"? -> S58 - pub fn __state34< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state58(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 35 - // TypeRef = "(" Comma (*) ")" [">"] - // - // ")" -> Shift(S60) - // - pub fn __state35< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state60(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 36 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRef "," ["&"] - // ( ",") = (*) TypeRef "," ["("] - // ( ",") = (*) TypeRef "," [")"] - // ( ",") = (*) TypeRef "," ["::"] - // ( ",") = (*) TypeRef "," ["Escape"] - // ( ",") = (*) TypeRef "," ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") [")"] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // Comma = ( ",")* (*) TypeRef? [")"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef? = (*) [")"] - // TypeRef? = (*) TypeRef [")"] - // - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "Escape" -> Shift(S67) - // "&" -> Shift(S66) - // "(" -> Shift(S62) - // ")" -> Reduce(TypeRef? = => Call(ActionFn(142));) - // "::" -> Shift(S6) - // - // ( ",") -> S61 - // "::"? -> S68 - // Escape -> S64 - // TypeRef? -> S63 - // Path -> S69 - // TypeRef -> S65 - pub fn __state36< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state67(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state66(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state62(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action142(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state61(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state64(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state63(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state69(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state65(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 37 - // PatternKind = "<" TypeRef ">" (*) [EOF] - // - // EOF -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // - pub fn __state37< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 38 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [">"] - // - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // ( ",")* -> S70 - // Comma -> S71 - pub fn __state38< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state71(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 39 - // Id = "Id" (*) [EOF] - // Id = "Id" (*) ["("] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["{"] - // - // EOF -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state39< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 40 - // ( "::")* = ( "::")* ( "::") (*) ["Id"] - // - // "Id" -> Reduce(( "::")* = ( "::")*, ( "::") => Call(ActionFn(83));) - // - pub fn __state40< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action83(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 41 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [EOF] - // Path = "::"? ( "::")* Id (*) ["("] - // Path = "::"? ( "::")* Id (*) ["{"] - // - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // "(" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // EOF -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state41< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 42 - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [EOF] - // - // "}" -> Shift(S73) - // - pub fn __state42< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state73(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 43 - // PatternKind = Path "{" ( ",")* ".." (*) "}" [EOF] - // - // "}" -> Shift(S74) - // - pub fn __state43< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state74(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 44 - // FieldPattern = @L (*) Id @R ":" Pattern [","] - // FieldPattern = @L (*) Id @R ":" Pattern ["}"] - // Id = (*) "Id" [":"] - // - // "Id" -> Shift(S76) - // - // Id -> S75 - pub fn __state44< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state76(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state75(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 45 - // ( ",") = FieldPattern (*) "," [".."] - // ( ",") = FieldPattern (*) "," ["Id"] - // ( ",") = FieldPattern (*) "," ["}"] - // FieldPattern? = FieldPattern (*) ["}"] - // - // "," -> Shift(S77) - // "}" -> Reduce(FieldPattern? = FieldPattern => Call(ActionFn(73));) - // - pub fn __state45< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state77(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action73(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 46 - // ( ",")* = ( ",")* ( ",") (*) [".."] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["}"] - // - // ".." -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(76));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(76));) - // "}" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(76));) - // - pub fn __state46< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action76(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action76(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action76(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 47 - // PatternKind = Path "(" Comma ")" (*) [EOF] - // - // EOF -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // - pub fn __state47< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 48 - // ( ",") = Pattern "," (*) ["("] - // ( ",") = Pattern "," (*) [")"] - // ( ",") = Pattern "," (*) [".."] - // ( ",") = Pattern "," (*) ["::"] - // ( ",") = Pattern "," (*) ["<"] - // ( ",") = Pattern "," (*) ["Id"] - // ( ",") = Pattern "," (*) ["_"] - // - // "(" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "_" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // ")" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "Id" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "::" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // ".." -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // "<" -> Reduce(( ",") = Pattern, "," => Call(ActionFn(160));) - // - pub fn __state48< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Underscore(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action160(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 49 - // PatternKind = Path (*) [")"] - // PatternKind = Path (*) [","] - // PatternKind = Path (*) "(" Comma ")" [")"] - // PatternKind = Path (*) "(" Comma ")" [","] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [")"] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [")"] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [","] - // - // ")" -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "{" -> Shift(S79) - // "," -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "(" -> Shift(S78) - // - pub fn __state49< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state79(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state78(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 50 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // PatternKind = "<" (*) TypeRef ">" [")"] - // PatternKind = "<" (*) TypeRef ">" [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "(" -> Shift(S18) - // "::" -> Shift(S6) - // "&" -> Shift(S17) - // "Escape" -> Shift(S22) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // Path -> S21 - // TypeRef -> S80 - // Escape -> S20 - // "::"? -> S16 - pub fn __state50< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state80(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 51 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = "(" (*) Comma ")" [")"] - // PatternKind = "(" (*) Comma ")" [","] - // - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // ( ",")* -> S14 - // Comma -> S81 - pub fn __state51< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state81(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 52 - // @R = (*) [")"] - // @R = (*) [","] - // Pattern = @L PatternKind (*) @R [")"] - // Pattern = @L PatternKind (*) @R [","] - // - // "," -> Reduce(@R = => Lookbehind;) - // ")" -> Reduce(@R = => Lookbehind;) - // - // @R -> S82 - pub fn __state52< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state82(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 53 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["("] - // Path = "::"? (*) ( "::")* Id [")"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["{"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S83 - pub fn __state53< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state83(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 54 - // PatternKind = ".." (*) [")"] - // PatternKind = ".." (*) [","] - // - // "," -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // ")" -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // - pub fn __state54< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 55 - // PatternKind = "_" (*) [")"] - // PatternKind = "_" (*) [","] - // - // "," -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // ")" -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // - pub fn __state55< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 56 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) [">"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // ">" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state56< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 57 - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) [">"] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state57< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 58 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "Escape" -> Shift(S22) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S18) - // "&" -> Shift(S17) - // "::" -> Shift(S6) - // - // "::"? -> S16 - // TypeRef -> S84 - // Path -> S21 - // Escape -> S20 - pub fn __state58< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state84(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 59 - // "mut"? = "mut" (*) ["&"] - // "mut"? = "mut" (*) ["("] - // "mut"? = "mut" (*) ["::"] - // "mut"? = "mut" (*) ["Escape"] - // "mut"? = "mut" (*) ["Id"] - // - // "Escape" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "Id" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "(" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "::" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // "&" -> Reduce("mut"? = "mut" => Call(ActionFn(88));) - // - pub fn __state59< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action88(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 60 - // TypeRef = "(" Comma ")" (*) [">"] - // - // ">" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state60< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 61 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) [")"] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // ")" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(144));) - // - pub fn __state61< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action144(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 62 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [")"] - // TypeRef = "(" (*) Comma ")" [","] - // - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S85 - // ( ",")* -> S36 - pub fn __state62< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state85(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 63 - // Comma = ( ",")* TypeRef? (*) [")"] - // - // ")" -> Reduce(Comma = ( ",")*, TypeRef? => Call(ActionFn(92));) - // - pub fn __state63< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action92(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRef_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 64 - // TypeRef = Escape (*) [")"] - // TypeRef = Escape (*) [","] - // - // ")" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state64< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 65 - // ( ",") = TypeRef (*) "," ["&"] - // ( ",") = TypeRef (*) "," ["("] - // ( ",") = TypeRef (*) "," [")"] - // ( ",") = TypeRef (*) "," ["::"] - // ( ",") = TypeRef (*) "," ["Escape"] - // ( ",") = TypeRef (*) "," ["Id"] - // TypeRef? = TypeRef (*) [")"] - // - // "," -> Shift(S86) - // ")" -> Reduce(TypeRef? = TypeRef => Call(ActionFn(141));) - // - pub fn __state65< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state86(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action141(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 66 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [")"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S32) - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // - // Lifetime -> S33 - // Lifetime? -> S87 - pub fn __state66< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state87(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 67 - // Escape = "Escape" (*) [")"] - // Escape = "Escape" (*) [","] - // - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ")" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state67< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 68 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [")"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S88 - pub fn __state68< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state88(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 69 - // TypeRef = Path (*) [")"] - // TypeRef = Path (*) [","] - // TypeRef = Path (*) "<" Comma ">" [")"] - // TypeRef = Path (*) "<" Comma ">" [","] - // - // "<" -> Shift(S89) - // ")" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state69< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state89(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 70 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["&"] - // ( ",") = (*) TypeRefOrLifetime "," ["("] - // ( ",") = (*) TypeRefOrLifetime "," ["::"] - // ( ",") = (*) TypeRefOrLifetime "," [">"] - // ( ",") = (*) TypeRefOrLifetime "," ["Escape"] - // ( ",") = (*) TypeRefOrLifetime "," ["Id"] - // ( ",") = (*) TypeRefOrLifetime "," ["Lifetime"] - // ( ",")* = ( ",")* (*) ( ",") ["&"] - // ( ",")* = ( ",")* (*) ( ",") ["("] - // ( ",")* = ( ",")* (*) ( ",") ["::"] - // ( ",")* = ( ",")* (*) ( ",") [">"] - // ( ",")* = ( ",")* (*) ( ",") ["Escape"] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["Lifetime"] - // Comma = ( ",")* (*) TypeRefOrLifetime? [">"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Lifetime = (*) "Lifetime" [","] - // Lifetime = (*) "Lifetime" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // TypeRefOrLifetime = (*) Lifetime [","] - // TypeRefOrLifetime = (*) Lifetime [">"] - // TypeRefOrLifetime = (*) TypeRef [","] - // TypeRefOrLifetime = (*) TypeRef [">"] - // TypeRefOrLifetime? = (*) [">"] - // TypeRefOrLifetime? = (*) TypeRefOrLifetime [">"] - // - // "Lifetime" -> Shift(S95) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S94) - // "(" -> Shift(S93) - // "Escape" -> Shift(S97) - // ">" -> Reduce(TypeRefOrLifetime? = => Call(ActionFn(147));) - // "::" -> Shift(S6) - // - // TypeRefOrLifetime? -> S100 - // TypeRefOrLifetime -> S99 - // TypeRef -> S101 - // Lifetime -> S98 - // ( ",") -> S92 - // "::"? -> S90 - // Escape -> S96 - // Path -> S91 - pub fn __state70< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state95(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state97(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action147(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeRefOrLifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state100(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::TypeRefOrLifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state99(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state101(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state98(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state92(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state96(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state91(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 71 - // TypeRef = Path "<" Comma (*) ">" [">"] - // - // ">" -> Shift(S102) - // - pub fn __state71< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state102(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 72 - // ( "::") = Id "::" (*) ["Id"] - // - // "Id" -> Reduce(( "::") = Id, "::" => Call(ActionFn(84));) - // - pub fn __state72< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action84(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 73 - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [EOF] - // - // EOF -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // - pub fn __state73< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 74 - // PatternKind = Path "{" ( ",")* ".." "}" (*) [EOF] - // - // EOF -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // - pub fn __state74< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - None => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 75 - // @R = (*) [":"] - // FieldPattern = @L Id (*) @R ":" Pattern [","] - // FieldPattern = @L Id (*) @R ":" Pattern ["}"] - // - // ":" -> Reduce(@R = => Lookbehind;) - // - // @R -> S103 - pub fn __state75< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state103(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 76 - // Id = "Id" (*) [":"] - // - // ":" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state76< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Colon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 77 - // ( ",") = FieldPattern "," (*) [".."] - // ( ",") = FieldPattern "," (*) ["Id"] - // ( ",") = FieldPattern "," (*) ["}"] - // - // ".." -> Reduce(( ",") = FieldPattern, "," => Call(ActionFn(77));) - // "}" -> Reduce(( ",") = FieldPattern, "," => Call(ActionFn(77));) - // "Id" -> Reduce(( ",") = FieldPattern, "," => Call(ActionFn(77));) - // - pub fn __state77< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::DotDot(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action77(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action77(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action77(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 78 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = Path "(" (*) Comma ")" [")"] - // PatternKind = Path "(" (*) Comma ")" [","] - // - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // ( ",")* -> S14 - // Comma -> S104 - pub fn __state78< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state104(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 79 - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [")"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [","] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [")"] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [","] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(75));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(75));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(75));) - // - // ( ",")* -> S105 - pub fn __state79< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state105(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 80 - // PatternKind = "<" TypeRef (*) ">" [")"] - // PatternKind = "<" TypeRef (*) ">" [","] - // - // ">" -> Shift(S106) - // - pub fn __state80< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state106(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 81 - // PatternKind = "(" Comma (*) ")" [")"] - // PatternKind = "(" Comma (*) ")" [","] - // - // ")" -> Shift(S107) - // - pub fn __state81< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state107(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 82 - // Pattern = @L PatternKind @R (*) [")"] - // Pattern = @L PatternKind @R (*) [","] - // - // ")" -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // "," -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // - pub fn __state82< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 83 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" [")"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["{"] - // Path = "::"? ( "::")* (*) Id ["("] - // Path = "::"? ( "::")* (*) Id [")"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["{"] - // - // "Id" -> Shift(S108) - // - // ( "::") -> S40 - // Id -> S109 - pub fn __state83< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state108(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state109(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 84 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [">"] - // - // ">" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state84< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 85 - // TypeRef = "(" Comma (*) ")" [")"] - // TypeRef = "(" Comma (*) ")" [","] - // - // ")" -> Shift(S110) - // - pub fn __state85< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state110(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 86 - // ( ",") = TypeRef "," (*) ["&"] - // ( ",") = TypeRef "," (*) ["("] - // ( ",") = TypeRef "," (*) [")"] - // ( ",") = TypeRef "," (*) ["::"] - // ( ",") = TypeRef "," (*) ["Escape"] - // ( ",") = TypeRef "," (*) ["Id"] - // - // "Id" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "&" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "Escape" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "(" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // ")" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // "::" -> Reduce(( ",") = TypeRef, "," => Call(ActionFn(145));) - // - pub fn __state86< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action145(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 87 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [")"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S59) - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S111 - pub fn __state87< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state111(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 88 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [")"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Path = "::"? ( "::")* (*) Id [")"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // - // "Id" -> Shift(S113) - // - // ( "::") -> S40 - // Id -> S112 - pub fn __state88< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state113(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state112(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 89 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [")"] - // TypeRef = Path "<" (*) Comma ">" [","] - // - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S114 - // ( ",")* -> S70 - pub fn __state89< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state114(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 90 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["<"] - // Path = "::"? (*) ( "::")* Id [">"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S115 - pub fn __state90< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state115(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 91 - // TypeRef = Path (*) [","] - // TypeRef = Path (*) [">"] - // TypeRef = Path (*) "<" Comma ">" [","] - // TypeRef = Path (*) "<" Comma ">" [">"] - // - // "<" -> Shift(S116) - // "," -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // ">" -> Reduce(TypeRef = Path => Call(ActionFn(49));) - // - pub fn __state91< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state116(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action49(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 92 - // ( ",")* = ( ",")* ( ",") (*) ["&"] - // ( ",")* = ( ",")* ( ",") (*) ["("] - // ( ",")* = ( ",")* ( ",") (*) ["::"] - // ( ",")* = ( ",")* ( ",") (*) [">"] - // ( ",")* = ( ",")* ( ",") (*) ["Escape"] - // ( ",")* = ( ",")* ( ",") (*) ["Id"] - // ( ",")* = ( ",")* ( ",") (*) ["Lifetime"] - // - // "(" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "::" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Escape" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Id" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "&" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // ">" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // "Lifetime" -> Reduce(( ",")* = ( ",")*, ( ",") => Call(ActionFn(149));) - // - pub fn __state92< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action149(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 93 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // Comma = (*) ( ",")* TypeRef? [")"] - // TypeRef = "(" (*) Comma ")" [","] - // TypeRef = "(" (*) Comma ")" [">"] - // - // "&" -> Reduce(( ",")* = => Call(ActionFn(143));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(143));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(143));) - // - // Comma -> S117 - // ( ",")* -> S36 - pub fn __state93< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action143(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRef_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state117(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cTypeRef_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state36(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 94 - // Lifetime = (*) "Lifetime" ["&"] - // Lifetime = (*) "Lifetime" ["("] - // Lifetime = (*) "Lifetime" ["::"] - // Lifetime = (*) "Lifetime" ["Escape"] - // Lifetime = (*) "Lifetime" ["Id"] - // Lifetime = (*) "Lifetime" ["mut"] - // Lifetime? = (*) ["&"] - // Lifetime? = (*) ["("] - // Lifetime? = (*) ["::"] - // Lifetime? = (*) ["Escape"] - // Lifetime? = (*) ["Id"] - // Lifetime? = (*) ["mut"] - // Lifetime? = (*) Lifetime ["&"] - // Lifetime? = (*) Lifetime ["("] - // Lifetime? = (*) Lifetime ["::"] - // Lifetime? = (*) Lifetime ["Escape"] - // Lifetime? = (*) Lifetime ["Id"] - // Lifetime? = (*) Lifetime ["mut"] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" (*) Lifetime? "mut"? TypeRef [">"] - // - // "mut" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "::" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "&" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Escape" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Id" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "(" -> Reduce(Lifetime? = => Call(ActionFn(91));) - // "Lifetime" -> Shift(S32) - // - // Lifetime? -> S118 - // Lifetime -> S33 - pub fn __state94< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Lifetime(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state32(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Mut(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action91(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::Lifetime_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Lifetime_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state118(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::Lifetime(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state33(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 95 - // Lifetime = "Lifetime" (*) [","] - // Lifetime = "Lifetime" (*) [">"] - // - // "," -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // ">" -> Reduce(Lifetime = "Lifetime" => Call(ActionFn(70));) - // - pub fn __state95< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action70(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Lifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 96 - // TypeRef = Escape (*) [","] - // TypeRef = Escape (*) [">"] - // - // ">" -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // "," -> Reduce(TypeRef = Escape => TryCall(ActionFn(46));) - // - pub fn __state96< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = try!(super::__action46(text, __sym0)); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 97 - // Escape = "Escape" (*) [","] - // Escape = "Escape" (*) [">"] - // - // "," -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // ">" -> Reduce(Escape = "Escape" => Call(ActionFn(69));) - // - pub fn __state97< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action69(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Escape(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 98 - // TypeRefOrLifetime = Lifetime (*) [","] - // TypeRefOrLifetime = Lifetime (*) [">"] - // - // "," -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // ">" -> Reduce(TypeRefOrLifetime = Lifetime => Call(ActionFn(51));) - // - pub fn __state98< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action51(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 99 - // ( ",") = TypeRefOrLifetime (*) "," ["&"] - // ( ",") = TypeRefOrLifetime (*) "," ["("] - // ( ",") = TypeRefOrLifetime (*) "," ["::"] - // ( ",") = TypeRefOrLifetime (*) "," [">"] - // ( ",") = TypeRefOrLifetime (*) "," ["Escape"] - // ( ",") = TypeRefOrLifetime (*) "," ["Id"] - // ( ",") = TypeRefOrLifetime (*) "," ["Lifetime"] - // TypeRefOrLifetime? = TypeRefOrLifetime (*) [">"] - // - // ">" -> Reduce(TypeRefOrLifetime? = TypeRefOrLifetime => Call(ActionFn(146));) - // "," -> Shift(S119) - // - pub fn __state99< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Comma(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state119(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action146(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime_3f(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 100 - // Comma = ( ",")* TypeRefOrLifetime? (*) [">"] - // - // ">" -> Reduce(Comma = ( ",")*, TypeRefOrLifetime? => Call(ActionFn(87));) - // - pub fn __state100< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::vec::Vec>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action87(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 101 - // TypeRefOrLifetime = TypeRef (*) [","] - // TypeRefOrLifetime = TypeRef (*) [">"] - // - // ">" -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // "," -> Reduce(TypeRefOrLifetime = TypeRef => Call(ActionFn(50));) - // - pub fn __state101< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action50(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRefOrLifetime(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 102 - // TypeRef = Path "<" Comma ">" (*) [">"] - // - // ">" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state102< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 103 - // FieldPattern = @L Id @R (*) ":" Pattern [","] - // FieldPattern = @L Id @R (*) ":" Pattern ["}"] - // - // ":" -> Shift(S120) - // - pub fn __state103< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Colon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state120(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 104 - // PatternKind = Path "(" Comma (*) ")" [")"] - // PatternKind = Path "(" Comma (*) ")" [","] - // - // ")" -> Shift(S121) - // - pub fn __state104< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state121(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 105 - // ( ",") = (*) FieldPattern "," [".."] - // ( ",") = (*) FieldPattern "," ["Id"] - // ( ",") = (*) FieldPattern "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["Id"] - // FieldPattern = (*) @L Id @R ":" Pattern [","] - // FieldPattern = (*) @L Id @R ":" Pattern ["}"] - // FieldPattern? = (*) ["}"] - // FieldPattern? = (*) FieldPattern ["}"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [")"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [","] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [")"] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [","] - // - // "}" -> Reduce(FieldPattern? = => Call(ActionFn(74));) - // "Id" -> Reduce(@L = => Lookahead;) - // ".." -> Shift(S122) - // - // FieldPattern -> S45 - // FieldPattern? -> S123 - // @L -> S44 - // ( ",") -> S46 - pub fn __state105< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state122(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action74(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::FieldPattern(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::FieldPattern_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state123(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::_40L(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 106 - // PatternKind = "<" TypeRef ">" (*) [")"] - // PatternKind = "<" TypeRef ">" (*) [","] - // - // ")" -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // "," -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // - pub fn __state106< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 107 - // PatternKind = "(" Comma ")" (*) [")"] - // PatternKind = "(" Comma ")" (*) [","] - // - // ")" -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // "," -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // - pub fn __state107< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 108 - // Id = "Id" (*) ["("] - // Id = "Id" (*) [")"] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["{"] - // - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state108< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 109 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["("] - // Path = "::"? ( "::")* Id (*) [")"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["{"] - // - // "(" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // ")" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state109< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 110 - // TypeRef = "(" Comma ")" (*) [")"] - // TypeRef = "(" Comma ")" (*) [","] - // - // ")" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state110< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 111 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [")"] - // Escape = (*) "Escape" [","] - // Path = (*) "::"? ( "::")* Id [")"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // TypeRef = (*) Escape [")"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Path [")"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path "<" Comma ">" [")"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [")"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [")"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = (*) "(" Comma ")" [")"] - // TypeRef = (*) "(" Comma ")" [","] - // - // "Escape" -> Shift(S67) - // "::" -> Shift(S6) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "(" -> Shift(S62) - // "&" -> Shift(S66) - // - // TypeRef -> S124 - // Path -> S69 - // "::"? -> S68 - // Escape -> S64 - pub fn __state111< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state67(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state62(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state66(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state124(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state69(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state68(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state64(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 112 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [")"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // - // "::" -> Shift(S72) - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ")" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state112< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 113 - // Id = "Id" (*) [")"] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // - // ")" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state113< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 114 - // TypeRef = Path "<" Comma (*) ">" [")"] - // TypeRef = Path "<" Comma (*) ">" [","] - // - // ">" -> Shift(S125) - // - pub fn __state114< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state125(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 115 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["<"] - // Id = (*) "Id" [">"] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["<"] - // Path = "::"? ( "::")* (*) Id [">"] - // - // "Id" -> Shift(S126) - // - // ( "::") -> S40 - // Id -> S127 - pub fn __state115< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state126(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state127(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 116 - // ( ",")* = (*) ["&"] - // ( ",")* = (*) ["("] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) [">"] - // ( ",")* = (*) ["Escape"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["Lifetime"] - // ( ",")* = (*) ( ",")* ( ",") ["&"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") [">"] - // ( ",")* = (*) ( ",")* ( ",") ["Escape"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["Lifetime"] - // Comma = (*) ( ",")* TypeRefOrLifetime? [">"] - // TypeRef = Path "<" (*) Comma ">" [","] - // TypeRef = Path "<" (*) Comma ">" [">"] - // - // ">" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "&" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Escape" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(148));) - // "Lifetime" -> Reduce(( ",")* = => Call(ActionFn(148));) - // - // Comma -> S128 - // ( ",")* -> S70 - pub fn __state116< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Lifetime(_), _)) => { - let __nt = super::__action148(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cTypeRefOrLifetime_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state128(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state70(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 117 - // TypeRef = "(" Comma (*) ")" [","] - // TypeRef = "(" Comma (*) ")" [">"] - // - // ")" -> Shift(S129) - // - pub fn __state117< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state129(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 118 - // "mut"? = (*) ["&"] - // "mut"? = (*) ["("] - // "mut"? = (*) ["::"] - // "mut"? = (*) ["Escape"] - // "mut"? = (*) ["Id"] - // "mut"? = (*) "mut" ["&"] - // "mut"? = (*) "mut" ["("] - // "mut"? = (*) "mut" ["::"] - // "mut"? = (*) "mut" ["Escape"] - // "mut"? = (*) "mut" ["Id"] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [","] - // TypeRef = "&" Lifetime? (*) "mut"? TypeRef [">"] - // - // "&" -> Reduce("mut"? = => Call(ActionFn(89));) - // "mut" -> Shift(S59) - // "Escape" -> Reduce("mut"? = => Call(ActionFn(89));) - // "Id" -> Reduce("mut"? = => Call(ActionFn(89));) - // "::" -> Reduce("mut"? = => Call(ActionFn(89));) - // "(" -> Reduce("mut"? = => Call(ActionFn(89));) - // - // "mut"? -> S130 - pub fn __state118< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Mut(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state59(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - Some((_, Tok::Ampersand(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Escape(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action89(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22mut_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_22mut_22_3f(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state130(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 119 - // ( ",") = TypeRefOrLifetime "," (*) ["&"] - // ( ",") = TypeRefOrLifetime "," (*) ["("] - // ( ",") = TypeRefOrLifetime "," (*) ["::"] - // ( ",") = TypeRefOrLifetime "," (*) [">"] - // ( ",") = TypeRefOrLifetime "," (*) ["Escape"] - // ( ",") = TypeRefOrLifetime "," (*) ["Id"] - // ( ",") = TypeRefOrLifetime "," (*) ["Lifetime"] - // - // "&" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "::" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // ">" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Escape" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "(" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Lifetime" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // "Id" -> Reduce(( ",") = TypeRefOrLifetime, "," => Call(ActionFn(150));) - // - pub fn __state119< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Ampersand(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Escape(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Lifetime(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - Some((_, Tok::Id(_), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __nt = super::__action150(text, __sym0, __sym1); - return Ok((__lookbehind, __lookahead, __Nonterminal::_28_3cTypeRefOrLifetime_3e_20_22_2c_22_29(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 120 - // @L = (*) ["("] - // @L = (*) [".."] - // @L = (*) ["::"] - // @L = (*) ["<"] - // @L = (*) ["Id"] - // @L = (*) ["_"] - // FieldPattern = @L Id @R ":" (*) Pattern [","] - // FieldPattern = @L Id @R ":" (*) Pattern ["}"] - // Pattern = (*) @L PatternKind @R [","] - // Pattern = (*) @L PatternKind @R ["}"] - // - // "::" -> Reduce(@L = => Lookahead;) - // "(" -> Reduce(@L = => Lookahead;) - // "Id" -> Reduce(@L = => Lookahead;) - // "<" -> Reduce(@L = => Lookahead;) - // ".." -> Reduce(@L = => Lookahead;) - // "_" -> Reduce(@L = => Lookahead;) - // - // @L -> S131 - // Pattern -> S132 - pub fn __state120< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym3.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state131(text, __lookbehind, __lookahead, __tokens, __sym4)); - } - __Nonterminal::Pattern(__nt) => { - let __sym4 = &mut Some(__nt); - __result = try!(__state132(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 121 - // PatternKind = Path "(" Comma ")" (*) [")"] - // PatternKind = Path "(" Comma ")" (*) [","] - // - // ")" -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // "," -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // - pub fn __state121< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 122 - // PatternKind = Path "{" ( ",")* ".." (*) "}" [")"] - // PatternKind = Path "{" ( ",")* ".." (*) "}" [","] - // - // "}" -> Shift(S133) - // - pub fn __state122< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state133(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 123 - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [")"] - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [","] - // - // "}" -> Shift(S134) - // - pub fn __state123< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state134(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 124 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [")"] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // - // ")" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state124< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 125 - // TypeRef = Path "<" Comma ">" (*) [")"] - // TypeRef = Path "<" Comma ">" (*) [","] - // - // ")" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state125< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 126 - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["<"] - // Id = "Id" (*) [">"] - // - // "<" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // ">" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state126< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 127 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["<"] - // Path = "::"? ( "::")* Id (*) [">"] - // - // "<" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // ">" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state127< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LessThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 128 - // TypeRef = Path "<" Comma (*) ">" [","] - // TypeRef = Path "<" Comma (*) ">" [">"] - // - // ">" -> Shift(S135) - // - pub fn __state128< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state135(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 129 - // TypeRef = "(" Comma ")" (*) [","] - // TypeRef = "(" Comma ")" (*) [">"] - // - // "," -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // ">" -> Reduce(TypeRef = "(", Comma, ")" => Call(ActionFn(45));) - // - pub fn __state129< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action45(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 130 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [","] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // TypeRef = (*) Escape [","] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [","] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [","] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [","] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [","] - // TypeRef = "&" Lifetime? "mut"? (*) TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [","] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "Escape" -> Shift(S97) - // "(" -> Shift(S93) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // "&" -> Shift(S94) - // "::" -> Shift(S6) - // - // Path -> S91 - // Escape -> S96 - // "::"? -> S90 - // TypeRef -> S136 - pub fn __state130< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state97(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state93(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state94(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Path(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state91(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::Escape(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state96(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state90(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state136(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 131 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Path = (*) "::"? ( "::")* Id ["("] - // Path = (*) "::"? ( "::")* Id [","] - // Path = (*) "::"? ( "::")* Id ["{"] - // Path = (*) "::"? ( "::")* Id ["}"] - // Pattern = @L (*) PatternKind @R [","] - // Pattern = @L (*) PatternKind @R ["}"] - // PatternKind = (*) Path [","] - // PatternKind = (*) Path ["}"] - // PatternKind = (*) Path "(" Comma ")" [","] - // PatternKind = (*) Path "(" Comma ")" ["}"] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = (*) Path "{" ( ",")* FieldPattern? "}" ["}"] - // PatternKind = (*) Path "{" ( ",")* ".." "}" [","] - // PatternKind = (*) Path "{" ( ",")* ".." "}" ["}"] - // PatternKind = (*) "(" Comma ")" [","] - // PatternKind = (*) "(" Comma ")" ["}"] - // PatternKind = (*) ".." [","] - // PatternKind = (*) ".." ["}"] - // PatternKind = (*) "<" TypeRef ">" [","] - // PatternKind = (*) "<" TypeRef ">" ["}"] - // PatternKind = (*) "_" [","] - // PatternKind = (*) "_" ["}"] - // - // "::" -> Shift(S6) - // ".." -> Shift(S137) - // "<" -> Shift(S143) - // "_" -> Shift(S141) - // "(" -> Shift(S138) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // PatternKind -> S139 - // "::"? -> S140 - // Path -> S142 - pub fn __state131< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state137(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LessThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state143(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::Underscore(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state141(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state138(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::PatternKind(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state139(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state140(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state142(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 132 - // FieldPattern = @L Id @R ":" Pattern (*) [","] - // FieldPattern = @L Id @R ":" Pattern (*) ["}"] - // - // "," -> Reduce(FieldPattern = @L, Id, @R, ":", Pattern => Call(ActionFn(65));) - // "}" -> Reduce(FieldPattern = @L, Id, @R, ":", Pattern => Call(ActionFn(65));) - // - pub fn __state132< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option, - __sym2: &mut Option, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action65(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::FieldPattern(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action65(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::FieldPattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 133 - // PatternKind = Path "{" ( ",")* ".." "}" (*) [")"] - // PatternKind = Path "{" ( ",")* ".." "}" (*) [","] - // - // ")" -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // - pub fn __state133< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 134 - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [")"] - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [","] - // - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // ")" -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // - pub fn __state134< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 135 - // TypeRef = Path "<" Comma ">" (*) [","] - // TypeRef = Path "<" Comma ">" (*) [">"] - // - // "," -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // ">" -> Reduce(TypeRef = Path, "<", Comma, ">" => Call(ActionFn(48));) - // - pub fn __state135< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action48(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 136 - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [","] - // TypeRef = "&" Lifetime? "mut"? TypeRef (*) [">"] - // - // ">" -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // "," -> Reduce(TypeRef = "&", Lifetime?, "mut"?, TypeRef => Call(ActionFn(47));) - // - pub fn __state136< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option<::std::option::Option>, - __sym2: &mut Option<::std::option::Option>>, - __sym3: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::GreaterThan(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action47(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::TypeRef(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 137 - // PatternKind = ".." (*) [","] - // PatternKind = ".." (*) ["}"] - // - // "," -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // "}" -> Reduce(PatternKind = ".." => Call(ActionFn(61));) - // - pub fn __state137< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action61(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 138 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = "(" (*) Comma ")" [","] - // PatternKind = "(" (*) Comma ")" ["}"] - // - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // Comma -> S144 - // ( ",")* -> S14 - pub fn __state138< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state144(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 139 - // @R = (*) [","] - // @R = (*) ["}"] - // Pattern = @L PatternKind (*) @R [","] - // Pattern = @L PatternKind (*) @R ["}"] - // - // "," -> Reduce(@R = => Lookbehind;) - // "}" -> Reduce(@R = => Lookbehind;) - // - // @R -> S145 - pub fn __state139< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = ::std::clone::Clone::clone(&__lookbehind).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40R(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40R(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state145(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 140 - // ( "::")* = (*) ["Id"] - // ( "::")* = (*) ( "::")* ( "::") ["Id"] - // Path = "::"? (*) ( "::")* Id ["("] - // Path = "::"? (*) ( "::")* Id [","] - // Path = "::"? (*) ( "::")* Id ["{"] - // Path = "::"? (*) ( "::")* Id ["}"] - // - // "Id" -> Reduce(( "::")* = => Call(ActionFn(82));) - // - // ( "::")* -> S146 - pub fn __state140< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action82(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29_2a(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state146(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 141 - // PatternKind = "_" (*) [","] - // PatternKind = "_" (*) ["}"] - // - // "}" -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // "," -> Reduce(PatternKind = "_" => Call(ActionFn(60));) - // - pub fn __state141< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action60(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 142 - // PatternKind = Path (*) [","] - // PatternKind = Path (*) ["}"] - // PatternKind = Path (*) "(" Comma ")" [","] - // PatternKind = Path (*) "(" Comma ")" ["}"] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" [","] - // PatternKind = Path (*) "{" ( ",")* FieldPattern? "}" ["}"] - // PatternKind = Path (*) "{" ( ",")* ".." "}" [","] - // PatternKind = Path (*) "{" ( ",")* ".." "}" ["}"] - // - // "{" -> Shift(S148) - // "," -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "}" -> Reduce(PatternKind = Path => Call(ActionFn(64));) - // "(" -> Shift(S147) - // - pub fn __state142< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::LeftBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state148(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state147(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action64(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 143 - // "::"? = (*) ["Id"] - // "::"? = (*) "::" ["Id"] - // Escape = (*) "Escape" [">"] - // Path = (*) "::"? ( "::")* Id ["<"] - // Path = (*) "::"? ( "::")* Id [">"] - // PatternKind = "<" (*) TypeRef ">" [","] - // PatternKind = "<" (*) TypeRef ">" ["}"] - // TypeRef = (*) Escape [">"] - // TypeRef = (*) Path [">"] - // TypeRef = (*) Path "<" Comma ">" [">"] - // TypeRef = (*) "&" Lifetime? "mut"? TypeRef [">"] - // TypeRef = (*) "(" Comma ")" [">"] - // - // "&" -> Shift(S17) - // "::" -> Shift(S6) - // "(" -> Shift(S18) - // "Escape" -> Shift(S22) - // "Id" -> Reduce("::"? = => Call(ActionFn(86));) - // - // Escape -> S20 - // TypeRef -> S149 - // "::"? -> S16 - // Path -> S21 - pub fn __state143< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::Ampersand(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state17(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state6(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, __tok @ Tok::LeftParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state18(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Escape(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym1 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state22(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action86(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_22_3a_3a_22_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym0.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Escape(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state20(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::TypeRef(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state149(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1)); - } - __Nonterminal::_22_3a_3a_22_3f(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state16(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - __Nonterminal::Path(__nt) => { - let __sym1 = &mut Some(__nt); - __result = try!(__state21(text, __lookbehind, __lookahead, __tokens, __sym1)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 144 - // PatternKind = "(" Comma (*) ")" [","] - // PatternKind = "(" Comma (*) ")" ["}"] - // - // ")" -> Shift(S150) - // - pub fn __state144< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state150(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 145 - // Pattern = @L PatternKind @R (*) [","] - // Pattern = @L PatternKind @R (*) ["}"] - // - // "}" -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // "," -> Reduce(Pattern = @L, PatternKind, @R => Call(ActionFn(56));) - // - pub fn __state145< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action56(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Pattern(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 146 - // ( "::") = (*) Id "::" ["Id"] - // ( "::")* = ( "::")* (*) ( "::") ["Id"] - // Id = (*) "Id" ["("] - // Id = (*) "Id" [","] - // Id = (*) "Id" ["::"] - // Id = (*) "Id" ["{"] - // Id = (*) "Id" ["}"] - // Path = "::"? ( "::")* (*) Id ["("] - // Path = "::"? ( "::")* (*) Id [","] - // Path = "::"? ( "::")* (*) Id ["{"] - // Path = "::"? ( "::")* (*) Id ["}"] - // - // "Id" -> Shift(S152) - // - // Id -> S151 - // ( "::") -> S40 - pub fn __state146< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(__tok0), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok0)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state152(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::Id(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state151(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - __Nonterminal::_28_3cId_3e_20_22_3a_3a_22_29(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state40(text, __lookbehind, __lookahead, __tokens, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 147 - // ( ",")* = (*) ["("] - // ( ",")* = (*) [")"] - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["::"] - // ( ",")* = (*) ["<"] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["_"] - // ( ",")* = (*) ( ",")* ( ",") ["("] - // ( ",")* = (*) ( ",")* ( ",") [")"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["::"] - // ( ",")* = (*) ( ",")* ( ",") ["<"] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["_"] - // Comma = (*) ( ",")* Pattern? [")"] - // PatternKind = Path "(" (*) Comma ")" [","] - // PatternKind = Path "(" (*) Comma ")" ["}"] - // - // ")" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "::" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "<" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "Id" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "(" -> Reduce(( ",")* = => Call(ActionFn(158));) - // "_" -> Reduce(( ",")* = => Call(ActionFn(158));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(158));) - // - // ( ",")* -> S14 - // Comma -> S153 - pub fn __state147< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::ColonColon(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LessThan(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::Underscore(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action158(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state14(text, __lookbehind, __lookahead, __tokens, __sym2)); - } - __Nonterminal::Comma_3cPattern_3e(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state153(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 148 - // ( ",")* = (*) [".."] - // ( ",")* = (*) ["Id"] - // ( ",")* = (*) ["}"] - // ( ",")* = (*) ( ",")* ( ",") [".."] - // ( ",")* = (*) ( ",")* ( ",") ["Id"] - // ( ",")* = (*) ( ",")* ( ",") ["}"] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" [","] - // PatternKind = Path "{" (*) ( ",")* FieldPattern? "}" ["}"] - // PatternKind = Path "{" (*) ( ",")* ".." "}" [","] - // PatternKind = Path "{" (*) ( ",")* ".." "}" ["}"] - // - // "Id" -> Reduce(( ",")* = => Call(ActionFn(75));) - // "}" -> Reduce(( ",")* = => Call(ActionFn(75));) - // ".." -> Reduce(( ",")* = => Call(ActionFn(75));) - // - // ( ",")* -> S154 - pub fn __state148< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Id(_), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - Some((_, Tok::DotDot(..), _)) => { - let __nt = super::__action75(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym1.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29_2a(__nt) => { - let __sym2 = &mut Some(__nt); - __result = try!(__state154(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 149 - // PatternKind = "<" TypeRef (*) ">" [","] - // PatternKind = "<" TypeRef (*) ">" ["}"] - // - // ">" -> Shift(S155) - // - pub fn __state149< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::GreaterThan(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym2 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state155(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 150 - // PatternKind = "(" Comma ")" (*) [","] - // PatternKind = "(" Comma ")" (*) ["}"] - // - // "}" -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // "," -> Reduce(PatternKind = "(", Comma, ")" => Call(ActionFn(63));) - // - pub fn __state150< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option>>, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action63(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 151 - // ( "::") = Id (*) "::" ["Id"] - // Path = "::"? ( "::")* Id (*) ["("] - // Path = "::"? ( "::")* Id (*) [","] - // Path = "::"? ( "::")* Id (*) ["{"] - // Path = "::"? ( "::")* Id (*) ["}"] - // - // "(" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "{" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "::" -> Shift(S72) - // "}" -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // "," -> Reduce(Path = "::"?, ( "::")*, Id => Call(ActionFn(52));) - // - pub fn __state151< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<::std::option::Option>>, - __sym1: &mut Option<::std::vec::Vec>, - __sym2: &mut Option, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::ColonColon(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state72(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action52(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::Path(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 152 - // Id = "Id" (*) ["("] - // Id = "Id" (*) [","] - // Id = "Id" (*) ["::"] - // Id = "Id" (*) ["{"] - // Id = "Id" (*) ["}"] - // - // "," -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "(" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "}" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "::" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // "{" -> Reduce(Id = "Id" => Call(ActionFn(68));) - // - pub fn __state152< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option<&'input str>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftParen(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::ColonColon(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - Some((_, Tok::LeftBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __nt = super::__action68(text, __sym0); - return Ok((__lookbehind, __lookahead, __Nonterminal::Id(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 153 - // PatternKind = Path "(" Comma (*) ")" [","] - // PatternKind = Path "(" Comma (*) ")" ["}"] - // - // ")" -> Shift(S156) - // - pub fn __state153< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightParen(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state156(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 154 - // ( ",") = (*) FieldPattern "," [".."] - // ( ",") = (*) FieldPattern "," ["Id"] - // ( ",") = (*) FieldPattern "," ["}"] - // ( ",")* = ( ",")* (*) ( ",") [".."] - // ( ",")* = ( ",")* (*) ( ",") ["Id"] - // ( ",")* = ( ",")* (*) ( ",") ["}"] - // @L = (*) ["Id"] - // FieldPattern = (*) @L Id @R ":" Pattern [","] - // FieldPattern = (*) @L Id @R ":" Pattern ["}"] - // FieldPattern? = (*) ["}"] - // FieldPattern? = (*) FieldPattern ["}"] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" [","] - // PatternKind = Path "{" ( ",")* (*) FieldPattern? "}" ["}"] - // PatternKind = Path "{" ( ",")* (*) ".." "}" [","] - // PatternKind = Path "{" ( ",")* (*) ".." "}" ["}"] - // - // "Id" -> Reduce(@L = => Lookahead;) - // "}" -> Reduce(FieldPattern? = => Call(ActionFn(74));) - // ".." -> Shift(S158) - // - // @L -> S44 - // ( ",") -> S46 - // FieldPattern? -> S157 - // FieldPattern -> S45 - pub fn __state154< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::DotDot(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym3 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state158(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - Some((_, Tok::Id(_), _)) => { - let __nt = __lookahead.as_ref().map(|o| ::std::clone::Clone::clone(&o.0)).or_else(|| ::std::clone::Clone::clone(&__lookbehind)).unwrap_or_default(); - __result = (__lookbehind, __lookahead, __Nonterminal::_40L(__nt)); - } - Some((_, Tok::RightBrace(..), _)) => { - let __nt = super::__action74(text, ); - __result = (__lookbehind, __lookahead, __Nonterminal::FieldPattern_3f(__nt)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - while __sym2.is_some() { - let (__lookbehind, __lookahead, __nt) = __result; - match __nt { - __Nonterminal::_40L(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state44(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - __Nonterminal::_28_3cFieldPattern_3e_20_22_2c_22_29(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state46(text, __lookbehind, __lookahead, __tokens, __sym2, __sym3)); - } - __Nonterminal::FieldPattern_3f(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state157(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3)); - } - __Nonterminal::FieldPattern(__nt) => { - let __sym3 = &mut Some(__nt); - __result = try!(__state45(text, __lookbehind, __lookahead, __tokens, __sym3)); - } - _ => { - return Ok((__lookbehind, __lookahead, __nt)); - } - } - } - return Ok(__result); - } - - // State 155 - // PatternKind = "<" TypeRef ">" (*) [","] - // PatternKind = "<" TypeRef ">" (*) ["}"] - // - // "," -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // "}" -> Reduce(PatternKind = "<", TypeRef, ">" => Call(ActionFn(62));) - // - pub fn __state155< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option>, - __sym1: &mut Option, - __sym2: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __nt = super::__action62(text, __sym0, __sym1, __sym2); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 156 - // PatternKind = Path "(" Comma ")" (*) [","] - // PatternKind = Path "(" Comma ")" (*) ["}"] - // - // "," -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // "}" -> Reduce(PatternKind = Path, "(", Comma, ")" => Call(ActionFn(57));) - // - pub fn __state156< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __nt = super::__action57(text, __sym0, __sym1, __sym2, __sym3); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 157 - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" [","] - // PatternKind = Path "{" ( ",")* FieldPattern? (*) "}" ["}"] - // - // "}" -> Shift(S159) - // - pub fn __state157< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state159(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 158 - // PatternKind = Path "{" ( ",")* ".." (*) "}" [","] - // PatternKind = Path "{" ( ",")* ".." (*) "}" ["}"] - // - // "}" -> Shift(S160) - // - pub fn __state158< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, __tok @ Tok::RightBrace(..), __loc)) => { - let mut __lookbehind = Some(__loc); - let mut __sym4 = &mut Some((__tok)); - let __lookahead = match __tokens.next() { Some(Ok(v)) => Some(v), None => None, Some(Err(e)) => return Err(__ParseError::User { error: e }) }; - __result = try!(__state160(text, __lookbehind, __lookahead, __tokens, __sym0, __sym1, __sym2, __sym3, __sym4)); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - return Ok(__result); - } - - // State 159 - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) [","] - // PatternKind = Path "{" ( ",")* FieldPattern? "}" (*) ["}"] - // - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // "}" -> Reduce(PatternKind = Path, "{", ( ",")*, FieldPattern?, "}" => Call(ActionFn(58));) - // - pub fn __state159< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option<::std::option::Option>>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action58(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } - - // State 160 - // PatternKind = Path "{" ( ",")* ".." "}" (*) [","] - // PatternKind = Path "{" ( ",")* ".." "}" (*) ["}"] - // - // "}" -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // "," -> Reduce(PatternKind = Path, "{", ( ",")*, "..", "}" => Call(ActionFn(59));) - // - pub fn __state160< - 'input, - __TOKENS: Iterator, usize),tok::Error>>, - >( - text: &'input str, - __lookbehind: Option, - __lookahead: Option<(usize, Tok<'input>, usize)>, - __tokens: &mut __TOKENS, - __sym0: &mut Option, - __sym1: &mut Option>, - __sym2: &mut Option<::std::vec::Vec>>, - __sym3: &mut Option>, - __sym4: &mut Option>, - ) -> Result<(Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >), __ParseError,tok::Error>> - { - let mut __result: (Option, Option<(usize, Tok<'input>, usize)>, __Nonterminal<'input, >); - match __lookahead { - Some((_, Tok::RightBrace(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - Some((_, Tok::Comma(..), _)) => { - let __sym0 = __sym0.take().unwrap(); - let __sym1 = __sym1.take().unwrap(); - let __sym2 = __sym2.take().unwrap(); - let __sym3 = __sym3.take().unwrap(); - let __sym4 = __sym4.take().unwrap(); - let __nt = super::__action59(text, __sym0, __sym1, __sym2, __sym3, __sym4); - return Ok((__lookbehind, __lookahead, __Nonterminal::PatternKind(__nt))); - } - _ => { - return Err(__ParseError::UnrecognizedToken { - token: __lookahead, - expected: vec![], - }); - } - } - } -} - -pub fn __action0< - 'input, ->( - text: &'input str, - __0: Grammar, -) -> Grammar -{ - (__0) -} - -pub fn __action1< - 'input, ->( - text: &'input str, - __0: Pattern, -) -> Pattern -{ - (__0) -} - -pub fn __action2< - 'input, ->( - text: &'input str, - uses: ::std::vec::Vec, - lo: usize, - _: Tok<'input>, - hi: usize, - tps: ::std::option::Option>, - parameters: ::std::option::Option>, - where_clauses: ::std::option::Option>, - _: Tok<'input>, - items: ::std::vec::Vec, -) -> Grammar -{ - { - let where_clauses = - where_clauses.iter() - .flat_map(|wc| wc.iter()) - .map(|s| s.to_string()) - .collect(); - Grammar { span: Span(lo, hi), - type_parameters: tps.unwrap_or(vec![]), - parameters: parameters.unwrap_or(vec![]), - where_clauses: where_clauses, - items: uses.into_iter().chain(items).collect() } - } -} - -pub fn __action3< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec, - _: Tok<'input>, -) -> Vec -{ - (__0) -} - -pub fn __action4< - 'input, ->( - text: &'input str, - l: &'input str, -) -> TypeParameter -{ - TypeParameter::Lifetime(intern(l)) -} - -pub fn __action5< - 'input, ->( - text: &'input str, - l: &'input str, -) -> TypeParameter -{ - TypeParameter::Id(intern(l)) -} - -pub fn __action6< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec, - _: Tok<'input>, -) -> Vec -{ - (__0) -} - -pub fn __action7< - 'input, ->( - text: &'input str, - id: InternedString, - _: Tok<'input>, - ty: TypeRef, -) -> Parameter -{ - Parameter { name: id, ty: ty } -} - -pub fn __action8< - 'input, ->( - text: &'input str, - __0: GrammarItem, -) -> GrammarItem -{ - (__0) -} - -pub fn __action9< - 'input, ->( - text: &'input str, - __0: GrammarItem, -) -> GrammarItem -{ - (__0) -} - -pub fn __action10< - 'input, ->( - text: &'input str, - __0: GrammarItem, -) -> GrammarItem -{ - (__0) -} - -pub fn __action11< - 'input, ->( - text: &'input str, - u: &'input str, - _: Tok<'input>, -) -> GrammarItem -{ - GrammarItem::Use(u.to_string()) -} - -pub fn __action12< - 'input, ->( - text: &'input str, - p: ::std::option::Option>, - lo: usize, - n: (NonterminalString, Vec), - hi: usize, - t: ::std::option::Option, - _: Tok<'input>, - a: Vec, -) -> GrammarItem -{ - { - GrammarItem::Nonterminal(NonterminalData { public: p.is_some(), - span: Span(lo, hi), - name: n.0, - args: n.1, - type_decl: t, - alternatives: a }) - } -} - -pub fn __action13< - 'input, ->( - text: &'input str, - __0: NonterminalString, - _: Tok<'input>, - __1: Vec, - _: Tok<'input>, -) -> (NonterminalString, Vec) -{ - (__0, __1) -} - -pub fn __action14< - 'input, ->( - text: &'input str, - n: NonterminalString, -) -> (NonterminalString, Vec) -{ - (n, vec![]) -} - -pub fn __action15< - 'input, ->( - text: &'input str, - __0: &'input str, -) -> (NonterminalString, Vec) -{ - (NonterminalString(intern(__0)), vec![]) -} - -pub fn __action16< - 'input, ->( - text: &'input str, - a: Alternative, -) -> Vec -{ - vec![a] -} - -pub fn __action17< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: ::std::vec::Vec, - _: Tok<'input>, - _: Tok<'input>, -) -> Vec -{ - (__0) -} - -pub fn __action18< - 'input, ->( - text: &'input str, - lo: usize, - s: ExprSymbol, - c: ::std::option::Option, - a: ::std::option::Option, - _: Tok<'input>, - hi: usize, -) -> Alternative -{ - { - Alternative { - span: Span(lo, hi), - expr: s, - condition: c, - action: a - } - } -} - -pub fn __action19< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ActionKind -{ - ActionKind::Lookahead -} - -pub fn __action20< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ActionKind -{ - ActionKind::Lookbehind -} - -pub fn __action21< - 'input, ->( - text: &'input str, - c: &'input str, -) -> ActionKind -{ - ActionKind::User(c.to_string()) -} - -pub fn __action22< - 'input, ->( - text: &'input str, - c: &'input str, -) -> ActionKind -{ - ActionKind::Fallible(c.to_string()) -} - -pub fn __action23< - 'input, ->( - text: &'input str, - lo: usize, - a: NonterminalString, - op: ConditionOp, - b: InternedString, - hi: usize, -) -> Condition -{ - { - Condition { span:Span(lo, hi), lhs:a, rhs:b, op:op } - } -} - -pub fn __action24< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::Equals -} - -pub fn __action25< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::NotEquals -} - -pub fn __action26< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::Match -} - -pub fn __action27< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ConditionOp -{ - ConditionOp::NotMatch -} - -pub fn __action28< - 'input, ->( - text: &'input str, - __0: ::std::vec::Vec, -) -> ExprSymbol -{ - ExprSymbol { symbols: __0 } -} - -pub fn __action29< - 'input, ->( - text: &'input str, - lo: usize, - _: Tok<'input>, - _: usize, - l: InternedString, - _: Tok<'input>, - s: Symbol, - _: Tok<'input>, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lo, hi), SymbolKind::Name(l, Box::new(s))) -} - -pub fn __action30< - 'input, ->( - text: &'input str, - lo: usize, - _: Tok<'input>, - s: Symbol, - _: Tok<'input>, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lo, hi), SymbolKind::Choose(Box::new(s))) -} - -pub fn __action31< - 'input, ->( - text: &'input str, - __0: Symbol, -) -> Symbol -{ - (__0) -} - -pub fn __action32< - 'input, ->( - text: &'input str, - __0: Symbol, -) -> Symbol -{ - (__0) -} - -pub fn __action33< - 'input, ->( - text: &'input str, - lhs: Symbol, - op: RepeatOp, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lhs.span.0, hi), - SymbolKind::Repeat(Box::new(RepeatSymbol { symbol: lhs, op: op }))) -} - -pub fn __action34< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> RepeatOp -{ - RepeatOp::Plus -} - -pub fn __action35< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> RepeatOp -{ - RepeatOp::Star -} - -pub fn __action36< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> RepeatOp -{ - RepeatOp::Question -} - -pub fn __action37< - 'input, ->( - text: &'input str, - lo: usize, - sk: SymbolKind, - hi: usize, -) -> Symbol -{ - Symbol::new(Span(lo, hi), sk) -} - -pub fn __action38< - 'input, ->( - text: &'input str, - name: NonterminalString, - _: Tok<'input>, - args: Vec, - _: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Macro(MacroSymbol { name: name, args: args }) -} - -pub fn __action39< - 'input, ->( - text: &'input str, - __0: TerminalString, -) -> SymbolKind -{ - SymbolKind::Terminal(__0) -} - -pub fn __action40< - 'input, ->( - text: &'input str, - __0: NonterminalString, -) -> SymbolKind -{ - SymbolKind::Nonterminal(__0) -} - -pub fn __action41< - 'input, ->( - text: &'input str, - __0: InternedString, -) -> SymbolKind -{ - SymbolKind::Nonterminal(NonterminalString(__0)) -} - -pub fn __action42< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: ExprSymbol, - _: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Expr(__0) -} - -pub fn __action43< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Lookahead -} - -pub fn __action44< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> SymbolKind -{ - SymbolKind::Lookbehind -} - -pub fn __action45< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec, - _: Tok<'input>, -) -> TypeRef -{ - TypeRef::Tuple(__0) -} - -pub fn __action46< - 'input, ->( - text: &'input str, - e: InternedString, -) -> Result,tok::Error>> -{ - { - panic!("parse escape symbol") - } -} - -pub fn __action47< - 'input, ->( - text: &'input str, - _: Tok<'input>, - l: ::std::option::Option, - m: ::std::option::Option>, - t: TypeRef, -) -> TypeRef -{ - TypeRef::Ref { lifetime: l, - mutable: m.is_some(), - referent: Box::new(t) } -} - -pub fn __action48< - 'input, ->( - text: &'input str, - p: Path, - _: Tok<'input>, - a: Vec, - _: Tok<'input>, -) -> TypeRef -{ - TypeRef::Nominal { path: p, types: a } -} - -pub fn __action49< - 'input, ->( - text: &'input str, - p: Path, -) -> TypeRef -{ - match p.as_id() { - Some(id) => TypeRef::Id(id), - None => TypeRef::Nominal { path: p, types: vec![] } - } -} - -pub fn __action50< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> TypeRef -{ - (__0) -} - -pub fn __action51< - 'input, ->( - text: &'input str, - __0: InternedString, -) -> TypeRef -{ - TypeRef::Lifetime(__0) -} - -pub fn __action52< - 'input, ->( - text: &'input str, - a: ::std::option::Option>, - h: ::std::vec::Vec, - t: InternedString, -) -> Path -{ - { - Path { absolute: a.is_some(), - ids: h.into_iter().chain(once(t)).collect() } - } -} - -pub fn __action53< - 'input, ->( - text: &'input str, - lo0: usize, - _: Tok<'input>, - _: Tok<'input>, - hi0: usize, - _: Tok<'input>, - a0: ::std::vec::Vec, - _: Tok<'input>, - lo: usize, - t: TypeRef, - hi: usize, - _: Tok<'input>, - c: Vec, - _: Tok<'input>, - a1: ::std::vec::Vec, - _: Tok<'input>, -) -> GrammarItem -{ - { - GrammarItem::ExternToken(ExternToken { - span: Span(lo0, hi0), - associated_types: a0.into_iter().chain(a1).collect(), - enum_token: EnumToken { - type_name: t, - type_span: Span(lo, hi), - conversions: c, - } - }) - } -} - -pub fn __action54< - 'input, ->( - text: &'input str, - _: Tok<'input>, - lo: usize, - n: InternedString, - hi: usize, - _: Tok<'input>, - t: TypeRef, - _: Tok<'input>, -) -> AssociatedType -{ - { - AssociatedType { type_span: Span(lo, hi), - type_name: n, - type_ref: t } - } -} - -pub fn __action55< - 'input, ->( - text: &'input str, - lo: usize, - from: TerminalString, - p: &'input str, - hi: usize, -) -> Result,tok::Error>> -{ - { - panic!("not yet implemented -- parse pattern") - } -} - -pub fn __action56< - 'input, ->( - text: &'input str, - lo: usize, - k: PatternKind, - hi: usize, -) -> Pattern -{ - Pattern { span: Span(lo, hi), kind: k } -} - -pub fn __action57< - 'input, ->( - text: &'input str, - __0: Path, - _: Tok<'input>, - __1: Vec>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Enum(__0, __1) -} - -pub fn __action58< - 'input, ->( - text: &'input str, - p: Path, - _: Tok<'input>, - a0: ::std::vec::Vec>, - a1: ::std::option::Option>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Struct(p, a0.into_iter().chain(a1).collect(), false) -} - -pub fn __action59< - 'input, ->( - text: &'input str, - p: Path, - _: Tok<'input>, - a0: ::std::vec::Vec>, - _: Tok<'input>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Struct(p, a0, true) -} - -pub fn __action60< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> PatternKind -{ - PatternKind::Underscore -} - -pub fn __action61< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> PatternKind -{ - PatternKind::DotDot -} - -pub fn __action62< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: TypeRef, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Choose(__0) -} - -pub fn __action63< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Vec>, - _: Tok<'input>, -) -> PatternKind -{ - PatternKind::Tuple(__0) -} - -pub fn __action64< - 'input, ->( - text: &'input str, - __0: Path, -) -> PatternKind -{ - PatternKind::Path(__0) -} - -pub fn __action65< - 'input, ->( - text: &'input str, - lo: usize, - id: InternedString, - hi: usize, - _: Tok<'input>, - pat: Pattern, -) -> FieldPattern -{ - { - FieldPattern { field_span: Span(lo, hi), - field_name: id, - pattern: pat } - } -} - -pub fn __action66< - 'input, ->( - text: &'input str, - i: &'input str, -) -> NonterminalString -{ - NonterminalString(intern(i)) -} - -pub fn __action67< - 'input, ->( - text: &'input str, - i: InternedString, -) -> NonterminalString -{ - NonterminalString(i) -} - -pub fn __action68< - 'input, ->( - text: &'input str, - i: &'input str, -) -> InternedString -{ - intern(i) -} - -pub fn __action69< - 'input, ->( - text: &'input str, - i: &'input str, -) -> InternedString -{ - intern(i) -} - -pub fn __action70< - 'input, ->( - text: &'input str, - i: &'input str, -) -> InternedString -{ - intern(i) -} - -pub fn __action71< - 'input, ->( - text: &'input str, - s: InternedString, -) -> TerminalString -{ - TerminalString(s) -} - -pub fn __action72< - 'input, ->( - text: &'input str, - s: &'input str, -) -> InternedString -{ - intern(s) -} - -pub fn __action73< - 'input, ->( - text: &'input str, - __0: FieldPattern, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action74< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action75< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec> -{ - vec![] -} - -pub fn __action76< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec>, - e: FieldPattern, -) -> ::std::vec::Vec> -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action77< - 'input, ->( - text: &'input str, - __0: FieldPattern, - _: Tok<'input>, -) -> FieldPattern -{ - (__0) -} - -pub fn __action78< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec>, - e1: ::std::option::Option>, -) -> Vec> -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action79< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action80< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action81< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: AssociatedType, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action82< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action83< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: InternedString, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action84< - 'input, ->( - text: &'input str, - __0: InternedString, - _: Tok<'input>, -) -> InternedString -{ - (__0) -} - -pub fn __action85< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action86< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action87< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action88< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action89< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action90< - 'input, ->( - text: &'input str, - __0: InternedString, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action91< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action92< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action93< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action94< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action95< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Symbol, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action96< - 'input, ->( - text: &'input str, - __0: ActionKind, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action97< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action98< - 'input, ->( - text: &'input str, - __0: Condition, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action99< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action100< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: Condition, -) -> Condition -{ - (__0) -} - -pub fn __action101< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action102< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Alternative, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action103< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action104< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action105< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action106< - 'input, ->( - text: &'input str, - _: Tok<'input>, - __0: TypeRef, -) -> TypeRef -{ - (__0) -} - -pub fn __action107< - 'input, ->( - text: &'input str, - __0: Tok<'input>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action108< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action109< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action110< - 'input, ->( - text: &'input str, - v0: ::std::vec::Vec, - e1: ::std::option::Option, -) -> Vec -{ - v0.into_iter().chain(e1).collect() -} - -pub fn __action111< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action112< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: GrammarItem, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action113< - 'input, ->( - text: &'input str, - __0: Vec<&'input str>, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action114< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action115< - 'input, ->( - text: &'input str, - __0: Vec, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action116< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action117< - 'input, ->( - text: &'input str, - __0: Vec, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action118< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action119< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action120< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: GrammarItem, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action121< - 'input, ->( - text: &'input str, - __0: TypeParameter, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action122< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action123< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action124< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: TypeParameter, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action125< - 'input, ->( - text: &'input str, - __0: TypeParameter, - _: Tok<'input>, -) -> TypeParameter -{ - (__0) -} - -pub fn __action126< - 'input, ->( - text: &'input str, - __0: Parameter, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action127< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action128< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action129< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Parameter, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action130< - 'input, ->( - text: &'input str, - __0: Parameter, - _: Tok<'input>, -) -> Parameter -{ - (__0) -} - -pub fn __action131< - 'input, ->( - text: &'input str, - __0: NonterminalString, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action132< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action133< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action134< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: NonterminalString, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action135< - 'input, ->( - text: &'input str, - __0: NonterminalString, - _: Tok<'input>, -) -> NonterminalString -{ - (__0) -} - -pub fn __action136< - 'input, ->( - text: &'input str, - __0: Symbol, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action137< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action138< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action139< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Symbol, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action140< - 'input, ->( - text: &'input str, - __0: Symbol, - _: Tok<'input>, -) -> Symbol -{ - (__0) -} - -pub fn __action141< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action142< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action143< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action144< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: TypeRef, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action145< - 'input, ->( - text: &'input str, - __0: TypeRef, - _: Tok<'input>, -) -> TypeRef -{ - (__0) -} - -pub fn __action146< - 'input, ->( - text: &'input str, - __0: TypeRef, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action147< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action148< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action149< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: TypeRef, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action150< - 'input, ->( - text: &'input str, - __0: TypeRef, - _: Tok<'input>, -) -> TypeRef -{ - (__0) -} - -pub fn __action151< - 'input, ->( - text: &'input str, - __0: Conversion, -) -> ::std::option::Option -{ - Some(__0) -} - -pub fn __action152< - 'input, ->( - text: &'input str, -) -> ::std::option::Option -{ - None -} - -pub fn __action153< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec -{ - vec![] -} - -pub fn __action154< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec, - e: Conversion, -) -> ::std::vec::Vec -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action155< - 'input, ->( - text: &'input str, - __0: Conversion, - _: Tok<'input>, -) -> Conversion -{ - (__0) -} - -pub fn __action156< - 'input, ->( - text: &'input str, - __0: Pattern, -) -> ::std::option::Option> -{ - Some(__0) -} - -pub fn __action157< - 'input, ->( - text: &'input str, -) -> ::std::option::Option> -{ - None -} - -pub fn __action158< - 'input, ->( - text: &'input str, -) -> ::std::vec::Vec> -{ - vec![] -} - -pub fn __action159< - 'input, ->( - text: &'input str, - v: ::std::vec::Vec>, - e: Pattern, -) -> ::std::vec::Vec> -{ - { let mut v = v; v.push(e); v } -} - -pub fn __action160< - 'input, ->( - text: &'input str, - __0: Pattern, - _: Tok<'input>, -) -> Pattern -{ - (__0) -} - -pub trait __ToTriple<'input, > { - type Error; - fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize),Self::Error>; -} - -impl<'input, > __ToTriple<'input, > for (usize, Tok<'input>, usize) { - type Error = tok::Error; - fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize),tok::Error> { - Ok(value) - } -} -impl<'input, > __ToTriple<'input, > for Result<(usize, Tok<'input>, usize),tok::Error> { - type Error = tok::Error; - fn to_triple(value: Self) -> Result<(usize,Tok<'input>,usize),tok::Error> { - value - } -}