0

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

需要使用 ANTLR4、SharpDevelop 来构建自定义语言的代码编辑器的示例。

谢谢。

4

2 回答 2

2

我可以使用侦听器中的 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);
            }
        }

}

于 2015-07-29T10:36:41.483 回答
0

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

于 2015-07-25T23:55:28.793 回答