Планирам да напиша компилатор C# 3.0 на C#. Къде мога да получа граматиката за генериране на анализатор?
За предпочитане такъв, който работи с ANTLR v3 без модификация.
Планирам да напиша компилатор C# 3.0 на C#. Къде мога да получа граматиката за генериране на анализатор?
За предпочитане такъв, който работи с ANTLR v3 без модификация.
Разгледайте Спецификация на езика C#. В главаБ. Граматикаще намерите граматиката.
Попаднах на ANTLR C# Grammar на CodePlex. Това е сравнително нов проект и използва ANTLR 3.2. Той казва, че поддържа C# 4.0 и е лицензиран под Eclipse Public License (EPL).
Поиграх си малко с него. Той има куп тестови файлове, съдържащи изрази. Поддържа ламбда, опасен контекст, ... както естествено бихте очаквали. Той анализира C# файл и ви дава абстрактно синтактично дърво. Можете да правите каквото искате с него.
Търсите ли нещо като това или това?
Моля, вижте и въпроса за C# ANLTR граматика.
(a**
и да не знаете дали това в крайна сметка ще бъде израз като (a**b)
(т.е. умножете a
по резултата от дереференция на b
), или ламбда израз (a** b) =>
, докато не ударите =>
. Тъй като няма ограничение за количеството ненасочване (указател към указател към ...), изглежда, че за мен е LL(). Но тъй като ANTLR3 поддържа LL(*) за включване, това не е проблем.
- person Pavel Minaev; 13.10.2009