rust/hedgewars-server/src/server/haskell.rs
changeset 15578 0b6094660557
parent 15577 7d4f552e317f
child 15580 98482c4ccf4b
equal deleted inserted replaced
15577:7d4f552e317f 15578:0b6094660557
     1 use crate::server::haskell::HaskellValue::Boolean;
     1 use crate::server::haskell::HaskellValue::Boolean;
       
     2 use nom::multi::many0;
     2 use nom::{
     3 use nom::{
     3     branch::alt,
     4     branch::alt,
     4     bytes::complete::{escaped_transform, is_not, tag, take_while, take_while1},
     5     bytes::complete::{escaped_transform, is_not, tag, take_while, take_while1},
     5     character::{is_alphanumeric, is_digit, is_space},
     6     character::{is_alphanumeric, is_digit, is_space},
     6     combinator::{map, map_res},
     7     combinator::{map, map_res},
     7     multi::separated_list,
     8     multi::separated_list,
     8     sequence::{delimited, pair, preceded, separated_pair},
     9     sequence::{delimited, pair, preceded, separated_pair, terminated},
     9     ExtendInto, IResult,
    10     ExtendInto, IResult,
    10 };
    11 };
    11 use std::{
    12 use std::{
    12     collections::HashMap,
    13     collections::HashMap,
    13     fmt::{Display, Error, Formatter},
    14     fmt::{Display, Error, Formatter},
   327         map(
   328         map(
   328             pair(
   329             pair(
   329                 identifier,
   330                 identifier,
   330                 preceded(
   331                 preceded(
   331                     take_while(is_space),
   332                     take_while(is_space),
   332                     separated_list(take_while1(is_space), value),
   333                     many0(terminated(value, take_while(is_space))),
   333                 ),
   334                 ),
   334             ),
   335             ),
   335             |(name, mut fields)| HaskellValue::AnonStruct {
   336             |(name, mut fields)| HaskellValue::AnonStruct {
   336                 name: name.clone(),
   337                 name: name.clone(),
   337                 fields,
   338                 fields,