Граф: адаптироваться к изменению формата userinscription

Issue #129 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 129

Это необходимо для инструментов авторинга и корректной работы функции tohr. Особенно
касается символьных классов, но применимо и к другим узлам тоже.

Для начала неплохо сохранить исходные данные в специальном поле preg_node или preg_leaf.
Причем, если это чарсет, то его отдельные элементы: перечисления, диапазоны, POSIX-классы
и т.д. - в массиве.

Сделать надо побыстрее, чтобы 2-й курс на практике мог этим пользоваться.
Ваши предложения - кто возьмется? Там не очень большая доработка лексера и тестов на
него...

Reported by oasychev on 2012-07-10 08:27:05

Comments (14)

  1. Oleg Sychev reporter

    ``` Не лучше ли сохранять отдельными элементами массива диапазоны символов? Сейчас, насколько я понимаю, в userinscription все диапазоны и одиночные символы хранятся одной строкой. Что несколько неудобно для инструментов авторинга.... ```

    Reported by `oasychev` on 2012-07-19 15:44:42 - Status changed: `InProgress`

  2. Valeriy Streltsov

    ``` Поправил. ```

    Reported by `vostreltsov` on 2012-07-19 19:46:34 - Status changed: `Fixed`

  3. Oleg Sychev reporter

    ``` Нам бы по хорошему нужна еще функция, которая определяла бы печатаемую форму символа...

    Есть символы непечатные, пробел например или кодами может быть всякое задано, не факт что отображаемое на экране. Надо уметь разбираться, печатать ли сам символ, надпись "символ с кодом таким-то" или специфическое название (пробел, табуляция)... ```

    Reported by `oasychev` on 2012-07-25 11:48:40 - Status changed: `InProgress`

  4. Oleg Sychev reporter

    ``` После обсуждения со 2-м курсом было решено немножко улучшить формат userinscription

    Сделать в символьном классе его элементы объектами или массивами, чтобы они хранили две вещи: надпись пользователя и флажок. Тогда при отображении студенты могут выводить наборы символов и диапазоны ориентируясь на надпись, а последовательности типа \w , POSIX-классы и юникод-свойства - на флажок.

    Попытка выводить без этого приводит к дублированию кода - либо выделения диапазонов, либо парсинга последовательностей \w , POSIX-классов и юникод-свойств для их отображения названием. ```

    Reported by `oasychev` on 2012-07-30 13:50:50

  5. Valeriy Streltsov

    ``` Написал отдельный класс для этого, в нем есть поле data - собственно строка, и addinfo которое по умолчанию null. Для флагов чарсета оно устанавливается в true. 2й курс, вроде бы, доволен. ```

    Reported by `vostreltsov` on 2012-08-07 07:04:32 - Status changed: `Fixed`

  6. Oleg Sychev reporter

    ``` Мне не очень нравится addinfo для чарсета в истину. Или надо поле назвать так, чтобы было ясно что чарсет - или значение сделать константой что чарсет... А то потом запутаемся когда и что оно обозначает...

    P.S. Я вот думаю, когда мы имеем диапазон в чарсете через минус, не эффективнее ли его сразу сделать интервалом чем добавлять как перечисление всех символов? ```

    Reported by `oasychev` on 2012-08-07 10:33:26

  7. Valeriy Streltsov

    ``` Константы и type вместо addinfo сделал. Сразу диапазоны выделять-то эффективнее, но запутанно будет. Хоть новый подтип флага SUBTPE_RANGE вводить. ```

    Reported by `vostreltsov` on 2012-08-28 11:41:51

  8. Oleg Sychev reporter

    ``` Issue 45 has been merged into this issue. ```

    Reported by `oasychev` on 2012-09-23 21:36:06

  9. Oleg Sychev reporter
    userinscription теперь всегда массив; графу надо к этому адаптироваться - и побыстрее,
    а то нарушена работоспособность...
    

    Reported by oasychev on 2013-09-23 20:47:01 - Status changed: InProgress

  10. Former user Account Deleted
    Исправлена работа графа.
    

    Reported by ZluMYO on 2013-09-25 17:07:55

  11. Oleg Sychev reporter
    Валерий, есть претензии к работе графа сейчас? Или done?
    

    Reported by oasychev on 2013-10-01 19:17:54 - Status changed: Fixed

  12. Log in to comment