Есть концепция "модель"-"вид". Цепочка - это модель, а то что координаты у символов есть, то это "видимость", их всегда можно пересчитать имея позицию в цепочке.
Ну будем хранить дополнительно к позиции в символах пару <строка, столбец>. С точки зрения компиляции ничего же не поменяется - там как цепочка обрабатывалась, так и продолжит.
Вот если бы автоматы заменить с последовательных на "клеточные", как в игре "жизнь" (чтобы они при компиляции учитывали символы не только "до" и "после", но и "сверху"/"снизу" и "по-диагонали"), тогда разница была бы существенной.
И если уж текст это плоскость, то глиф - это фрагмент плоскости, и связи с другими символами (например "по направлению письма"). Тогда надо будет тексты программ готовить в .pdf или в .svg, и там можно будет писать под наклоном, например по диагонали листа.
Обобщённый парсер должен тогда не с цепочкой работать, с планарным графом.
Идея, вообще фанатская, например элементы синтаксиса "обвести замкнутой линией", "соединить стрелкой", я уж молчу про "подчеркнуть", "добавить ударение".
Отредактировано Лис (2018-05-06 21:16:10)