#![allow(unused_imports)]
#![allow(unused_variables)]
use std::str::FromStr;
use ::New;
use {PointType, LineStringType, CircularStringType, PolygonType, MultiPointType, CompoundCurveType};
extern crate lalrpop_util as __lalrpop_util;
use self::__lalrpop_util::ParseError as __ParseError;
mod __parse__WellKnownTextRepresentation {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)]
use std::str::FromStr;
use ::New;
use {PointType, LineStringType, CircularStringType, PolygonType, MultiPointType, CompoundCurveType};
extern crate lalrpop_util as __lalrpop_util;
use self::__lalrpop_util::ParseError as __ParseError;
pub fn parse_WellKnownTextRepresentation<
'input,
>(
input: &'input str,
) -> Result<New, __ParseError<usize,(usize, &'input str),()>>
{
let mut __tokens = super::__intern_token::__Matcher::new(input);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match try!(__state0(input, &mut __tokens, __lookahead)) {
(Some(__lookahead), _) => {
Err(__ParseError::ExtraToken { token: __lookahead })
}
(None, __Nonterminal::____WellKnownTextRepresentation((_, __nt, _))) => {
Ok(__nt)
}
_ => unreachable!(),
}
}
#[allow(dead_code)]
pub enum __Nonterminal<> {
_28_3cLineStringText_3e_20_22_2c_22_29((usize, LineStringType, usize)),
_28_3cLineStringText_3e_20_22_2c_22_29_2a((usize, ::std::vec::Vec<LineStringType>, usize)),
_28_3cLineStringText_3e_20_22_2c_22_29_2b((usize, ::std::vec::Vec<LineStringType>, usize)),
_28_3cPoint_3e_20_22_2c_22_29((usize, (f64, f64), usize)),
_28_3cPoint_3e_20_22_2c_22_29_2a((usize, ::std::vec::Vec<(f64, f64)>, usize)),
_28_3cPoint_3e_20_22_2c_22_29_2b((usize, ::std::vec::Vec<(f64, f64)>, usize)),
_28_3cSingleCurveText_3e_20_22_2c_22_29((usize, LineStringType, usize)),
_28_3cSingleCurveText_3e_20_22_2c_22_29_2a((usize, ::std::vec::Vec<LineStringType>, usize)),
_28_3cSingleCurveText_3e_20_22_2c_22_29_2b((usize, ::std::vec::Vec<LineStringType>, usize)),
_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29((usize, New, usize)),
_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29_2a((usize, ::std::vec::Vec<New>, usize)),
_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29_2b((usize, ::std::vec::Vec<New>, usize)),
CircularStringText((usize, LineStringType, usize)),
CircularStringTextRepresentation((usize, LineStringType, usize)),
CollectionTextRepresentation((usize, New, usize)),
Comma_3cLineStringText_3e((usize, Vec<LineStringType>, usize)),
Comma_3cPoint_3e((usize, Vec<(f64, f64)>, usize)),
Comma_3cSingleCurveText_3e((usize, Vec<LineStringType>, usize)),
Comma_3cWellKnownTextRepresentation_3e((usize, Vec<New>, usize)),
CompoundCurveText((usize, CompoundCurveType, usize)),
CompoundCurveTextRepresentation((usize, CompoundCurveType, usize)),
CurvePolygonTextRepresentation((usize, New, usize)),
CurveTextRepresentation((usize, New, usize)),
Float((usize, f64, usize)),
GeometryCollectionText((usize, Vec<New>, usize)),
GeometryCollectionTextRepresentation((usize, Vec<New>, usize)),
LineStringText((usize, LineStringType, usize)),
LineStringText_3f((usize, ::std::option::Option<LineStringType>, usize)),
LineStringTextBody((usize, LineStringType, usize)),
LineStringTextRepresentation((usize, LineStringType, usize)),
MultiPointText((usize, MultiPointType, usize)),
MultiPointTextRepresentation((usize, MultiPointType, usize)),
Point((usize, (f64, f64), usize)),
Point_3f((usize, ::std::option::Option<(f64, f64)>, usize)),
PointText((usize, PointType, usize)),
PointTextRepresentation((usize, New, usize)),
PolygonText((usize, PolygonType, usize)),
PolygonTextBody((usize, PolygonType, usize)),
PolygonTextRepresentation((usize, PolygonType, usize)),
SingleCurveText((usize, LineStringType, usize)),
SingleCurveText_3f((usize, ::std::option::Option<LineStringType>, usize)),
SurfaceTextRepresentation((usize, New, usize)),
WellKnownTextRepresentation((usize, New, usize)),
WellKnownTextRepresentation_3f((usize, ::std::option::Option<New>, usize)),
____WellKnownTextRepresentation((usize, New, usize)),
}
pub fn __state0<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state13(input, __tokens, __sym0));
}
Some((__loc1, (4, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state14(input, __tokens, __sym0));
}
Some((__loc1, (6, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state15(input, __tokens, __sym0));
}
Some((__loc1, (7, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state16(input, __tokens, __sym0));
}
Some((__loc1, (8, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state17(input, __tokens, __sym0));
}
Some((__loc1, (9, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state18(input, __tokens, __sym0));
}
Some((__loc1, (10, __tok0), __loc2)) => {
let mut __sym0 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state19(input, __tokens, __sym0));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
loop {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state1(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::CollectionTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state2(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::CompoundCurveTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state3(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::CurvePolygonTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state4(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::CurveTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state5(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::GeometryCollectionTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state6(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::LineStringTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state7(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::MultiPointTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state8(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::PointTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state9(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::PolygonTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state10(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::SurfaceTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state11(input, __tokens, __lookahead, __sym0));
}
__Nonterminal::WellKnownTextRepresentation(__nt) => {
let __sym0 = &mut Some(__nt);
__result = try!(__state12(input, __tokens, __lookahead, __sym0));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
}
pub fn __state1<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action9(input, __sym0);
let __nt = __Nonterminal::CurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state2<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action6(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state3<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, CompoundCurveType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action10(input, __sym0);
let __nt = __Nonterminal::CurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state4<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action14(input, __sym0);
let __nt = __Nonterminal::SurfaceTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state5<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state6<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18(input, __sym0);
let __nt = __Nonterminal::CollectionTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state7<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action8(input, __sym0);
let __nt = __Nonterminal::CurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state8<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, MultiPointType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action17(input, __sym0);
let __nt = __Nonterminal::CollectionTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state9<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state10<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, PolygonType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action15(input, __sym0);
let __nt = __Nonterminal::CurvePolygonTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state11<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action5(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state12<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0(input, __sym0);
let __nt = __Nonterminal::____WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state13<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state21(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state22(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CircularStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state20(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state14<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state24(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state25(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CompoundCurveText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state23(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state15<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state27(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state28(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::GeometryCollectionText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state26(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state16<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state31(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state32(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state29(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state30(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state17<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state34(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state35(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::MultiPointText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state33(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state18<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state37(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state38(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::PointText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state36(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state19<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state41(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state42(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::PolygonText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state39(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PolygonTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state40(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state20<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action12(input, __sym0, __sym1);
let __nt = __Nonterminal::CircularStringTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state21<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action92(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state43(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cPoint_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state44(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state46(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state22<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27(input, __sym0);
let __nt = __Nonterminal::CircularStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state23<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, CompoundCurveType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action13(input, __sym0, __sym1);
let __nt = __Nonterminal::CompoundCurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state24<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state55(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action96(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cSingleCurveText_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cSingleCurveText_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state48(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state49(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cSingleCurveText_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state50(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state51(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state52(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::SingleCurveText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state53(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state25<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29(input, __sym0);
let __nt = __Nonterminal::CompoundCurveText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state26<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action20(input, __sym0, __sym1);
let __nt = __Nonterminal::GeometryCollectionTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state27<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state55(input, __tokens, __sym1));
}
Some((__loc1, (4, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state71(input, __tokens, __sym1));
}
Some((__loc1, (6, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state72(input, __tokens, __sym1));
}
Some((__loc1, (7, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state73(input, __tokens, __sym1));
}
Some((__loc1, (8, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state74(input, __tokens, __sym1));
}
Some((__loc1, (9, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state75(input, __tokens, __sym1));
}
Some((__loc1, (10, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state76(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action100(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cWellKnownTextRepresentation_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state57(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state58(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CollectionTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state59(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cWellKnownTextRepresentation_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state60(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::CompoundCurveTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state61(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CurvePolygonTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state62(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CurveTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state63(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::GeometryCollectionTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state64(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state65(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::MultiPointTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state66(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PointTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state67(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PolygonTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state68(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::SurfaceTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state69(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::WellKnownTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state70(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state28<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37(input, __sym0);
let __nt = __Nonterminal::GeometryCollectionText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state29<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action21(input, __sym0);
let __nt = __Nonterminal::LineStringTextBody((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state30<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action11(input, __sym0, __sym1);
let __nt = __Nonterminal::LineStringTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state31<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action92(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state43(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cPoint_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state77(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state46(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state32<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25(input, __sym0);
let __nt = __Nonterminal::LineStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state33<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, MultiPointType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action19(input, __sym0, __sym1);
let __nt = __Nonterminal::MultiPointTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state34<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action92(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state43(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cPoint_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state78(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state46(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state35<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35(input, __sym0);
let __nt = __Nonterminal::MultiPointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state36<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, PointType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action7(input, __sym0, __sym1);
let __nt = __Nonterminal::PointTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state37<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state79(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state80(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state38<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action23(input, __sym0);
let __nt = __Nonterminal::PointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state39<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, PolygonType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action22(input, __sym0);
let __nt = __Nonterminal::PolygonTextBody((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state40<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, PolygonType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action16(input, __sym0, __sym1);
let __nt = __Nonterminal::PolygonTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state41<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action88(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cLineStringText_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cLineStringText_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state81(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cLineStringText_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state82(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state83(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state42<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33(input, __sym0);
let __nt = __Nonterminal::PolygonText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state43<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action94(input, __sym0);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state84(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state44<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state85(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state45<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, f64, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state87(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state86(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state46<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, (f64, f64), usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state88(input, __tokens, __sym0, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action91(input, __sym0);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state47<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (11, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1(input, __sym0);
let __nt = __Nonterminal::Float((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state48<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<LineStringType>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state55(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action98(input, __sym0);
let __nt = __Nonterminal::Comma_3cSingleCurveText_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state49(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state51(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state52(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::SingleCurveText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state89(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state49<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action32(input, __sym0);
let __nt = __Nonterminal::SingleCurveText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state50<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state90(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state51<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action21(input, __sym0);
let __nt = __Nonterminal::LineStringTextBody((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state52<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31(input, __sym0);
let __nt = __Nonterminal::SingleCurveText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state53<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state91(input, __tokens, __sym0, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action95(input, __sym0);
let __nt = __Nonterminal::Comma_3cSingleCurveText_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state54<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action92(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state43(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cPoint_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state92(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state46(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state55<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state94(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state95(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CircularStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state93(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state56<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25(input, __sym0);
let __nt = __Nonterminal::LineStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state57<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state55(input, __tokens, __sym1));
}
Some((__loc1, (4, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state71(input, __tokens, __sym1));
}
Some((__loc1, (6, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state72(input, __tokens, __sym1));
}
Some((__loc1, (7, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state73(input, __tokens, __sym1));
}
Some((__loc1, (8, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state74(input, __tokens, __sym1));
}
Some((__loc1, (9, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state75(input, __tokens, __sym1));
}
Some((__loc1, (10, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state76(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action102(input, __sym0);
let __nt = __Nonterminal::Comma_3cWellKnownTextRepresentation_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state58(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CollectionTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state59(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CompoundCurveTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state61(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CurvePolygonTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state62(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CurveTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state63(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::GeometryCollectionTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state64(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state65(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::MultiPointTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state66(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PointTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state67(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PolygonTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state68(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::SurfaceTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state69(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::WellKnownTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state96(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state58<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action9(input, __sym0);
let __nt = __Nonterminal::CurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state59<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action6(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state60<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state97(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state61<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, CompoundCurveType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action10(input, __sym0);
let __nt = __Nonterminal::CurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state62<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action14(input, __sym0);
let __nt = __Nonterminal::SurfaceTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state63<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action4(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state64<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18(input, __sym0);
let __nt = __Nonterminal::CollectionTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state65<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action8(input, __sym0);
let __nt = __Nonterminal::CurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state66<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, MultiPointType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action17(input, __sym0);
let __nt = __Nonterminal::CollectionTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state67<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action3(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state68<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, PolygonType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action15(input, __sym0);
let __nt = __Nonterminal::CurvePolygonTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state69<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action5(input, __sym0);
let __nt = __Nonterminal::WellKnownTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state70<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state98(input, __tokens, __sym0, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action99(input, __sym0);
let __nt = __Nonterminal::Comma_3cWellKnownTextRepresentation_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state71<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state100(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state101(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::CompoundCurveText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state99(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state72<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state103(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state104(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::GeometryCollectionText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state102(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state73<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state51(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state105(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state74<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state107(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state108(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::MultiPointText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state106(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state75<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state110(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state111(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::PointText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state109(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state76<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state114(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state115(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::PolygonText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state112(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PolygonTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state113(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state77<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state116(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state78<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state117(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state79<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, f64, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state119(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state118(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state80<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, (f64, f64), usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state120(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state81<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<LineStringType>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action90(input, __sym0);
let __nt = __Nonterminal::Comma_3cLineStringText_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state121(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state82<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state122(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state83<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state123(input, __tokens, __sym0, __sym1));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action87(input, __sym0);
let __nt = __Nonterminal::Comma_3cLineStringText_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state84<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<(f64, f64)>, usize)>,
__sym1: &mut Option<(usize, (f64, f64), usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state124(input, __tokens, __sym0, __sym1, __sym2));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action93(input, __sym0, __sym1);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state85<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action28(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::CircularStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state86<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, f64, usize)>,
__sym1: &mut Option<(usize, f64, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action2(input, __sym0, __sym1);
let __nt = __Nonterminal::Point((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state87<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1(input, __sym0);
let __nt = __Nonterminal::Float((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state88<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, (f64, f64), usize)>,
__sym1: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (11, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action75(input, __sym0, __sym1);
let __nt = __Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state89<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<LineStringType>, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state125(input, __tokens, __sym0, __sym1, __sym2));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action97(input, __sym0, __sym1);
let __nt = __Nonterminal::Comma_3cSingleCurveText_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state90<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action30(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::CompoundCurveText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state91<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, LineStringType, usize)>,
__sym1: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (0, _), _)) |
Some((_, (1, _), _)) |
Some((_, (3, _), _)) |
Some((_, (5, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action79(input, __sym0, __sym1);
let __nt = __Nonterminal::_28_3cSingleCurveText_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state92<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state126(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state93<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action12(input, __sym0, __sym1);
let __nt = __Nonterminal::CircularStringTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state94<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action92(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state43(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cPoint_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state127(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state46(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state95<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27(input, __sym0);
let __nt = __Nonterminal::CircularStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state96<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<New>, usize)>,
__sym1: &mut Option<(usize, New, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state128(input, __tokens, __sym0, __sym1, __sym2));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action101(input, __sym0, __sym1);
let __nt = __Nonterminal::Comma_3cWellKnownTextRepresentation_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state97<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<New>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action38(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::GeometryCollectionText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state98<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, New, usize)>,
__sym1: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (3, _), _)) |
Some((_, (4, _), _)) |
Some((_, (6, _), _)) |
Some((_, (7, _), _)) |
Some((_, (8, _), _)) |
Some((_, (9, _), _)) |
Some((_, (10, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action83(input, __sym0, __sym1);
let __nt = __Nonterminal::_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state99<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, CompoundCurveType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action13(input, __sym0, __sym1);
let __nt = __Nonterminal::CompoundCurveTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state100<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state55(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action96(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cSingleCurveText_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cSingleCurveText_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state48(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state49(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cSingleCurveText_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state129(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state51(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextBody(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state52(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::SingleCurveText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state53(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state101<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action29(input, __sym0);
let __nt = __Nonterminal::CompoundCurveText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state102<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action20(input, __sym0, __sym1);
let __nt = __Nonterminal::GeometryCollectionTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state103<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (3, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state55(input, __tokens, __sym1));
}
Some((__loc1, (4, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state71(input, __tokens, __sym1));
}
Some((__loc1, (6, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state72(input, __tokens, __sym1));
}
Some((__loc1, (7, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state73(input, __tokens, __sym1));
}
Some((__loc1, (8, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state74(input, __tokens, __sym1));
}
Some((__loc1, (9, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state75(input, __tokens, __sym1));
}
Some((__loc1, (10, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state76(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action100(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cWellKnownTextRepresentation_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state57(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CircularStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state58(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CollectionTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state59(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cWellKnownTextRepresentation_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state130(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::CompoundCurveTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state61(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CurvePolygonTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state62(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::CurveTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state63(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::GeometryCollectionTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state64(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::LineStringTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state65(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::MultiPointTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state66(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PointTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state67(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::PolygonTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state68(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::SurfaceTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state69(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::WellKnownTextRepresentation(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state70(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state104<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action37(input, __sym0);
let __nt = __Nonterminal::GeometryCollectionText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state105<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action11(input, __sym0, __sym1);
let __nt = __Nonterminal::LineStringTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state106<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, MultiPointType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action19(input, __sym0, __sym1);
let __nt = __Nonterminal::MultiPointTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state107<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action92(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cPoint_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state43(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cPoint_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state131(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state45(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state46(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state108<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action35(input, __sym0);
let __nt = __Nonterminal::MultiPointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state109<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, PointType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action7(input, __sym0, __sym1);
let __nt = __Nonterminal::PointTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state110<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (11, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state47(input, __tokens, __sym1));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::Float(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state79(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Point(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state132(input, __tokens, __lookahead, __sym0, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state111<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action23(input, __sym0);
let __nt = __Nonterminal::PointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state112<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, PolygonType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action22(input, __sym0);
let __nt = __Nonterminal::PolygonTextBody((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state113<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, PolygonType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action16(input, __sym0, __sym1);
let __nt = __Nonterminal::PolygonTextRepresentation((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state114<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((__loc1, (0, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state54(input, __tokens, __sym1));
}
Some((__loc1, (5, __tok0), __loc2)) => {
let mut __sym1 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state56(input, __tokens, __sym1));
}
Some((_, (1, _), _)) => {
let __start = __sym0.as_ref().unwrap().2.clone();
let __end = __lookahead.as_ref().map(|o| o.0.clone()).unwrap_or_else(|| __start.clone());
let __nt = super::__action88(input, &__start, &__end);
let __nt = __Nonterminal::Comma_3cLineStringText_3e((
__start,
__nt,
__end,
));
__result = (__lookahead, __nt);
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
while __sym0.is_some() {
let (__lookahead, __nt) = __result;
match __nt {
__Nonterminal::_28_3cLineStringText_3e_20_22_2c_22_29_2b(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state81(input, __tokens, __lookahead, __sym1));
}
__Nonterminal::Comma_3cLineStringText_3e(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state133(input, __tokens, __lookahead, __sym0, __sym1));
}
__Nonterminal::LineStringText(__nt) => {
let __sym1 = &mut Some(__nt);
__result = try!(__state83(input, __tokens, __lookahead, __sym1));
}
_ => {
return Ok((__lookahead, __nt));
}
}
}
return Ok(__result);
}
pub fn __state115<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33(input, __sym0);
let __nt = __Nonterminal::PolygonText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state116<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action26(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::LineStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state117<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action36(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::MultiPointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state118<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, f64, usize)>,
__sym1: &mut Option<(usize, f64, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action2(input, __sym0, __sym1);
let __nt = __Nonterminal::Point((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state119<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action1(input, __sym0);
let __nt = __Nonterminal::Float((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state120<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, (f64, f64), usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action24(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::PointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state121<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, ::std::vec::Vec<LineStringType>, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (2, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state134(input, __tokens, __sym0, __sym1, __sym2));
}
Some((_, (1, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action89(input, __sym0, __sym1);
let __nt = __Nonterminal::Comma_3cLineStringText_3e((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state122<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
None => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action34(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::PolygonText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state123<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, LineStringType, usize)>,
__sym1: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (0, _), _)) |
Some((_, (1, _), _)) |
Some((_, (5, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action71(input, __sym0, __sym1);
let __nt = __Nonterminal::_28_3cLineStringText_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state124<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, ::std::vec::Vec<(f64, f64)>, usize)>,
__sym1: &mut Option<(usize, (f64, f64), usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (11, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action76(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::_28_3cPoint_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state125<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, ::std::vec::Vec<LineStringType>, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (0, _), _)) |
Some((_, (1, _), _)) |
Some((_, (3, _), _)) |
Some((_, (5, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action80(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::_28_3cSingleCurveText_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state126<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action26(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::LineStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state127<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state135(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state128<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, ::std::vec::Vec<New>, usize)>,
__sym1: &mut Option<(usize, New, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (3, _), _)) |
Some((_, (4, _), _)) |
Some((_, (6, _), _)) |
Some((_, (7, _), _)) |
Some((_, (8, _), _)) |
Some((_, (9, _), _)) |
Some((_, (10, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action84(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::_28_3cWellKnownTextRepresentation_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state129<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state136(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state130<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<New>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state137(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state131<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state138(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state132<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, (f64, f64), usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state139(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state133<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__lookahead: Option<(usize, (usize, &'input str), usize)>,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
match __lookahead {
Some((__loc1, (1, __tok0), __loc2)) => {
let mut __sym2 = &mut Some((__loc1, (__tok0), __loc2));
__result = try!(__state140(input, __tokens, __sym0, __sym1, __sym2));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
return Ok(__result);
}
pub fn __state134<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, ::std::vec::Vec<LineStringType>, usize)>,
__sym1: &mut Option<(usize, LineStringType, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (0, _), _)) |
Some((_, (1, _), _)) |
Some((_, (5, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action72(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::_28_3cLineStringText_3e_20_22_2c_22_29_2b((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state135<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action28(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::CircularStringText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state136<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action30(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::CompoundCurveText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state137<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<New>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action38(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::GeometryCollectionText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state138<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<(f64, f64)>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action36(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::MultiPointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state139<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, (f64, f64), usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action24(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::PointText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
pub fn __state140<
'input,
__TOKENS: Iterator<Item=Result<(usize, (usize, &'input str), usize),__ParseError<usize,(usize, &'input str),()>>>,
>(
input: &'input str,
__tokens: &mut __TOKENS,
__sym0: &mut Option<(usize, &'input str, usize)>,
__sym1: &mut Option<(usize, Vec<LineStringType>, usize)>,
__sym2: &mut Option<(usize, &'input str, usize)>,
) -> Result<(Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>), __ParseError<usize,(usize, &'input str),()>>
{
let mut __result: (Option<(usize, (usize, &'input str), usize)>, __Nonterminal<>);
let __lookahead = match __tokens.next() {
Some(Ok(v)) => Some(v),
None => None,
Some(Err(e)) => return Err(e),
};
match __lookahead {
Some((_, (1, _), _)) |
Some((_, (2, _), _)) => {
let __sym0 = __sym0.take().unwrap();
let __sym1 = __sym1.take().unwrap();
let __sym2 = __sym2.take().unwrap();
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action34(input, __sym0, __sym1, __sym2);
let __nt = __Nonterminal::PolygonText((
__start,
__nt,
__end,
));
return Ok((__lookahead, __nt));
}
_ => {
return Err(__ParseError::UnrecognizedToken {
token: __lookahead,
expected: vec![],
});
}
}
}
}
pub use self::__parse__WellKnownTextRepresentation::parse_WellKnownTextRepresentation;
mod __intern_token {
extern crate lalrpop_util as __lalrpop_util;
use self::__lalrpop_util::ParseError as __ParseError;
pub struct __Matcher<'input> {
text: &'input str,
consumed: usize,
}
fn __tokenize(text: &str) -> Option<(usize, usize)> {
let mut __chars = text.char_indices();
let mut __current_match: Option<(usize, usize)> = None;
let mut __current_state: usize = 0;
loop {
match __current_state {
0 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
40 => {
__current_match = Some((0, __index + 1));
__current_state = 1;
continue;
}
41 => {
__current_match = Some((1, __index + 1));
__current_state = 2;
continue;
}
43 => {
__current_match = Some((11, __index + 1));
__current_state = 3;
continue;
}
44 => {
__current_match = Some((2, __index + 1));
__current_state = 4;
continue;
}
45 ... 48 => {
__current_match = Some((11, __index + __ch.len_utf8()));
__current_state = 3;
continue;
}
57 => {
__current_match = Some((11, __index + 1));
__current_state = 3;
continue;
}
67 => {
__current_state = 5;
continue;
}
69 => {
__current_match = Some((11, __index + 1));
__current_state = 6;
continue;
}
71 => {
__current_state = 7;
continue;
}
76 => {
__current_state = 8;
continue;
}
77 => {
__current_state = 9;
continue;
}
80 => {
__current_state = 10;
continue;
}
101 => {
__current_match = Some((11, __index + 1));
__current_state = 3;
continue;
}
_ => {
return __current_match;
}
}
}
1 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
2 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
3 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
43 ... 48 => {
__current_match = Some((11, __index + __ch.len_utf8()));
__current_state = 12;
continue;
}
57 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
69 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
101 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
_ => {
return __current_match;
}
}
}
4 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
43 ... 48 => {
__current_match = Some((11, __index + __ch.len_utf8()));
__current_state = 12;
continue;
}
57 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
69 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
101 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
_ => {
return __current_match;
}
}
}
5 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 13;
continue;
}
79 => {
__current_state = 14;
continue;
}
_ => {
return __current_match;
}
}
}
6 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
43 ... 48 => {
__current_match = Some((11, __index + __ch.len_utf8()));
__current_state = 12;
continue;
}
57 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
69 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
77 => {
__current_state = 15;
continue;
}
101 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
_ => {
return __current_match;
}
}
}
7 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
69 => {
__current_state = 16;
continue;
}
_ => {
return __current_match;
}
}
}
8 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 17;
continue;
}
_ => {
return __current_match;
}
}
}
9 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
85 => {
__current_state = 18;
continue;
}
_ => {
return __current_match;
}
}
}
10 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 19;
continue;
}
_ => {
return __current_match;
}
}
}
11 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
12 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
43 ... 48 => {
__current_match = Some((11, __index + __ch.len_utf8()));
__current_state = 12;
continue;
}
57 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
69 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
101 => {
__current_match = Some((11, __index + 1));
__current_state = 12;
continue;
}
_ => {
return __current_match;
}
}
}
13 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
82 => {
__current_state = 20;
continue;
}
_ => {
return __current_match;
}
}
}
14 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
77 => {
__current_state = 21;
continue;
}
_ => {
return __current_match;
}
}
}
15 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
80 => {
__current_state = 22;
continue;
}
_ => {
return __current_match;
}
}
}
16 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 23;
continue;
}
_ => {
return __current_match;
}
}
}
17 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_state = 24;
continue;
}
_ => {
return __current_match;
}
}
}
18 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
76 => {
__current_state = 25;
continue;
}
_ => {
return __current_match;
}
}
}
19 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 26;
continue;
}
76 => {
__current_state = 27;
continue;
}
_ => {
return __current_match;
}
}
}
20 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
67 => {
__current_state = 28;
continue;
}
_ => {
return __current_match;
}
}
}
21 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
80 => {
__current_state = 29;
continue;
}
_ => {
return __current_match;
}
}
}
22 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_state = 30;
continue;
}
_ => {
return __current_match;
}
}
}
23 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
77 => {
__current_state = 31;
continue;
}
_ => {
return __current_match;
}
}
}
24 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
69 => {
__current_state = 32;
continue;
}
_ => {
return __current_match;
}
}
}
25 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_state = 33;
continue;
}
_ => {
return __current_match;
}
}
}
26 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_state = 34;
continue;
}
_ => {
return __current_match;
}
}
}
27 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
89 => {
__current_state = 35;
continue;
}
_ => {
return __current_match;
}
}
}
28 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
85 => {
__current_state = 36;
continue;
}
_ => {
return __current_match;
}
}
}
29 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 37;
continue;
}
_ => {
return __current_match;
}
}
}
30 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
89 => {
__current_match = Some((5, __index + 1));
__current_state = 38;
continue;
}
_ => {
return __current_match;
}
}
}
31 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
69 => {
__current_state = 39;
continue;
}
_ => {
return __current_match;
}
}
}
32 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
83 => {
__current_state = 40;
continue;
}
_ => {
return __current_match;
}
}
}
33 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 41;
continue;
}
_ => {
return __current_match;
}
}
}
34 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_match = Some((9, __index + 1));
__current_state = 42;
continue;
}
_ => {
return __current_match;
}
}
}
35 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
71 => {
__current_state = 43;
continue;
}
_ => {
return __current_match;
}
}
}
36 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
76 => {
__current_state = 44;
continue;
}
_ => {
return __current_match;
}
}
}
37 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
85 => {
__current_state = 45;
continue;
}
_ => {
return __current_match;
}
}
}
38 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
39 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_state = 46;
continue;
}
_ => {
return __current_match;
}
}
}
40 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_state = 47;
continue;
}
_ => {
return __current_match;
}
}
}
41 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
80 => {
__current_state = 48;
continue;
}
_ => {
return __current_match;
}
}
}
42 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
43 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 49;
continue;
}
_ => {
return __current_match;
}
}
}
44 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
65 => {
__current_state = 50;
continue;
}
_ => {
return __current_match;
}
}
}
45 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_state = 51;
continue;
}
_ => {
return __current_match;
}
}
}
46 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
82 => {
__current_state = 52;
continue;
}
_ => {
return __current_match;
}
}
}
47 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
82 => {
__current_state = 53;
continue;
}
_ => {
return __current_match;
}
}
}
48 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 54;
continue;
}
_ => {
return __current_match;
}
}
}
49 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_match = Some((10, __index + 1));
__current_state = 55;
continue;
}
_ => {
return __current_match;
}
}
}
50 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
82 => {
__current_state = 56;
continue;
}
_ => {
return __current_match;
}
}
}
51 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
68 => {
__current_state = 57;
continue;
}
_ => {
return __current_match;
}
}
}
52 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
89 => {
__current_state = 58;
continue;
}
_ => {
return __current_match;
}
}
}
53 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 59;
continue;
}
_ => {
return __current_match;
}
}
}
54 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 60;
continue;
}
_ => {
return __current_match;
}
}
}
55 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
56 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
83 => {
__current_state = 61;
continue;
}
_ => {
return __current_match;
}
}
}
57 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
67 => {
__current_state = 62;
continue;
}
_ => {
return __current_match;
}
}
}
58 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
67 => {
__current_state = 63;
continue;
}
_ => {
return __current_match;
}
}
}
59 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_state = 64;
continue;
}
_ => {
return __current_match;
}
}
}
60 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_state = 65;
continue;
}
_ => {
return __current_match;
}
}
}
61 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_state = 66;
continue;
}
_ => {
return __current_match;
}
}
}
62 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
85 => {
__current_state = 67;
continue;
}
_ => {
return __current_match;
}
}
}
63 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 68;
continue;
}
_ => {
return __current_match;
}
}
}
64 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
71 => {
__current_match = Some((7, __index + 1));
__current_state = 69;
continue;
}
_ => {
return __current_match;
}
}
}
65 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_match = Some((8, __index + 1));
__current_state = 70;
continue;
}
_ => {
return __current_match;
}
}
}
66 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
82 => {
__current_state = 71;
continue;
}
_ => {
return __current_match;
}
}
}
67 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
82 => {
__current_state = 72;
continue;
}
_ => {
return __current_match;
}
}
}
68 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
76 => {
__current_state = 73;
continue;
}
_ => {
return __current_match;
}
}
}
69 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
70 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
71 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 74;
continue;
}
_ => {
return __current_match;
}
}
}
72 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
86 => {
__current_state = 75;
continue;
}
_ => {
return __current_match;
}
}
}
73 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
76 => {
__current_state = 76;
continue;
}
_ => {
return __current_match;
}
}
}
74 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_state = 77;
continue;
}
_ => {
return __current_match;
}
}
}
75 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
69 => {
__current_match = Some((4, __index + 1));
__current_state = 78;
continue;
}
_ => {
return __current_match;
}
}
}
76 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
69 => {
__current_state = 79;
continue;
}
_ => {
return __current_match;
}
}
}
77 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
71 => {
__current_match = Some((3, __index + 1));
__current_state = 80;
continue;
}
_ => {
return __current_match;
}
}
}
78 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
79 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
67 => {
__current_state = 81;
continue;
}
_ => {
return __current_match;
}
}
}
80 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
81 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
84 => {
__current_state = 82;
continue;
}
_ => {
return __current_match;
}
}
}
82 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
73 => {
__current_state = 83;
continue;
}
_ => {
return __current_match;
}
}
}
83 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
79 => {
__current_state = 84;
continue;
}
_ => {
return __current_match;
}
}
}
84 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
78 => {
__current_match = Some((6, __index + 1));
__current_state = 85;
continue;
}
_ => {
return __current_match;
}
}
}
85 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
_ => { panic!("invalid state {}", __current_state); }
}
}
}
impl<'input> __Matcher<'input> {
pub fn new(s: &'input str) -> __Matcher<'input> {
__Matcher { text: s, consumed: 0 }
}
}
impl<'input> Iterator for __Matcher<'input> {
type Item = Result<(usize, (usize, &'input str), usize), __ParseError<usize,(usize, &'input str),()>>;
fn next(&mut self) -> Option<Self::Item> {
let __text = self.text.trim_left();
let __whitespace = self.text.len() - __text.len();
let __start_offset = self.consumed + __whitespace;
if __text.is_empty() {
self.text = __text;
self.consumed = __start_offset;
None
} else {
match __tokenize(__text) {
Some((__index, __length)) => {
let __result = &__text[..__length];
let __remaining = &__text[__length..];
let __end_offset = __start_offset + __length;
self.text = __remaining;
self.consumed = __end_offset;
Some(Ok((__start_offset, (__index, __result), __end_offset)))
}
None => {
Some(Err(__ParseError::InvalidToken { location: __start_offset }))
}
}
}
}
}
}
pub fn __action0<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> New
{
(__0)
}
pub fn __action1<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> f64
{
f64::from_str(__0).unwrap()
}
pub fn __action2<
'input,
>(
input: &'input str,
(_, x, _): (usize, f64, usize),
(_, y, _): (usize, f64, usize),
) -> (f64, f64)
{
(x, y)
}
pub fn __action3<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> New
{
(__0)
}
pub fn __action4<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> New
{
(__0)
}
pub fn __action5<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> New
{
(__0)
}
pub fn __action6<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> New
{
(__0)
}
pub fn __action7<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, PointType, usize),
) -> New
{
New::Point(n)
}
pub fn __action8<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> New
{
New::LineString(__0)
}
pub fn __action9<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> New
{
New::CircularString(__0)
}
pub fn __action10<
'input,
>(
input: &'input str,
(_, __0, _): (usize, CompoundCurveType, usize),
) -> New
{
New::CompoundCurve(__0)
}
pub fn __action11<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, LineStringType, usize),
) -> LineStringType
{
(__0)
}
pub fn __action12<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, LineStringType, usize),
) -> LineStringType
{
(__0)
}
pub fn __action13<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, CompoundCurveType, usize),
) -> CompoundCurveType
{
(__0)
}
pub fn __action14<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> New
{
(__0)
}
pub fn __action15<
'input,
>(
input: &'input str,
(_, __0, _): (usize, PolygonType, usize),
) -> New
{
New::Polygon(__0)
}
pub fn __action16<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, PolygonType, usize),
) -> PolygonType
{
(__0)
}
pub fn __action17<
'input,
>(
input: &'input str,
(_, __0, _): (usize, MultiPointType, usize),
) -> New
{
New::Curve(__0)
}
pub fn __action18<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Vec<New>, usize),
) -> New
{
New::Collection(__0)
}
pub fn __action19<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, MultiPointType, usize),
) -> MultiPointType
{
(__0)
}
pub fn __action20<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, Vec<New>, usize),
) -> Vec<New>
{
(__0)
}
pub fn __action21<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> LineStringType
{
(__0)
}
pub fn __action22<
'input,
>(
input: &'input str,
(_, __0, _): (usize, PolygonType, usize),
) -> PolygonType
{
(__0)
}
pub fn __action23<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> PointType
{
None
}
pub fn __action24<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, (f64, f64), usize),
(_, _, _): (usize, &'input str, usize),
) -> PointType
{
Some(n)
}
pub fn __action25<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> LineStringType
{
vec![]
}
pub fn __action26<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, Vec<(f64, f64)>, usize),
(_, _, _): (usize, &'input str, usize),
) -> LineStringType
{
n
}
pub fn __action27<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> LineStringType
{
vec![]
}
pub fn __action28<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, Vec<(f64, f64)>, usize),
(_, _, _): (usize, &'input str, usize),
) -> LineStringType
{
n
}
pub fn __action29<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> CompoundCurveType
{
vec![]
}
pub fn __action30<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, Vec<LineStringType>, usize),
(_, _, _): (usize, &'input str, usize),
) -> CompoundCurveType
{
n
}
pub fn __action31<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> LineStringType
{
(__0)
}
pub fn __action32<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> LineStringType
{
(__0)
}
pub fn __action33<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> PolygonType
{
vec![]
}
pub fn __action34<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, Vec<LineStringType>, usize),
(_, _, _): (usize, &'input str, usize),
) -> PolygonType
{
n
}
pub fn __action35<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> MultiPointType
{
vec![]
}
pub fn __action36<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, Vec<(f64, f64)>, usize),
(_, _, _): (usize, &'input str, usize),
) -> MultiPointType
{
n
}
pub fn __action37<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Vec<New>
{
vec![]
}
pub fn __action38<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, n, _): (usize, Vec<New>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Vec<New>
{
n
}
pub fn __action39<
'input,
>(
input: &'input str,
(_, h, _): (usize, ::std::vec::Vec<New>, usize),
(_, t, _): (usize, ::std::option::Option<New>, usize),
) -> Vec<New>
{
h.into_iter().chain(t).collect()
}
pub fn __action40<
'input,
>(
input: &'input str,
(_, h, _): (usize, ::std::vec::Vec<LineStringType>, usize),
(_, t, _): (usize, ::std::option::Option<LineStringType>, usize),
) -> Vec<LineStringType>
{
h.into_iter().chain(t).collect()
}
pub fn __action41<
'input,
>(
input: &'input str,
(_, h, _): (usize, ::std::vec::Vec<LineStringType>, usize),
(_, t, _): (usize, ::std::option::Option<LineStringType>, usize),
) -> Vec<LineStringType>
{
h.into_iter().chain(t).collect()
}
pub fn __action42<
'input,
>(
input: &'input str,
(_, h, _): (usize, ::std::vec::Vec<(f64, f64)>, usize),
(_, t, _): (usize, ::std::option::Option<(f64, f64)>, usize),
) -> Vec<(f64, f64)>
{
h.into_iter().chain(t).collect()
}
pub fn __action43<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (f64, f64), usize),
) -> ::std::option::Option<(f64, f64)>
{
Some(__0)
}
pub fn __action44<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<(f64, f64)>
{
None
}
pub fn __action45<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<(f64, f64)>
{
vec![]
}
pub fn __action46<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(f64, f64)>, usize),
) -> ::std::vec::Vec<(f64, f64)>
{
v
}
pub fn __action47<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (f64, f64), usize),
(_, _, _): (usize, &'input str, usize),
) -> (f64, f64)
{
(__0)
}
pub fn __action48<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> ::std::option::Option<LineStringType>
{
Some(__0)
}
pub fn __action49<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<LineStringType>
{
None
}
pub fn __action50<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<LineStringType>
{
vec![]
}
pub fn __action51<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<LineStringType>, usize),
) -> ::std::vec::Vec<LineStringType>
{
v
}
pub fn __action52<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
(_, _, _): (usize, &'input str, usize),
) -> LineStringType
{
(__0)
}
pub fn __action53<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> ::std::option::Option<LineStringType>
{
Some(__0)
}
pub fn __action54<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<LineStringType>
{
None
}
pub fn __action55<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<LineStringType>
{
vec![]
}
pub fn __action56<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<LineStringType>, usize),
) -> ::std::vec::Vec<LineStringType>
{
v
}
pub fn __action57<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
(_, _, _): (usize, &'input str, usize),
) -> LineStringType
{
(__0)
}
pub fn __action58<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> ::std::option::Option<New>
{
Some(__0)
}
pub fn __action59<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::option::Option<New>
{
None
}
pub fn __action60<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<New>
{
vec![]
}
pub fn __action61<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<New>, usize),
) -> ::std::vec::Vec<New>
{
v
}
pub fn __action62<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
(_, _, _): (usize, &'input str, usize),
) -> New
{
(__0)
}
pub fn __action63<
'input,
>(
input: &'input str,
(_, __0, _): (usize, New, usize),
) -> ::std::vec::Vec<New>
{
vec![__0]
}
pub fn __action64<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<New>, usize),
(_, e, _): (usize, New, usize),
) -> ::std::vec::Vec<New>
{
{ let mut v = v; v.push(e); v }
}
pub fn __action65<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> ::std::vec::Vec<LineStringType>
{
vec![__0]
}
pub fn __action66<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<LineStringType>, usize),
(_, e, _): (usize, LineStringType, usize),
) -> ::std::vec::Vec<LineStringType>
{
{ let mut v = v; v.push(e); v }
}
pub fn __action67<
'input,
>(
input: &'input str,
(_, __0, _): (usize, LineStringType, usize),
) -> ::std::vec::Vec<LineStringType>
{
vec![__0]
}
pub fn __action68<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<LineStringType>, usize),
(_, e, _): (usize, LineStringType, usize),
) -> ::std::vec::Vec<LineStringType>
{
{ let mut v = v; v.push(e); v }
}
pub fn __action69<
'input,
>(
input: &'input str,
(_, __0, _): (usize, (f64, f64), usize),
) -> ::std::vec::Vec<(f64, f64)>
{
vec![__0]
}
pub fn __action70<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<(f64, f64)>, usize),
(_, e, _): (usize, (f64, f64), usize),
) -> ::std::vec::Vec<(f64, f64)>
{
{ let mut v = v; v.push(e); v }
}
pub fn __action71<
'input,
>(
input: &'input str,
__0: (usize, LineStringType, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action57(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action65(
input,
__temp0,
)
}
pub fn __action72<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
__1: (usize, LineStringType, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<LineStringType>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action57(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action66(
input,
__0,
__temp0,
)
}
pub fn __action73<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<LineStringType>, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action55(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action40(
input,
__temp0,
__0,
)
}
pub fn __action74<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
__1: (usize, ::std::option::Option<LineStringType>, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action56(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action40(
input,
__temp0,
__1,
)
}
pub fn __action75<
'input,
>(
input: &'input str,
__0: (usize, (f64, f64), usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<(f64, f64)>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action47(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action69(
input,
__temp0,
)
}
pub fn __action76<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(f64, f64)>, usize),
__1: (usize, (f64, f64), usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<(f64, f64)>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action47(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action70(
input,
__0,
__temp0,
)
}
pub fn __action77<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<(f64, f64)>, usize),
) -> Vec<(f64, f64)>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action45(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action42(
input,
__temp0,
__0,
)
}
pub fn __action78<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(f64, f64)>, usize),
__1: (usize, ::std::option::Option<(f64, f64)>, usize),
) -> Vec<(f64, f64)>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action46(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action42(
input,
__temp0,
__1,
)
}
pub fn __action79<
'input,
>(
input: &'input str,
__0: (usize, LineStringType, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action52(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action67(
input,
__temp0,
)
}
pub fn __action80<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
__1: (usize, LineStringType, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<LineStringType>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action52(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action68(
input,
__0,
__temp0,
)
}
pub fn __action81<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<LineStringType>, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action50(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action41(
input,
__temp0,
__0,
)
}
pub fn __action82<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
__1: (usize, ::std::option::Option<LineStringType>, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action51(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action41(
input,
__temp0,
__1,
)
}
pub fn __action83<
'input,
>(
input: &'input str,
__0: (usize, New, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<New>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action62(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action63(
input,
__temp0,
)
}
pub fn __action84<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<New>, usize),
__1: (usize, New, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<New>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action62(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action64(
input,
__0,
__temp0,
)
}
pub fn __action85<
'input,
>(
input: &'input str,
__0: (usize, ::std::option::Option<New>, usize),
) -> Vec<New>
{
let __start0 = __0.0.clone();
let __end0 = __0.0.clone();
let __temp0 = __action60(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action39(
input,
__temp0,
__0,
)
}
pub fn __action86<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<New>, usize),
__1: (usize, ::std::option::Option<New>, usize),
) -> Vec<New>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action61(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action39(
input,
__temp0,
__1,
)
}
pub fn __action87<
'input,
>(
input: &'input str,
__0: (usize, LineStringType, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action53(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action73(
input,
__temp0,
)
}
pub fn __action88<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<LineStringType>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action54(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action73(
input,
__temp0,
)
}
pub fn __action89<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
__1: (usize, LineStringType, usize),
) -> Vec<LineStringType>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action53(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action74(
input,
__0,
__temp0,
)
}
pub fn __action90<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action54(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action74(
input,
__0,
__temp0,
)
}
pub fn __action91<
'input,
>(
input: &'input str,
__0: (usize, (f64, f64), usize),
) -> Vec<(f64, f64)>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action43(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action77(
input,
__temp0,
)
}
pub fn __action92<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<(f64, f64)>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action44(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action77(
input,
__temp0,
)
}
pub fn __action93<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(f64, f64)>, usize),
__1: (usize, (f64, f64), usize),
) -> Vec<(f64, f64)>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action43(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action78(
input,
__0,
__temp0,
)
}
pub fn __action94<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<(f64, f64)>, usize),
) -> Vec<(f64, f64)>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action44(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action78(
input,
__0,
__temp0,
)
}
pub fn __action95<
'input,
>(
input: &'input str,
__0: (usize, LineStringType, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action48(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action81(
input,
__temp0,
)
}
pub fn __action96<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<LineStringType>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action49(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action81(
input,
__temp0,
)
}
pub fn __action97<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
__1: (usize, LineStringType, usize),
) -> Vec<LineStringType>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action48(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action82(
input,
__0,
__temp0,
)
}
pub fn __action98<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<LineStringType>, usize),
) -> Vec<LineStringType>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action49(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action82(
input,
__0,
__temp0,
)
}
pub fn __action99<
'input,
>(
input: &'input str,
__0: (usize, New, usize),
) -> Vec<New>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action58(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action85(
input,
__temp0,
)
}
pub fn __action100<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> Vec<New>
{
let __start0 = __lookbehind.clone();
let __end0 = __lookahead.clone();
let __temp0 = __action59(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action85(
input,
__temp0,
)
}
pub fn __action101<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<New>, usize),
__1: (usize, New, usize),
) -> Vec<New>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action58(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action86(
input,
__0,
__temp0,
)
}
pub fn __action102<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<New>, usize),
) -> Vec<New>
{
let __start0 = __0.2.clone();
let __end0 = __0.2.clone();
let __temp0 = __action59(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action86(
input,
__0,
__temp0,
)
}
pub trait __ToTriple<'input, > {
type Error;
fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),Self::Error>;
}
impl<'input, > __ToTriple<'input, > for (usize, (usize, &'input str), usize) {
type Error = ();
fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> {
Ok(value)
}
}
impl<'input, > __ToTriple<'input, > for Result<(usize, (usize, &'input str), usize),()> {
type Error = ();
fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> {
value
}
}