tel8618217223380 / oasychev-moodle-plugins

Automatically exported from code.google.com/p/oasychev-moodle-plugins
0 stars 0 forks source link

Подсказки для mistakes from lexical_analyzer и вообще подготовка к релизу #337

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
a)typo_mistake
1) what_is - показывает текст лексемы. Код уже 
существует, нужно только проверить его в 
смысле того, какую именно лексему он 
показывает - правильное написание или 
ошибочное - раньше они были одинаковыми. 
Интересный вопрос, какое именно надо 
показать. Я за ошибочное, иначе это уже 
подсказка как исправить. Могу взять на себя.
2) how_to_fix_pic - картинка с исправлением 
лексемы, можно ре-юзе из существующего кода 
отрисовки большой картинки

b) лишний и пропущенный разделители
1) what_is - аналогично, показывает текст 
лексемы (лексем) в ошибочном написании. 
Могу взять на себя.
2) how_to_fix_pic - показывает как склеить или 
разделить лексемы (надо ли?). Можно ре-юзе из 
существующего кода большой картинки, 
только здесь уже обе строки показываются - 
как склеивается или расходится на 
несколько лексема.

Других вариантов придумать не могу. Есть 
идеи?

Original issue reported on code.google.com by oasyc...@gmail.com on 20 Mar 2015 at 12:29

GoogleCodeExporter commented 9 years ago
1) Лишние ошибки пофиксил, но 
дополнительный вариант, который должен 
быть сгенерирован Вадимом, не генерируется 
(от enum_analyzer должно придти две строки), а 
приходит одна

2) Картинка строится неверно, потому что 
Вадим не заполняет поле enumcorrecttocorrect в 
string_pair. 

Original comment by mamontov...@gmail.com on 27 May 2015 at 9:38

GoogleCodeExporter commented 9 years ago
Исправил проблему с поле на edu.vstu.org . 
Вытолкнул в клон 
https://code.google.com/r/vad23klev-clone-to-support-enumerations

Original comment by vad23k...@gmail.com on 29 May 2015 at 1:13

GoogleCodeExporter commented 9 years ago
Вы проверили, что они генерируются 
правильно? В соотношениях должна быть 
ключом позиция лексемы в конечной строке к 
позиции лексемы в исходной.

В репозитории не вижу исправления 
дополнительного варианта. Он будет?

Original comment by mamontov...@gmail.com on 29 May 2015 at 1:17

GoogleCodeExporter commented 9 years ago
Вторая проблема исправлена.

Original comment by vad23k...@gmail.com on 29 May 2015 at 3:53

GoogleCodeExporter commented 9 years ago
Подтверждаю, на edu.vstu.org проблема не 
воспроизводится. Жду исправления первой.

Original comment by mamontov...@gmail.com on 29 May 2015 at 6:45

GoogleCodeExporter commented 9 years ago
Проверь я и первую поправил.

Original comment by vad23k...@gmail.com on 29 May 2015 at 7:12

GoogleCodeExporter commented 9 years ago
Очень хорошо, с первой тоже проблем нет. В 
ближайшее время просто солью два 
репозитория. На edu.vstu.org все хорошо.

Original comment by mamontov...@gmail.com on 29 May 2015 at 7:54

GoogleCodeExporter commented 9 years ago
Слил репозитории.

Original comment by mamontov...@gmail.com on 31 May 2015 at 11:21

GoogleCodeExporter commented 9 years ago
enum+lexical+sequence analyzer
struct  MyNiceStructure { long Padding; char int  ;SmallPart;    First Field } 
DefaultValue;

Ошибка 2) -  integral type name misplaced;
Картинкой подсказка о положении int 
показывается правильно, а текстовый 
вариант не учитывает перестановку по enum 
analyzer и показывает его первым полем: The integral 
type name could be placed between opening brace of structure and name of 
integral field 
ИХМО надо текстовый хинт пофиксить.

Original comment by oasyc...@gmail.com on 7 Jun 2015 at 10:24

