Вывод лексических ошибок в форме редактирования

Issue #175 resolved
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 175

При тестировании выяснились баги - похоже, что в некоторых случаях позиции лексем заполняются
некорректно.

Так если 'abc' написать в самом начале строки, оно не выделяется. Если в конце написано
"abc тоже не выделяется. Проверить заполнение позиций, особенно на крайних случаях
(первая и последняя лексемы) и при возникновении ошибок лексера!

Также я бы в сообщение о незакрытой кавычке ввел саму кавычку - одинарная она или двойная.
И заменил все прямые вызовы mb_xx в блоке на статические функции textlib (см. lib/textlib.class.php)
- Moodle может работать в отсутствие MBString...

Reported by oasychev on 2013-01-25 06:21:02

Comments (22)

  1. Former user Account Deleted
    Можно подробнее про вторую часть - что значит "не выделяется"? Не попадает в список
    разобранных лексем? Или просто неправильно считается позиция?
    
    Насчет второго - я так понимаю, имеется в виду работа парсера и его тестов?
    

    Reported by mamontov.dp on 2013-01-25 06:55:58

  2. Oleg Sychev reporter
    Не выделяется - значит жирностью не выделяется в форме в сообщении об ошибке, хотя код
    соответствующий написан в классе формы. Насколько я делал var_dump там кривые позиции
    токенов...
    
    В этом issue речь идет о существующих predefined лексерах и багах, которые мешают сделать
    релиз, парсер обсуждается отдельно....
    

    Reported by oasychev on 2013-01-25 09:14:59

  3. Oleg Sychev reporter
    Issue 156 has been merged into this issue.
    

    Reported by oasychev on 2013-01-27 15:29:11

  4. Oleg Sychev reporter
    Ну когда я вас научу не экономить на тестах? Кавычки вы отладили, а мультисимвольные
    литералы - нет, хотя я же вам выше писал 'abc' - полюбуйтесь на colend в вытолкнутых
    мной тестах. И его эффект на форму.
    

    Reported by oasychev on 2013-01-30 08:36:04

  5. Oleg Sychev reporter
    Обычные ошибки выводятся нормально, но вот при вводе русской буквы в язык Си оно подвесило
    чуть не весь сайт, и сама страница повисла (да еще держала открытыми SQL-соединения)....
    

    Reported by oasychev on 2013-02-05 12:09:12

  6. Former user Account Deleted
    Очень странно, падает сам класс языка на yy_advance() с undefined offset. 
    

    Reported by mamontov.dp on 2013-02-05 13:15:41

  7. Former user Account Deleted
    Уточнил (PHP неверно указал место ошибки). Падает где-то на выборе нового состояния
    DFA. Такое ощущение, что %unicode отчего-то не сработал.
    

    Reported by mamontov.dp on 2013-02-05 13:22:04

  8. Former user Account Deleted
    Оказалось, что для символа U+0430 реально не генерируются переходы, хотя я указал %unicode
    в директивах. Все остальное сработало, а вот это - нет
    

    Reported by mamontov.dp on 2013-02-05 14:27:13

  9. Oleg Sychev reporter
    У меня на русской букве "ч" была проблема... А это 0447 
    

    Reported by oasychev on 2013-02-05 15:21:30

  10. Former user Account Deleted
    Это уже не так важно. Все-таки оказалось, что в файле присутствовало две директивы.
    То ли при merge залезла, то ли еще каким-то образом. Ну и еще пара проблем. Сейчас
    протестировал - заработало, правда картинка ответа строится некорректно, что-то с символами
    происходит. Сейчас буду исправлять.
    

    Reported by mamontov.dp on 2013-02-05 15:25:12

  11. Oleg Sychev reporter
    Вряд-ли при мерже - эти файлы я не трогал, их мержить не с кем...
    

    Reported by oasychev on 2013-02-05 15:28:18

  12. Former user Account Deleted
    В любом случае, это уже не важно. Сейчас скорее надо найти какой-нибудь хороший свободный
    шрифт TTF, ибо imagetext о существовании других алфавитов кроме английского даже не
    подозревает.
    

    Reported by mamontov.dp on 2013-02-05 15:29:57

  13. Former user Account Deleted
    Рефакторинг для работы с TTF шрифтами вытолкнут, пока будет использоваться открытый
    шрифт из Google Web Fonts. Без  него нельзя - imagestring никакого алфавита, кроме
    английского не поддерживает.
    

    Reported by mamontov.dp on 2013-02-05 17:00:05

  14. Oleg Sychev reporter
    Вытолкнул исправление очередной ошибки в $a-> в lang файлах....
    Остальное вроде в форме редактирования работает...
    

    Reported by oasychev on 2013-02-21 09:55:09 - Status changed: Verified

  15. Oleg Sychev reporter

    В форме редактирования работает, а вот студенту если он сделал такое не выдается - выдается только отсутствующие/лишние лексемы. Как думаете, это правильно или нет?

  16. Dmitry Mamontov

    А вы как считаете? По идее, это все равно превращается в синтаксическую ошибку. Если критично - исправим.

  17. Oleg Sychev reporter

    Ну студент то должен получить сообщение об ошибке синтаксиса (или лексера), а не кривой вариант с лексемами. А сейчас он получает нечто странное, что не так легко интерпретировать...

  18. Dmitry Mamontov

    Ок, попробую реализовать. Но предлагаю всё же отложить до пост-релиза, не уверен, что смогу правильно и быстро реализовать.

  19. Dmitry Mamontov

    Предлагаю в связи с релизом закрыть - изменение сделано.

  20. Log in to comment