All streams
Search
Write a publication
Pull to refresh
1
0
Константин @Comdiv

Программист

Send message
Двусторонние трансформации — большая редкость.
Не для изоморфных представлений.
Можно пример на чём ломается?
Подозреваю, что Вы уже нашли на чём, так как теперь работает сносно, а в первый раз ломалось почти на всём
А где же удобный переключатель? :)

Попробовал, но он ломается даже в зависимости от переводов строк. Толком ничего не могу получить. В лучшем случае выдаёт XML же, но испорченный

И «undexpected» — это ошибка в выводе ошибок :)

Хотелось бы видеть XML ⇒ xml.tree. Предвидится такое?
Так Вы ответите на вопрос?

Какой смысл в Вашем рефакторинге, который не решает задач рефакторинга? Как в анекдоте — зато дёшево ж?

Вы говорите, что терминологический спор Вас не интересует, но, по факту, этот диалог в значительной степени вокруг этого и строится. Типичный парсер для многих языков требует для своей работы анализа объявлений и нет никакого смысла выкидывать эту часть для того, чтобы сделать это потом в отдельном семантическом анализаторе.
Если нет, то и говорить по существу не о чем. Для сравнения подходов Вы сослались на то, для чего у Вас нет аналога
Это и похоже на несогласие с мнением.

И судя по средней заплюсованности его статей, включая ту, на которую ссылался mwizard — нет, не достал :)
Если Вы, как и я, считаете, что он не прав, это ещё не повод сливать карму. В споре рождается истина.
Парсер устанавливает связь использования объявления и его декларации. Пожалуйста, не увиливайте от вопроса, прикрываясь невозможностью в случаях, о которых никто не спрашивал
И это не то
Не похоже на правду, тем более что Вы сами написали
напишем полную формальную грамматику
Вы или придумали свои определения для известных терминов, либо меняете показания на лету
Тогда что означает
И таким образом вы можете легко рефакторить любые языки, основанные на tree формате, без поиска для каждого языка отдельного парсера
если отдельный парсер такую возможность даёт?
Потому что «подмножество», а не «надмножество»
Не вижу связи

Такую проверку для AST
Насколько? У Вас есть полный парсер для SQL-подобного языка, но выраженного через tree?
Почему Вы решили, что я путаю? (Р)БНФ у Вас задаёт вовсе не лексический уровень, а синтаксический, но неправильный
Почему уменьшит?
Tree никак не решает проблему проверки корректности составленной конструкции и следовательно разбор выражения делать всё равно придётся и его нельзя сводить к «дерево уже построено»
Не пойму, как это решает задачу рефакторинга подобного кода, но выраженного через Tree:

type Google = { auth string }
a: Google
a.auth = "Bam"

Текстовый формат это тоже не более, чем список строк и не более, чем список символов, и что?
Не обязательно выражать БНФ абсолютно точно, но это всё равно будет лучше, чем выражать его так ложно. Можно и расширить БНФ специальный понятием, позволяющим выразить всё как надо.
А в чём? В чём проблема этой статьи, за что стоило бы сливать карму?
В такой форме запрос распарсить — плёвое дело, в отличие от настоящего SQL.
А если ненастоящий, а только то подмножество, что достаточно для разбора таких запросов? Не подменяете ли Вы понятия?
Почему из-за несогласия с мнением человека люди считают приемлемым использовать механизм, изначально созданный для избавления от токсичности, а не для подавления инакомыслия? И почему нравится этим бравировать?
И таким образом вы можете легко рефакторить любые языки, основанные на tree формате, без поиска для каждого языка отдельного парсера и разбирательства с тем, как у него происходит работа с AST.
Есть программа на неком языке, в которой указанный в примере auth не только объявлен, но и упоминается в некотором контексте, а, возможно, что он ещё и не уникален по имени, но уникален по контексту. Каким образом представленный механизм позволит легко это изменить?

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity