Редактор кода с intellisense для ANTLR4

Ищите образец для построения редактора кода на основе грамматики ANTLR4 с помощью intellisense. SharpDevelop предоставляет все функции редактора кода, однако, если нам нужно предоставить сведения о intellisense и дополнении кода, нам нужно написать собственный синтаксический анализатор.

Нужен пример, где ANTLR4, SharpDevelop используется для создания редактора кода для пользовательского языка.

Благодарю.

2 ответа

Решение

Я мог получить ожидаемые токены из ANTLR4, используя API GetExpectedTokensWithinRule в Listener и преобразовав их в токены.

псевдокод выглядит так

public class MyGrammarListener : MyGrammarBaseListener
{
       public MyGrammarListener(MyGrammarParser parser)
        {
             this.Parser = parser;
        }

        public override void EnterXXXXX(XXXXX_Context context)
        {
            IntervalSet set = Parser.GetExpectedTokensWithinCurrentRule();
            base.EnterXXXXX(context);
            foreach (int token in set.ToIntegerList())
            {
               // Returns the expected tokens.
               string data = Parser.Vocabulary.GetLiteralName(token);
            }
        }

}

Я использовал Jide CodeEditor с antlr4, похоже, он работает нормально, но потребовалось некоторое время, чтобы собрать его. Я генерирую ошибки и ключевые слова для выделения из парсера. Я использую слушателей для разбора и т. Д. И посетителя для исполнения языка. Не знаком с SharpDevelop

Другие вопросы по тегам