GoogleCodeExporter commented 9 years ago
Каким-то образом в клоне Вадима в строке 645 
находится ошибка, см. 
https://code.google.com/r/vad23klev-clone-to-support-enumerations/source/browse/
question/type/correctwriting/enum_analyzer.php

Original comment by mamontov...@gmail.com on 8 Jun 2015 at 5:05

GoogleCodeExporter commented 9 years ago
Исправил генерацию хинта, код развернут на 
edu.vstu.org.

Original comment by mamontov...@gmail.com on 8 Jun 2015 at 5:30

GoogleCodeExporter commented 9 years ago
Исправил опечатку в клоне.

Original comment by vad23k...@gmail.com on 8 Jun 2015 at 8:40

GoogleCodeExporter commented 9 years ago
Ок, вижу. Вопросов нет, в моем клоне 
исправление идентично.

Original comment by mamontov...@gmail.com on 8 Jun 2015 at 8:43

GoogleCodeExporter commented 9 years ago
Вадим - в Question of enum+sequence analyzer (setting test) logical 
очень странные результаты бывают. 

В тексте вопроса: t == a && b || c && k != true;
Мой ответ: c && k != true  || b && t == a;
Он предлагает "с &&" обменять местами чтобы 
стояли правее k != true -  зачем?!! Самое 
интересное, что именно в этом && я порядок не 
менял....

Original comment by oasyc...@gmail.com on 9 Jun 2015 at 7:47

GoogleCodeExporter commented 9 years ago
Вадим, проверьте, что строки перестановок 
генерируются верно. Если что - можно еще 
дампнуть результаты внутри 
perform_analysis_with_analyzer, см. 
https://code.google.com/r/mamontovdp-correctwriting-release2015/source/browse/qu
estion/type/correctwriting/question.php, с. 468, 469.

Original comment by mamontov...@gmail.com on 9 Jun 2015 at 7:54

GoogleCodeExporter commented 9 years ago
Здесь могут быть либо два эквивалентных 
набора ошибок (что странно), либо требуемая 
строка не генерируется (что более вероятно).

Original comment by mamontov...@gmail.com on 9 Jun 2015 at 7:55

GoogleCodeExporter commented 9 years ago
А вот тут надо обоим посмотреть
Question of enum+sequence analyzer (setting test) arithmetic operations
верный ответ - float k = ( a * b + c / d / e - f - g ) % t % m ;
Мой ответ float k = ( a * b + e / d / c - f - g ) % t % m ;
На картинке перенос "c" и "е" к оригинальному 
тексту, а ошибки
There are mistakes in your response:
1) variable c misplaced;
2) variable d misplaced.
При этом на подсказке к variable d misplaced в виде 
картинки показывается перемещение 
переменное "е". И текствые хинты к ней 
неправильные тоже.

P.S. Вадим - включите все хинты в ваших 
вопросах, выставив за них штраф меньше 1

Original comment by oasyc...@gmail.com on 9 Jun 2015 at 8:42

GoogleCodeExporter commented 9 years ago
По поводу, логических операций, у операции 
или выше приоритет, по этому ваша 
перестановка содержит ошибку.

Original comment by vad23k...@gmail.com on 10 Jun 2015 at 7:12

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
по поводу Question of enum+sequence analyzer (setting test) arithmetic 
operations. У меня на локальном сервере, 
анализатор переставляет элементы.

Original comment by vad23k...@gmail.com on 10 Jun 2015 at 1:45

GoogleCodeExporter commented 9 years ago
Ок, по поводу второго - посмотрю у себя, 
скорее всего неверно почему-то 
определяется переменная.

Original comment by mamontov...@gmail.com on 10 Jun 2015 at 1:46

GoogleCodeExporter commented 9 years ago
Добавлены вопросы с лексером.

Original comment by vad23k...@gmail.com on 10 Jun 2015 at 2:12

GoogleCodeExporter commented 9 years ago
Насколько я помню, логическая И (лог. 
умнож-е) всегда имела приоритет над 
логическим ИЛИ (логич. сложение)

Original comment by oasyc...@gmail.com on 10 Jun 2015 at 2:19

