java - java中导入和方法调用的词法分析

标签 java tokenize conceptual lexical

import语句和方法调用如何在java的词法分析中标记化。例如:

导入java.util.Scanner

这是否被视为importjavautilScanner(4个 token )或导入java.util.Scanner(2个 token )

以同样的思路,在:

Scanner input = new Scanner(System.in);
int x = input.nextInt(); 

input.nextInt() 视为 inputnextInt() (2 个标记)或 input.nextInt() (1 个 token )

最佳答案

词法分析在Chapter 3 of the JLS中描述。 .

这意味着在您的第一个示例中,它将被标记为

keyword: import 
whitespace 
identifier: java 
seperator: . 
identifier: util 
seperator: .
identifier: Scanner
seperator: ;

所以既不是 2 也不是 4,而是 8 个标记(因为根据 JLS,空格和分隔符都是标记)。

类似地,input.nextInt(); 是 6 个 token ,因为 () 各为一个 token (参见 JLS § 3.11 )。

关于java - java中导入和方法调用的词法分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975502/

相关文章:

javascript - 用户和管理界面应该在代码中分开(单独的类)还是应该通过 css 隐藏不需要的功能

java - 点加 (".+") json 模式中的符号;这是什么意思?

java - 将 forEachOrdered 与并行流一起使用的好处

Java Applet SOAPMessage 导致 "SAAJ0540: Error during saving a multipart message"

java - Java SHA1 与 JavaScript SHA1 的不同

c++ - 为什么我不能通过别名来定义前向声明的类?

我可以在结构中存储通用数组吗?

c - 从字符串中获取标记(stdin)

xml - Xslt:如何拆分字符串并将类添加到两个单词

java - java中字母表的字符串分词器