|
|
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
Програмёрна выходе получим: Код: php 1. Вот я прошел пять шагов рекурсии вручную. При этом месиво получилось такое, что вручную не то, что написать такое, а даже "вручную прочитать" такое по-моему нереально. Просто если получаемый формат становится непригодным для ручной обработки, тогда и нет смысла заморачиваться с эскипированием, потому что для машинной обработки можно мутить любую херь, все равно никто из людей читать не будет. И ещё я попытался её разобрать вашим же алгоритмом. Он рекурсивно не стал ничего разбирать, а обработал только один шаг рекурсии. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Вывод работы (разрывы в строчках для форума я поставил сам) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. PS. Кстати, в HTML используется экипирование с операторами Код: html 1. Будет заменено на Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 11:17 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
LumixПрограмёрна выходе получим: Код: php 1. Вот я прошел пять шагов рекурсии вручную. При этом месиво получилось такое, что вручную не то, что написать такое, а даже "вручную прочитать" такое по-моему нереально. Просто если получаемый формат становится непригодным для ручной обработки, тогда и нет смысла заморачиваться с эскипированием, потому что для машинной обработки можно мутить любую херь, все равно никто из людей читать не будет. И ещё я попытался её разобрать вашим же алгоритмом. Он рекурсивно не стал ничего разбирать, а обработал только один шаг рекурсии. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Вывод работы (разрывы в строчках для форума я поставил сам) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Ну так всё правильно вывел. Что написали, то и вывело :). Мы для того и экранировали символы, что бы то, что является строковым элементом не воспринималось как новый уровень или как несколько элементов (при наличии запятой). Вы что хотите сделать? Если покажите в виде массива, что хотите загнать в строку (и хотите получить обратно), а на реальном примере Вам покажу как работает данный алгоритм. Тут просто кто-то кого-то не понял (или Вы меня, или как говорил, я задачу, хотя по Вашим рассуждениям думаю что понял правильно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 11:33 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
LumixЛенточная сериализация сетей только с помощью гуманоидных символов и безрекурсионный алгоритм распарсивания этой ленты.Нифига не понял, чем не устроили четыре спецсимвола: начало группы, разделитель, конец группы и экранирующий символ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 18:59 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
Вернусь в начало. Дан список Код: sql 1. Представим его как S-выражение с небольшими изменениями. Без конструктора list и квоты. Код: sql 1. Пришло b которое по сути тоже список (1,2) Вставляем его так Код: sql 1. Если пришло b которое является не списком а строковым литералом то так уж и быть оставим его строкой. Код: sql 1. Ситуацию когда внутри СТРОКИ b должна сидеть другая СТРОКА с - выкинем нахер. Таких постановок не бывает. Строка - это суть - атом в контексте задачи разработки. И в нее НЕ предусмотрено впихивать или инкапсулировать другие такие-же строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 19:15 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovLumixЛенточная сериализация сетей только с помощью гуманоидных символов и безрекурсионный алгоритм распарсивания этой ленты.Нифига не понял, чем не устроили четыре спецсимвола: начало группы, разделитель, конец группы и экранирующий символ? Не устроило тем, что вот этот результат плохо поддается ручной обработке, а это всего 5 уровней вложенности, а что будет если из будет 100. Код: plaintext 1. 2. 3. 4. 5. Если использовать ручной текстовый набор, то предполагается, что с этим будет работать человек. А если у нас получается формат, который человека убивает, то какой смысл тогда работать с эскипированием. На данный момент мы прорабатываем вариант создания инструмента, который будет удобно помогать человеку проставлять размер пакета. Тогда и вручную можно будет работать и понятно будет читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 20:46 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
maytonЕсли пришло b которое является не списком а строковым литералом то так уж и быть оставим его строкой. Код: sql 1. Ситуацию когда внутри СТРОКИ b должна сидеть другая СТРОКА с - выкинем нахер. Таких постановок не бывает. Строка - это суть - атом в контексте задачи разработки. И в нее НЕ предусмотрено впихивать или инкапсулировать другие такие-же строки. В строку можно вставлять другую строку, более, того ваше же решение его и позволяет делать, достаточно просто эскипировать символ (флаг) контектста! То есть я только сейчас понял суперсуть вашей идеи: открывающая кавычка - это начало нового контекста, которая отключает значение символов (флагов запятая и скобки), в новом "строковом контексте" они являются просто литералами. Закрывающая кавычка выключает строковый контекст и символы запятая и скобки опять начинают работать как флаги. Чтобы кавычка строки случайно не отключила "строковый контекст" мы её эскипируем. В принципе вы это и предлагали на примере CSV, но мне что-то мозгов не хватило сразу прикрутить это решение к сеткам. Я думал это канает только для таблиц. А как только у меня голове осенило по поводу кавычки включают и отключают новый семантический контекст, то до меня все сразу дошло как эту схему перенести на сетки. Сейчас голова уже не варит, завтра попробую эту схему на ленточную основу положить и прикрутить алгоритм разбора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 20:59 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
на уставшую голову пока ложится только двухпроходный алгоритм 1 проход) вырезаем все строки и складываем их в таблицу, оставляя вместо строк номера строк в таблице [номер строки, строка, адрес вставки строки] 2 проход) пилим оставшуюся материю в цикле и складываем в таблицу, беря строку по адресу из таблицы первого прохода [номер узла, строка, номера родителей, номера детей] Код: plaintext 1. В принципе должно получиться очень круто. Завтра опробуем. mayton, пока предварительно огромное спасибо за разжевывание своей суперской идеи. И сорри, что с первого раза не дошло. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 21:06 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
Да незачто. Я собственно идею только щас изложил. Мой первый пост - то просто цитата с википедии. С пояснением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2013, 21:32 |
|
||
|
Обратный эскипированный разбор без спец.символов
|
|||
|---|---|---|---|
|
#18+
LumixНе устроило тем, что вот этот результат плохо поддается ручной обработке, а это всего 5 уровней вложенности, а что будет если из будет 100Тоже мне, попугай Кеша: "А если дождь во время усушки?!" В качестве специальных используются относительно редкоиспользуемые символы. Автор TeX-а выбрал { и } для ограничителей группы. Что вам мешает сделать тоже самое? Есть вариант с двойной и одинарной кавычкой, которые выбираются так, чтобы внутри не было окаймляющего символа. Есть "Объединение"'БезПробела' (или 'Объединение' || "БезПробела"), есть 'объединение' "с пробелом" ( REXX ) - прекрасно читается после минимальной практики и легко пишется хоть руками, хоть автоматом. Есть классический сишный вариант: "Строка с \" кавычкой внутри". Точно так же легко читается и пишется. Есть SMTP-экранирование - данные начинаются с новой строки после команды DATA. Заканчиваются строкой из одной точки. Если в тексте есть строка из одной точки - она удваивается. Если при чтении данных мы видим строку, которая начинается с точки и содержит более одного символа - эта точка убирается. Есть, в конце-концов MIME (пять RFC c 2045 по 2049 ). Полезно изучить text/plain Format=Flowed - позволяет, например, складывать длинные строки сохраняя цитирование. P.S. Прям как в анекдоте: "Нет вы посмотрите на этого поца - всю Одессу удовлетворяет, а его, видите-ли, нет!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2013, 19:21 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38346774&tid=1341730]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 410ms |

| 0 / 0 |
