Size: a a a

2020 April 10

p

polunin.ai in rust_offtopic
Alex Zhukovsky
забавно отрицать всё, что ен понимаешь
Ну я не вижу почему ветвящийся список нужен, аргументы или примеры никто не приводит.
источник

p

polunin.ai in rust_offtopic
Чо я должен делать? Кричать какая хорошая структура данных?
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Ну я не вижу почему ветвящийся список нужен, аргументы или примеры никто не приводит.
Ну у всех персистетных структур данных один плюс - возможность не копировать их целиком при изменениях + за счёт иммутабельности - возможность спокойно передавать их сквозь потоки
источник

DS

Doge Shibu in rust_offtopic
Уже обсуждалось тут пару дней назад
источник

D

Dima in rust_offtopic
А чем те же конкурентные структуры данных кого то не устраивают?
источник

D

Dima in rust_offtopic
Лок фри, не Лок фри не важно
источник

EG

Emmanuel Goldstein in rust_offtopic
У кого-нибудь есть хороший мануал/пример по правильной обработке ошибок в nom? Сейчас я тривиально делаю везде nom::IResult, но получается, закономерно, фигня вместо ошибок
источник

DS

Doge Shibu in rust_offtopic
Dima
А чем те же конкурентные структуры данных кого то не устраивают?
Тем что тебе далеко не всегда нужна от них мутабельность.
источник

D

Dima in rust_offtopic
Ну так тогда вообще никаких проблем нет
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
У кого-нибудь есть хороший мануал/пример по правильной обработке ошибок в nom? Сейчас я тривиально делаю везде nom::IResult, но получается, закономерно, фигня вместо ошибок
А взял бы peg
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
А взял бы peg
И он бы мне выдавал типа красивые ошибки, но при этом впихнуть туда свои ошибки было бы ещё более проблематично
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
И он бы мне выдавал типа красивые ошибки, но при этом впихнуть туда свои ошибки было бы ещё более проблематично
А зачем тебе свои ошибки при парсинге?
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
А зачем тебе свои ошибки при парсинге?
Например, у меня есть модификатор ' — не выполнять токен
Технически его можно пририсовать к любому токену, но на практике он имеет смысл либо перед списком, либо перед идентификатором
источник

EG

Emmanuel Goldstein in rust_offtopic
Я хочу формировать ошибку (а ещё лучше — варнинг, но это отдельная история), если у меня ' пририсован, скажем, к числу
источник

EG

Emmanuel Goldstein in rust_offtopic
Можно, конечно, сбоку к парсеру прикрутить ещё линтер, но это отдельная задача
источник
2020 April 11

p

polunin.ai in rust_offtopic
rule token_foo() -> Result<Token, Error>
 = "'" token:token() {
   match token {
     Token::List() => Err(),
     t => Ok(t),
   }
 }
источник

p

polunin.ai in rust_offtopic
Там код неправильный, но суть я думаю ты понял
источник

EG

Emmanuel Goldstein in rust_offtopic
Не очень
У меня есть примерно такая структура:
enum ValueKind<'a> {
   Integer(i64),
   Float(f64),
   Symbol(&'a str),
   String(String),
   List(List<Value<'a>>),
}

struct Value<'a> {
   raw: bool,
   kind: ValueKind<'a>,
}
источник

EG

Emmanuel Goldstein in rust_offtopic
Вот ' — это вот этот флаг raw
источник

p

polunin.ai in rust_offtopic
rule token_foo() -> Result<Token, Error>
 = is_raw:"'"? token:value_kind() {
   let mut raw = false;
   if let Some(_) = is_raw {
     raw = true;
   }
   ...
 }
источник