Как создать форматирующий и отступ код в C # - PullRequest
0 голосов
/ 26 сентября 2010

Как начать с создания программы для форматирования C и их производного кода в формате, отформатированном в стиле .net, чтобы при вводе любой программы.Эта программа может распознавать и переформатировать, правильно добавляя отступы и другие элементы.

1 Ответ

1 голос
/ 26 сентября 2010

Это чрезвычайно сложная задача, потому что языки программирования имеют сложную грамматику.Если вы хотите отформатировать не только C #, но и C и C ++, это даже более сложно - возможно, невозможно, потому что может быть синтаксис в одном языке, который недопустим (или означает что-то другое) в другом.

Если вы хотите сделать это только для C #, вам нужен синтаксический анализатор C #.Доступно несколько свободно распространяемых синтаксических анализаторов C #:

Когда у вас будет дерево разбора, вам придется пройтись подерево и постепенно выводить его правильно отформатирован.Некоторые синтаксические анализаторы C # могут уже иметь эту функцию.

Относительно двусмысленности грамматики: рассмотрим следующую строку кода:

Method(a<b,c>(d+1));

В C # правильное форматирование будет:

Method(a<b, c>(d + 1));  // “a<T1, T2>” is generic; Method has one argument

В C и C ++ я считаю, что правильное форматирование будет:

Method(a < b, c > (d + 1));  // Method has two arguments with binary operators
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...