Size: a a a

2020 October 01

PK

Petr Kozorezov in ErlangRus
но вся суть есть в shell.erl в otp в функции expand_records, я убрал лишнее и добавил загрузку form рекордов из модулей в рантайме
источник

SP

Sergey Prokhorov in ErlangRus
а, да не вопрос. Мне не то чтоб нужно, просто любопытно
источник

s

snakeduse in ErlangRus
Всем привет. Может кто-нибудь подсказать по yecc?
Есть такой кусок грамматики:
Left 100 'or'.
Left 200 'and'.

expression -> expression space_value 'or' space_value expression : {'or', '$1', '$5'}.
expression -> expression space_value 'and' space_value expression : {'and', '$1', '$5'}.

При этом приоритеты не срабатывают. То есть выражение вида "Expression1 and Expression2 or Expression3 and Expression4" должно стать таким деревом:
{'or',
{'and', Expression1, Expression2},
 {'and', Expression3, Expression4}
}

Вместо этого получается такое дерево:
{'and',
 {'or', {'and', Expression1, Expression2}, Expression3},
 Expression4
}

Но если убрать пробелы (space_value), то все нормально, приоритеты отрабатывают.

Может кто-нибудь объяснить почему так происходит?
источник

AB

Alexey Bolshakov in ErlangRus
а space_value как определен?
источник

s

snakeduse in ErlangRus
Alexey Bolshakov
а space_value как определен?
space_value -> space : extract('$1').
источник

s

snakeduse in ErlangRus
extract определен как:
extract({_Token, _Line, Value}) ->
   Value;
extract({Token, _Line}) ->
   Token.
источник

AB

Alexey Bolshakov in ErlangRus
у space_value имхо должен быть приоритет более высокий, чем у or/and
источник

s

snakeduse in ErlangRus
хм, попробую сейчас
источник

s

snakeduse in ErlangRus
Alexey Bolshakov
у space_value имхо должен быть приоритет более высокий, чем у or/and
че-то не помогает
источник

AB

Alexey Bolshakov in ErlangRus
snakeduse
че-то не помогает
Ну либо пробелов действительно не должно быть в определении expression. Сделать их ниже - в определениях отдельных слов. Забыл, надо у себя посмотреть, как делал
источник

s

snakeduse in ErlangRus
А можно пример привести по поводу сделать пробелы ниже? Че-то не понимаю...
источник

s

snakeduse in ErlangRus
в общем чуть схитрил, сделал проверку пробелов на уровне leex, а из yecc убрал их совсем
источник

SP

Sergey Prokhorov in ErlangRus
Sergey Prokhorov
хочу поделиться впечатлением: у нас есть система, у неё есть некий стейт в базе данных и есть набор операций, которые этот стейт меняют (порядка 20 различных операций). В проде уже с год, более-менее работает.
Решили для неё сделать полный statefull property-based тест… выловили уже штук 8 багов / corner case / неконсистентностей. Часть из них требуют цепочек из 5-6 различных операций. В проде не проявлялось потому что пока что такая комбинация операций не использовалась в текущем продукте. Но очень довольны теперь что решили потратить на это время
о... только что отловил баг который требует цепочку из 8 команд чтоб стриггериться. Мне бы самому в жизни не пришло в голову их так скомбинировать
источник

LW

Lev Walkin in ErlangRus
👍
источник

PK

Petr Kozorezov in ErlangRus
Sergey Prokhorov
о... только что отловил баг который требует цепочку из 8 команд чтоб стриггериться. Мне бы самому в жизни не пришло в голову их так скомбинировать
да, в этом и есть весь кайф пропера 😉
источник

ML

Maksim Lapshin in ErlangRus
Sergey Prokhorov
о... только что отловил баг который требует цепочку из 8 команд чтоб стриггериться. Мне бы самому в жизни не пришло в голову их так скомбинировать
Вот ты так говоришь, будто у вас политика zero bug tolerance :)
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Как в escript добавить sys.config?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Я так понитмаю никак
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Эликсир вставляет макросом set_env с запеченными на момент билда конфигами
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Может в ребаре что-то есть?
источник