彩票走势图

Java开发工具IntelliJ IDEA使用教程:定义语法和解析器

原创|使用教程|编辑:郝浩|2013-10-09 15:06:51.000|阅读 1065 次

概述:使用Intellij IDEA的时候,用户可以根据自身需求定义语法和解析器,下面我们就对这一过程进行详细的解释和说明。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

使用Intellij IDEA的时候,用户可以根据自身需求定义语法和解析器,下面我们就对这一过程进行详细的解释和说明。

1 复制解析器工具类

将语法插件需要的GeneratedParserUtilBase类复制到你的源文件中。

2 定义单点登录类型

package com.simpleplugin.psi;
 
import com.intellij.psi.tree.IElementType;
import com.simpleplugin.SimpleLanguage;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
 
public class SimpleTokenType extends IElementType {
    public SimpleTokenType(@NotNull @NonNls String debugName) {
        super(debugName, SimpleLanguage.INSTANCE);
    }
 
    @Override
    public String toString() {
        return "SimpleTokenType." + super.toString();
    }
}

3 定义元素类型

 

package com.simpleplugin.psi;
 
import com.intellij.psi.tree.IElementType;
import com.simpleplugin.SimpleLanguage;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
 
public class SimpleElementType extends IElementType {
    public SimpleElementType(@NotNull @NonNls String debugName) {
        super(debugName, SimpleLanguage.INSTANCE);
    }
}

4 定义语法

以/com/simpleplugin/Simple.bnf文件定义属性语言语法。

 

{
  parserClass="com.simpleplugin.parser.SimpleParser"
  stubParserClass="com.simpleplugin.parser.GeneratedParserUtilBase"
 
  extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
 
  psiClassPrefix="Simple"
  psiImplClassSuffix="Impl"
  psiPackage="com.simpleplugin.psi"
  psiImplPackage="com.simpleplugin.psi.impl"
 
  elementTypeHolderClass="com.simpleplugin.psi.SimpleTypes"
  elementTypeClass="com.simpleplugin.psi.SimpleElementType"
  tokenTypeClass="com.simpleplugin.psi.SimpleTokenType"
}
 
simpleFile ::= item_*
 
private item_ ::= (property|COMMENT|CRLF)
 
property ::= (KEY? SEPARATOR VALUE?) | KEY

这样一个属性文件就可以包含属性、评论和换行了。

语法定义可以使语言支持变得简单,我们制定的属性有值也可能没有值。我们指定一个属性可能有也可能没有键和值。这让IDE仍然能够识别错误定义的属性,并提供相应的代码分析和快速修正。

5 生成分析器

当语法定义之后,用户就可以通过右键菜单的Generate Parser Code或者是通过Simple.bnf文件中的⌘⇧G快捷方式根据PSI类生成解析器。Grammar-Kit将在gen文件中生成一个的语法工具解析器和PSI元素。将这个文件夹作为源根,并确保编译没有错误。

Java开发工具IntelliJ IDEA使用教程:定义语法和解析器

》》》免费下载IntelliJ IDEA最新版


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP