2013-07-28 2 views
2

Какой стиль многострочных комментариев используется в Dart?Какой стиль многострочных комментариев используется на Dart?

Я знаю C-style многострочных комментариев. Этот стиль не позволяет многострочные комментарии внутри многострочных комментариев (nested comments).

Это 'C' style комментарии заканчиваются на первом */, встречающемся в многострочных комментариях.

Примеры:

законн пользов-ли C-стиль комментарий:

/* 
*/ 

Не действует C-стиль комментарий:

/* 
/**/ 
*/ 

В Dart оба стиль действителен, но, как я знаю, что в самом популярном Языки использовали только комментарии C-style.

Вот мой вопрос.

Откуда этот стиль на языке дартов? From a historical point of view and practical.

P.S.

Я пишу парсер PEG для Дарта и был удивлен, когда нашел его в грамматике. Это правило не разрешает автору распознавания в моем терминале multilne comment, поскольку он рекурсивно называет себя.

MULTI_LINE_COMMENT <- '/*' (MULTI_LINE_COMMENT/!'*/' .)* '*/' ; 

Кроме того, как этот многострочный комментарий может быть описана в Bison/Flex терминологии?

Этот вопрос приходит, потому что в терминологии парсера PEG комментарии являются частью white spaces. И в большинстве случаев white spaces можно считать терминалами, потому что они не изменяют поведение (они не ветвятся и не рекурсивны по человеческой логике, т.е. производятся непосредственно в токенах с помощью лексических сканеров).

Я знаю, что в PEG анализаторах там нет разделения на терминалах и не-терминалах, но для лучшей ошибки отчетности некоторых эври- стического анализа правил грамматики никогда не препятствует

+0

Хорошо. Я нашел решение, как распознать его как «терминал» в парсере, но главный вопрос (о стиле) все еще остается. – mezoni

ответ

2

От откуда этот стиля в Dart языке?

Я считаю, что они добавили это, потому что это облегчает комментирование больших блоков кода, которые могут уже содержать комментарии блока. Большинство других глагольных конструкций гнездятся, поэтому всегда казалось странным, что комментарии в блоке в стиле C сделали не для меня.

Я думаю, что C первоначально работал так, потому что он упростил лекс на старых PDP-11 с почти без памяти. У нас больше нет этого ограничения, поэтому мы можем иметь более удобный для пользователя синтаксис комментариев.

Смежные вопросы