Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse如何感知诸如中断循环结束、关键字等内容。?_Java_Eclipse - Fatal编程技术网

Java eclipse如何感知诸如中断循环结束、关键字等内容。?

Java eclipse如何感知诸如中断循环结束、关键字等内容。?,java,eclipse,Java,Eclipse,我试图在网上搜索这个问题,但找不到正确的答案。这是我的问题 我注意到当我们选择(突出显示)break时,eclipse编辑器指向循环 有谁能帮我知道,从技术上讲,它是如何知道循环结束的? 例如 还有一些事情,比如我们突出显示某个变量,它突出显示所有提到的相同的内容,同样地,当我们编写代码时,它会改变关键字的颜色等等 请看,我想知道它在幕后技术上是如何做这些事情的。基本上eclipse会在前面搜索相应的关键字,如for,while或switch,然后它会计算括号,以知道括号将关闭在哪里 突出显示

我试图在网上搜索这个问题,但找不到正确的答案。这是我的问题

我注意到当我们选择(突出显示)
break时,eclipse编辑器指向循环
有谁能帮我知道,从技术上讲,它是如何知道循环结束的?
例如

还有一些事情,比如我们突出显示某个变量,它突出显示所有提到的相同的内容,同样地,当我们编写代码时,它会改变关键字的颜色等等


请看,我想知道它在幕后技术上是如何做这些事情的。

基本上eclipse会在前面搜索相应的关键字,如
for
while
switch
,然后它会计算括号,以知道括号将关闭在哪里

突出显示变量,特别是在java中,因为它区分大小写,只需搜索相同的名称


这只是一个基本的方法,我认为在幕后会有一个更复杂的方法,基本上eclipse会在前面搜索一个相应的关键字,比如
for
while
switch
,然后它会计算括号,从那时起知道括号将在哪里关闭

突出显示变量,特别是在java中,因为它区分大小写,只需搜索相同的名称

这只是一种基本的方法,我认为在幕后会有一种更复杂的方法,EclipseJDT(Java开发工具)是一个Eclipse项目,它提供了许多插件来支持任何Java应用程序的开发。JDT核心组件提供Java文档模型,该模型本身就是一个用于读取/操作结构化Java源文档的API

Java文档模型基于AST(抽象语法树),它是从源代码构建的。此AST包含用于表示字段、变量、语句(break是一个语句)等元素的节点,还包含用于表示对其他节点的引用的更多节点。如果声明变量并在其他代码位置使用该变量,则这些用法称为引用。对字段的引用和对同名变量的引用实际上是其他引用

因此,基本上,Eclipse通过AST来查找所需上下文中的所有相关引用。

EclipseJDT(Java开发工具)是Eclipse项目,它提供了许多插件来支持任何Java应用程序的开发。JDT核心组件提供Java文档模型,该模型本身就是一个用于读取/操作结构化Java源文档的API

Java文档模型基于AST(抽象语法树),它是从源代码构建的。此AST包含用于表示字段、变量、语句(break是一个语句)等元素的节点,还包含用于表示对其他节点的引用的更多节点。如果声明变量并在其他代码位置使用该变量,则这些用法称为引用。对字段的引用和对同名变量的引用实际上是其他引用


因此,基本上,Eclipse通过AST来查找所需上下文中的所有相关引用。

EclipseJDT包含自己的Java解析器,它在您编辑文件时更新AST。如果您对Eclipse的实现方式感兴趣,可以使用Eclipse源代码。此外,各种Eclipse插件开发人员指南中都有关于如何为自己的语言制作编辑器的信息。EclipseJDT包含自己的Java解析器,可以在编辑文件时更新AST。如果您对Eclipse的实现方式感兴趣,可以使用Eclipse源代码。此外,各种Eclipse插件开发人员指南中都有关于如何为自己的语言制作编辑器的信息。