xtext 编写和解释器

xtext writing and interpreter

目前我正在为我的 DSL 编写解释器,它是从 eclipse 应用程序中的菜单启动的。解释器读取活动文件:

IXtextDocument document = ((XtextEditor) activeEditor).getDocument().get(); (return 一个字符串)

然后我用扫描仪逐行读取活动文件,但真的很难,读取所有行并为执行它们的每一种可能性进行切换和判断。

有没有办法在我读取 eclipse 应用程序中的活动文件时使用我的语法信息(知道行是什么:声明、函数、...)? ,或者有没有更好的方法来实现这个而不像普通字符串那样读取文件?

IXtextDocument 实现了 IReadAccess<XtextResource> 接口,所以你应该可以调用 editor.document.readOnly(...),就像这里:https://github.com/eclipse/xtext-eclipse/blob/01ffa30f58160e4c13cb193da3d1e21a40e0d508/org.eclipse.xtext.ui.tests/tests/org/eclipse/xtext/ui/tests/editor/SimpleEditorTest.java#L64