GoogleCodeExporter commented 9 years ago
Sequence генерирует такое дерево. У нас два 
пути либо исправление дерева, либо 
семантический анализ для перечислений.

Original comment by vad23k...@gmail.com on 10 Jun 2015 at 2:52

Attachments:

GoogleCodeExporter commented 9 years ago
Такое дерево неверно, поправлю в ближайшее 
время.

Original comment by mamontov...@gmail.com on 10 Jun 2015 at 5:18

GoogleCodeExporter commented 9 years ago
Исправил дерево. После этого он показывает 
в первом случае, что correct, но в enum_analyzer есть 
возможно проблема:

Notice: Undefined offset: 2 in 
/var/www/server1biz/data/www/edu.vstu.org/question/type/correctwriting/enum_anal
yzer.php on line 240

.

Вадим, если не затруднит - посмотри в чем 
дело, я завтра вторым займусь.

Original comment by mamontov...@gmail.com on 10 Jun 2015 at 8:34

GoogleCodeExporter commented 9 years ago
Исправил.

Original comment by vad23k...@gmail.com on 11 Jun 2015 at 8:42

GoogleCodeExporter commented 9 years ago
Оказалось, что на edu.vstu.org старая версия 
enum_analyzer.php. Перезалил. После перезаливки 
вторая ошибка исчезла. Протестировал на 
предыдущих - проблем нет. Считаю проблемы 
исправленными.

Original comment by mamontov...@gmail.com on 11 Jun 2015 at 3:46

GoogleCodeExporter commented 9 years ago
enum+sequence analyzer
Правильный ответ: int t, *h , k[] ;
Мой вариант: int t k[] , *h , ;

Она почему-то предлагает мне перенести k[] 
хотя гораздо короче перенести t или вообще 
запятую...

Original comment by oasyc...@gmail.com on 18 Jun 2015 at 1:21

GoogleCodeExporter commented 9 years ago
enum+sequence analyzer
Правильный ответ: enum MyNiceEnum = { FirstField,  Padding = 1,  
SmallPart };
Мой вариант: enum MyNiceEnum = { Padding FirstField = 1,  ,  
SmallPart };
По мне достаточно перенести только FirstField , 
но вопрос почему-то предлагает пренести 
Padding и запятую.

Original comment by oasyc...@gmail.com on 18 Jun 2015 at 1:29

GoogleCodeExporter commented 9 years ago
Вадим - вот здесь точно ваша ошибка
enum+sequence analyzer
Правильный ответ: int t = a = b = c = k = 5 ;
Мой вариант: int t = a = b =5  = k = c  ;
Correct

Варианты неэквивалентны. ПОСЛЕДНИЙ 
элемент в такой цепочке переставлять 
НЕЛЬЗЯ. Во-первых, там может быть не l-value; 
во-вторых промежуточным переменным могут 
другие значения присвоиться...

Original comment by oasyc...@gmail.com on 18 Jun 2015 at 1:35

GoogleCodeExporter commented 9 years ago
* при реакции на эти баги прошу ссылаться на 
номер коммента с оригинальным сообщением о 
баге

Original comment by oasyc...@gmail.com on 18 Jun 2015 at 1:41

GoogleCodeExporter commented 9 years ago
Также нам надо разобраться с lexical error threshold - 
во всей документации он задавал 
максимально возможный процент ошибок; а у 
Маши в коде - с точностью до наоборот. У нас 
там приведена в чувство эта разница?

Original comment by oasyc...@gmail.com on 18 Jun 2015 at 5:19

GoogleCodeExporter commented 9 years ago
Насколько помню, да.

Original comment by mamontov...@gmail.com on 19 Jun 2015 at 7:05

GoogleCodeExporter commented 9 years ago
По поводу вопроса с перечислением. При 
таком ответе enum MyNiceEnum = { Padding FirstField = 1,  ,  
SmallPart }; Эталонный ответ enum MyNiceEnum = { FirstField,  
Padding = 1,  SmallPart }; дает наибольшую LCS по этому 
такие преложения 

Original comment by vad23k...@gmail.com on 19 Jun 2015 at 8:56

