Редактор кода с 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