【发布时间】:2012-11-05 06:54:37
【问题描述】:
我正在开发 Java 源代码解析器,遵循 lexical 和 syntactic 规范。
不过,我被困在注释上;相关规则是:
Annotation:
@ QualifiedIdentifier [ ( [AnnotationElement] ) ]
AnnotationTypeDeclaration:
@ interface Identifier AnnotationTypeBody
但我在词汇规范中的任何地方都没有看到@ 符号。标记@ 的正确规则是什么,或者我在哪里可以找到这样的规则?
我意识到我可以很容易地为此添加一个令牌定义,它甚至可能会起作用 --- 有时。但如果可能的话,我宁愿按照规范正确地做。
【问题讨论】:
-
有趣!这些规则意味着
@ SomeAnnotation public @ interface Foo { }是有效的,并且实际上编译器似乎并没有抱怨添加的空格。所以看起来@被视为一个单独的标记(即使它通常被格式化为在它和下一个标记之间没有空格)。
标签: java parsing grammar token language-details