GoogleCodeExporter commented 9 years ago
enum+sequence analyzer
Правильный ответ: int t = a = b = c = k = 5 ;
Мой вариант: int t = a = b =5  = k = c  ;
Correct

Файл на сервере обновлен. Исправлено.

Original comment by vad23k...@gmail.com on 19 Jun 2015 at 9:48

GoogleCodeExporter commented 9 years ago
Не понимаю, что в 85. Я правильно понимаю, что 
LCS вычисляется неверно? Т.е. должно быть оно 
другим?

Original comment by mamontov...@gmail.com on 19 Jun 2015 at 11:21

GoogleCodeExporter commented 9 years ago
Нет, вычисляется все верно.

Original comment by vad23k...@gmail.com on 19 Jun 2015 at 11:27

GoogleCodeExporter commented 9 years ago
В 85 можете посчитать LCS между enum MyNiceEnum = { 
Padding FirstField = 1,  ,  SmallPart }; и двумя вариантами:
enum MyNiceEnum = { FirstField,  Padding = 1,  SmallPart };
enum MyNiceEnum = {  Padding = 1, FirstField,  SmallPart };

?
Они действительно одинаковые или что там? Я 
сейчас со студентами, сам могу посчитать 
позже...

Original comment by oasyc...@gmail.com on 19 Jun 2015 at 11:28

GoogleCodeExporter commented 9 years ago
в первом будет больше на 1 символ.

Original comment by vad23k...@gmail.com on 19 Jun 2015 at 11:30

GoogleCodeExporter commented 9 years ago
У меня так не получается. Вадим, 
опубликуйте уже тогда сами LCS в обоих 
случаях...

Original comment by oasyc...@gmail.com on 19 Jun 2015 at 5:57

GoogleCodeExporter commented 9 years ago
У меня в голове пока рисуется картина 
наоборот и LCS разные:

Original comment by mamontov...@gmail.com on 19 Jun 2015 at 7:50

Attachments:

GoogleCodeExporter commented 9 years ago
Согласен с Дмитрием.

Original comment by vad23k...@gmail.com on 20 Jun 2015 at 4:07

GoogleCodeExporter commented 9 years ago
Ошибка в п. 79 происходила из-за ошибки в 
парсере. Хотя я не считаю, что подобное 
объявление вообще правильно, т.к. мы не 
можем зарезервировать блок 
неопределенного размера на стеке, но я 
разрешил его в языке. После этого проблема 
исчезла. В ближайшее время разверну 
исправления.

Original comment by mamontov...@gmail.com on 20 Jun 2015 at 5:56

GoogleCodeExporter commented 9 years ago
А там парсер выдавал что это неправильно? 
Или просто молча строил неправильное 
дерево?
Выдать ошибку парсера учителю - нормальный 
вариант...

Так пустые скобки допустимы только при 
инициализации конечно, либо в параметрах 
функции. Вадим, усовершенствуйте вопрос 
сделав массив с цифрой в скобках и массив с 
пустыми скобками и инициализацией.

Original comment by oasyc...@gmail.com on 20 Jun 2015 at 6:01

GoogleCodeExporter commented 9 years ago
Ошибка в п. 80 происходит, потому что сам 
вопрос сформулирован неправильно. Не 
должно быть равенства после имени 
перечисления.

Original comment by mamontov...@gmail.com on 20 Jun 2015 at 6:08

GoogleCodeExporter commented 9 years ago
Ошибка в п. 81 не воспроизводится, судя по 
всему, обновление сработало хорошо.

Original comment by mamontov...@gmail.com on 20 Jun 2015 at 6:12

GoogleCodeExporter commented 9 years ago
вопросы дополнил.

Original comment by vad23k...@gmail.com on 20 Jun 2015 at 6:19

GoogleCodeExporter commented 9 years ago
Сделал простое сообщение об ошибке при 
синтаксическом разборе в форме.

Original comment by mamontov...@gmail.com on 20 Jun 2015 at 6:57

GoogleCodeExporter commented 9 years ago

Original comment by oasyc...@gmail.com on 3 Jul 2015 at 8:23