Re: зачем SyntaxTrivia входит в состав токенов?
От: Mystic Artifact  
Дата: 17.07.17 10:44
Оценка: +1
Здравствуйте, Arsen.Shnurkov, Вы писали:

AS>Почему было принято именно такое проектное решение? Как это можно использовать? В каких языках программирования такое применяется и несёт смысловую нагрузку?

В C# — xml doc имеет смысловую нагрузку. Leading trivia "кушает" всё, а вот trailing — только до конца строки.

AS>Для меня все пробелы одинаковы, и они могли бы разбираться на отдельном этапе в отдельные узлы-списки в синтаксическом дереве.

Какой ещё отдельный этап? Нам дали текст со всем этим добром, вдобавок оно ж и делает ровно то что ты говоришь — узел будет иметь набор leading и trailing trivia.

AS>Чего я не понимаю?

Вообще просто таков дизайн, который пытается угодить в том числе и редакторам, для которых эти тривиа — важные элементы. + в тривию попадают не только пробелы, комментарии но и директивы препроцессора, если мне неизменяет память. Плюс они достаточно эффективно их хранят и переиспользуют.

PS: Токены это узлы дерева которые не могут иметь детей. Тривиа вообще отлельным лесом по момоему стоит. Но в теле парсера токенизация входного потока — это не совсем тоже самое, там вечно хаки вокруг них.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.