Здравствуйте, Дьяченко Александр, Вы писали:
ДА>1. Подправила одного правила имеют довольно сильную связь.
Не согласен.
ДА>2. Из п.1 вытекает, что исключать не противоречащие подправила не правильно... поэтому я и написал про 3 альтернативы ДА>3. А из п.2 вытекает, что и в ошибках ождалось — Expected "{Number,}" or "{,Number}" or "{Number,Number}"
Боюсь, ты не понимаешь масштаб проблемы.
Наш думатель может найти вообще все варианты.
И если его не ограничивать, то он тебе вывалит лес деревьев эпичного размера.
Это:
1)Вредно. Тебе все эти варианты не нужны.
2)Медленно. У нас на всю работу 100 миллисекунд времени. Ибо это время реакции человека. Всё что меньше для человека мгновенно. Всё что больше тормозит.
ДА>Вобщем порисую грамматику дальше, может появяться идеи на своей, а там обобщить может получиться.
Подумай. Только осторожно. Там столько экспонент в кустах прячется Я их уже много задавил. Последняя осталась.
ДА>PS. Кстати а почему не предлагает банальный вариант удалить запятую?
По тому, что его стоимость +3/-1(3 вставки одно удаление).
По нашей эвристике это даже хуже чем просто +4 у третьего варианта.
У выбранных вариантов стоимость +3.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Дьяченко Александр, Вы писали:
VD>>>С какого переполоха? Будет 0/-1. Просто цикла там нет. WH>>Я уже понял. Вчера затупил. ДА>Тогда почесу не предлагает?
Не знаю. Там ещё много проблем. Я их пытаюсь решать.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, VladD2, Вы писали:
VD>Новая версия собралась. Твой второй пример прочухался (не виснет), но все же подтормаживает. Полностью все заработает кагда Вольфвхаунд победит экспоненту в обходчиках. VD>В общем, скачай новую версию.
Скачал — уже гораздо лучше, за час Студия всего 2 раза померла .
Студия вешалась при работе со скобрами, с минимальным примером пока не получается.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Скачал — уже гораздо лучше, за час Студия всего 2 раза померла .
Плохо.
ДА>Студия вешалась при работе со скобрами, с минимальным примером пока не получается.
По грамматике нитры фигурных скобок в этом месте действительно не должно быть. Фигурные скобки применимы только к квантификаторам циклов и как тело правила, но до тела и до квантификатора должно идти хотя бы одно другое правило.
ДА>Найтра не разбирает вообще, в Errors: ДА>
ДА>(1,1): Exception: Unexpected token: {
ДА>
Но от этого исключения лететь не должны. Так что это точно баг.
ДА>Баг на "не разбор" грамматики завел: ДА>NTR-44 Not parsing simple grammar
Эта грамматика ошибочна. Баг в том, что летит исключение, а не выдается сообщение об ошибке.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
ДА>>Студия вешалась при работе со скобрами, с минимальным примером пока не получается. VD>По грамматике нитры фигурных скобок в этом месте действительно не должно быть. Фигурные скобки применимы только к квантификаторам циклов и как тело правила, но до тела и до квантификатора должно идти хотя бы одно другое правило.
Знаю, это я продолжаю переносить грамматику, вот и возникаю разные казусы.
ДА>>Баг на "не разбор" грамматики завел: ДА>>NTR-44 Not parsing simple grammar VD>Эта грамматика ошибочна. Баг в том, что летит исключение, а не выдается сообщение об ошибке.
То что грамматика не правильная я понимаю.
Вобщем надо переформулировать баг.
Стало почти неплохо. Студия уже почти не падает, только подтормаживает временами...
Со скобками еще не все проблемы решили, причем похоже вопрос уже не к памяти так как студия падает моментально, минимальный пример так воспроизвести и не смог.
Пробовал подключиться второй Студией результат какой-то странный при тех же действиях получал исключение "JetBrains.Application.Progress.ProcessCancelledException", но при продолжении первая Студия не падает, вобщем попытка поймать подение ни к чему не привела, может от Решарпера какая наведенка....
Файл Modula.nitra выглядит примерно так:
namespace Awtl.Modula.Grammar
{
syntax module Modula
{
... Куча правильных правил
syntax EmptyStatement =
; <<< Здесь ругается (369, 4): Expected: RuleExpression
... Ещё куча правильных правил
syntax VariableDesignator =
EntireDesignator |
IndexedDesignator |
SelectedDesignator |
DereferencedDesignator ;
... Куча кривого текста
}
}
И вот при попытке преобразовать VariableDesignator в правильную форму, следующим способом:
— выделяю "=" и давлюу Enter
— вставляю "{"
— выделяю ";" и давлюу Enter
— давлю Backspace
— вставляю "}"
— делаю вертикальное выделение перед EntireDesignator и до DereferencedDesignator
— печатаю "| "
— удаляю "|" в конце правил
Студия падает где-то между всавкой "}" и завершением последнего пункта.
Так же после каких-то действий получил "System.OperationCanceledException" сначала в "Nitra.Internal.ExtensibleRuleParser.Parse", потом в "Nitra.ParserHost.DoParsingImpl", после чего отвалился разбор — на ввод любого символа получал тоже самое исключение, в тех же местах. Сложилось впечатление что это поведение является следствием переиспользования ParsingResult и поэтому после однократной установки свойства TerminateParsing в True, при последующих разборах сразу получаю OperationCanceledException в ExtensibleRuleParser.Parse.
Ну и напоминаю про Roadmap, может создать задачу в трекере?.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>И вот при попытке преобразовать VariableDesignator в правильную форму, следующим способом: ДА>- выделяю "=" и давлюу Enter ДА>- вставляю "{" ДА>- выделяю ";" и давлюу Enter ДА>- давлю Backspace ДА>- вставляю "}" ДА>- делаю вертикальное выделение перед EntireDesignator и до DereferencedDesignator ДА>- печатаю "| " ДА>- удаляю "|" в конце правил ДА>Студия падает где-то между всавкой "}" и завершением последнего пункта.
Что-то пробую воспроизвести и не получается. Видимо нужна эта самая куча кода.
Не мог бы ты прислать код который воспроизводит проблему?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
ДА>>И вот при попытке преобразовать VariableDesignator в правильную форму, следующим способом: ДА>>- выделяю "=" и давлюу Enter ДА>>- вставляю "{" ДА>>- выделяю ";" и давлюу Enter ДА>>- давлю Backspace ДА>>- вставляю "}" ДА>>- делаю вертикальное выделение перед EntireDesignator и до DereferencedDesignator ДА>>- печатаю "| " ДА>>- удаляю "|" в конце правил ДА>>Студия падает где-то между всавкой "}" и завершением последнего пункта.
VD>Что-то пробую воспроизвести и не получается. Видимо нужна эта самая куча кода.
VD>Не мог бы ты прислать код который воспроизводит проблему?
Ссылка на исходник была в сообщении — Modula.nitra.
Сейчас специально проверил на последних сборках:
Nemerle — v1.2.399.0
Nitra — v0.1.1265.0
Эффект тот же.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Студия падает где-то между всавкой "}" и завершением последнего пункта.
Нашел и задавил баг в выведении ошибки. Баг приводил к исключению (что-то там аут-оф-рендж). Других проблем воспроизвести не смог.
Попробуй новую версию, плиз, когда она соберется.
ДА> Так же после каких-то действий получил "System.OperationCanceledException" сначала в "Nitra.Internal.ExtensibleRuleParser.Parse", потом в "Nitra.ParserHost.DoParsingImpl", после чего отвалился разбор — на ввод любого символа получал тоже самое исключение, в тех же местах. Сложилось впечатление что это поведение является следствием переиспользования ParsingResult и поэтому после однократной установки свойства TerminateParsing в True, при последующих разборах сразу получаю OperationCanceledException в ExtensibleRuleParser.Parse.
Это я воспроизвести не смог. Проверил, там все объекты создаются при постановке парсинга в очередь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА> Так же после каких-то действий получил "System.OperationCanceledException" сначала в "Nitra.Internal.ExtensibleRuleParser.Parse", потом в "Nitra.ParserHost.DoParsingImpl", после чего отвалился разбор — на ввод любого символа получал тоже самое исключение, в тех же местах. Сложилось впечатление что это поведение является следствием переиспользования ParsingResult и поэтому после однократной установки свойства TerminateParsing в True, при последующих разборах сразу получаю OperationCanceledException в ExtensibleRuleParser.Parse.
Кажись воспроизвел, но не описанным тобой образом. Правда у меня студия не падает, но OperationCanceledException вылетают и подсветка умерает на время.
Похоже это опять тормоза восстановления, но очень серьезные. Пока оно идет восстановление любое редактирование приводит к OperationCanceledException, чтобы его срубить. Это нормально, так как исключение перехватывается.
Отдал тормозящий пример Вольфхаунде. Надеюсь, он придумает как это фиксить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Отдал тормозящий пример Вольфхаунде.
Как ты только людей не склоняешь...
VD>Надеюсь, он придумает как это фиксить.
Кто там козлит, я в общих чертах понял. Осталось понять, что делать.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, VladD2, Вы писали:
ДА>>Студия падает где-то между всавкой "}" и завершением последнего пункта. VD>Нашел и задавил баг в выведении ошибки. Баг приводил к исключению (что-то там аут-оф-рендж). Других проблем воспроизвести не смог. VD>Попробуй новую версию, плиз, когда она соберется.
Не получается пересобрать свой проект после обновления Nemerle (v1.2.401.0) и Nitra (v0.1.1283.0). При сборке пишет:
C:\Users\Александр\Documents\Visual Studio 2013\Projects\Awtl.Modula\Awtl.Modula.Grammar\ModulaGrammar.nitra(1,1): error : Не удалось загрузить файл или сборку "Nitra.Core, Version=0.1.1271.0, Culture=neutral, PublicKeyToken=e080a9c724e2bfcd" либо одну из их зависимостей. Не удается найти указанный файл.
И вообще что то у вас с версиями странное:
NitraSetup.msi — 0.1.1283.0
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, Дьяченко Александр, Вы писали:
ДА>>И вообще что то у вас с версиями странное: ДА>>NitraSetup.msi — 0.1.1283.0
ДА>>Nitra.Compiler.dll — 0.1.1271.0 ДА>>Nitra.Core.dll — 0.1.1267.0 ДА>>Nitra.exe — 0.1.1283.0 ДА>>Nitra.Grammar.dll — 0.1.1271.0 ДА>>Nitra.Quote.dll — 0.1.1283.0 ДА>>Nitra.Runtime.dll — 0.1.1267.0 ДА>>Nitra.TestsLauncher.exe — 1.0.0.0 ДА>>Nitra.Visualizer.exe — 1.0.0.0 ДА>>Nitra.VisualStudio.dll — 0.1.1283.0
H>Это какой-то неправильный инсталлятор выложился. В текущем такой проблемы нет.
Последний который смотрел — 0.1.1296.0, в нем уже лучше 2 версии — в основном 0.1.1296.0, а Nitra.Quote.dll и Nitra.Runtime.dll — 0.1.1296.0.
Но по-крайне мере мой проект собирается.
Я вобще-то думал что у вас так много стадий сборки как-раз из-за BootStapping-а и что бы получать одну версию.