用于ANTLR4的带intellisense的代码编辑器

用于ANTLR4的带intellisense的代码编辑器,antlr,antlr4,sharpdevelop,code-editor,nrefactory,Antlr,Antlr4,Sharpdevelop,Code Editor,Nrefactory,正在寻找使用intellisense构建基于ANTLR4语法的代码编辑器的示例。SharpDevelop提供了所有代码编辑器功能,但是如果我们需要提供intellisense和代码完成细节,那么我们需要编写自己的解析器 需要示例,其中ANTLR4、SharpDevelop用于构建自定义语言的代码编辑器 谢谢。我已经将Jide CodeEditor与antlr4一起使用,它似乎工作正常,但花了一些时间来整合。我从解析器生成用于突出显示的错误和关键字。我使用侦听器进行解析等,并使用访问者执行语言。不

正在寻找使用intellisense构建基于ANTLR4语法的代码编辑器的示例。SharpDevelop提供了所有代码编辑器功能,但是如果我们需要提供intellisense和代码完成细节,那么我们需要编写自己的解析器

需要示例,其中ANTLR4、SharpDevelop用于构建自定义语言的代码编辑器


谢谢。

我已经将Jide CodeEditor与antlr4一起使用,它似乎工作正常,但花了一些时间来整合。我从解析器生成用于突出显示的错误和关键字。我使用侦听器进行解析等,并使用访问者执行语言。不熟悉SharpDevelop

我可以使用侦听器中的GetExpectedTokensWithinRule API从ANTLR4获取预期的令牌,并将其转换为令牌

伪代码如下所示

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);
            }
        }

}

ps antlr4支持Java,但对其他语言不太确定。在我的工作中,我也从antlr侦听器生成代码折叠。谢谢您的快速回答。我正在考虑如何使用ANTLR实现CodeCompletion。