-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New structural generator [WIP] #1345
base: master
Are you sure you want to change the base?
Conversation
Это лучше не мёрджить, чтобы история в коммитах была почище. Но обсуждать можно. |
Мне кажется стоит обсудить способ "факторизации".
А может быть так.
Условия не превращаются в страшные temp и читаются легче. Но сама переменная selector вроде неочевидна (значений, конечно, может быть больше одного). Поэтому можно преобразовать как-то так.
Или пойти ещё дальше и придумать хороших способ генерить имена по содержанию. Тут, хотя бы, __next_is_vlevo_1; |
Второй вариант имхо сильно лучше первого, последний конечно читается лучше, но есть чувство, что при хоть немного более сложной схеме по итогу там будет десяток __next_is subrogram_x (или текстовый аналог) и все совсем в кашу превратится из-за того, что придется писать иф-элзы и вот это вот все (тем более что есть чувство, что в таком варианте их надо будет все равно индексировать на случай глубоких деревьев, т.е. где нам надо сначала выйти на третью подпрограмму, а потом на первую). Так что вариант с селектром немного лучше (но у него тоже должна быть индексация, т.к. аналогично вышесказанному). |
Суть варианта с селектором в том, что доп переменная всего одна и только значения это уникальные числа.
И вроде как в таких случаях не особо и понятно что за числа, а если делать next_is_, то становится читаемее. |
Хорошая идея выбирать для продолжения конкретный блок. Но лучше это сделать отдельно. Во-первых, лучше сначала получить что-то работающее, которое уже будет радовать людей. Во-вторых, есть схожая проблема в событийной схеме, например, в Lua для Пионера. Наверное, стоит погрузиться в ту проблему тоже, чтобы пытаться решать уже более общую задачу (если вдруг это та же задача). |
|
Да, я вот сейчас наконец до конца поняла логику с селектором и почему он действительно работает |
cd7a4ab
to
ff6360f
Compare
dde4319
to
06af258
Compare
My concerns:
-- using string Ids in syntheticIfGenerator condition
-- new class StructurizerNode::CondtionTree itself
-- using ReadableLabelManager for more than one name type
-- DeepFirstSearcher used to visit some nodes more than once?!