标签: javacc

我如何在intellij IDEA中设置javacc

我搜索了插件仓库并下载了javacc插件.

现在我有了插件,我如何在IntelliJ中使用它.

我的项目看起来像这样.

在此输入图像描述

java intellij-idea javacc

7
推荐指数
1
解决办法
3179
查看次数

什么是JavaCC的优势与ANTLR

太多人告诉我这些缺点,但如果有什么优势呢?

java parsing antlr javacc

6
推荐指数
1
解决办法
1557
查看次数

JavaCC:请给我链接到"真实"的例子

我知道有JavaCC的解析器的例子很多在这里,但他们都无能为力.它们只接受一个字符串,或产生解析错误.

我需要的是一些真正的解析器的例子,它们在解析过程中实际上做了一些事情.(例如在解析XML字符串期间构建DOM树).

请帮忙!;)

java parsing javacc

6
推荐指数
1
解决办法
1万
查看次数

哪个是ANTLR在ruby中创建解析器的最佳对应方?

我已经使用了antlr和javacc/freecc一段时间了.现在我需要使用antlr语法编写一堆解析器,但是这样的解析器需要用ruby lang编写.

我用谷歌搜索但没有找到.是否有任何ruby解析器生成器采用antlr语法并创建解析器?如果有很多,你认为哪一个最好?

TIA保罗

ruby grammar antlr javacc parser-generator

6
推荐指数
2
解决办法
2373
查看次数

JavaCC可以通过其上下文区分令牌吗?

基本要求是使用关键字作为标识符,所以我想区分令牌和它的上下文.(例如,class是一个关键字,但我们允许一个名为的变量class).

在Java中,这是可能的,但它是如此艰难,这里就是我如何做到这一点

TOKEN :
{
    <I_CAL:     "CAL">  : DO_CAL
    | <I_CALL:  "CALL">
    | <I_CMP:   "CMP">
    | <I_EXIT:  "EXIT">
    | <I_IN:    "IN">
    | <I_JMP:   "JMP">
    | <I_JPC:   "JPC">  : NEED_CMP_OP
    | <I_LD:    "LD">   : NEED_DATA_TYPE
    | <I_NOP:   "NOP">
    | <I_OUT:   "OUT">
    | <I_POP:   "POP">
    | <I_PUSH:  "PUSH">
    | <I_RET:   "RET">
    | <I_DATA:  "DATA"> : DO_DATA
    | <I_BLOCK:  ".BLOCK">
}

// T prefix for Token
TOKEN :
{
    <T_REGISTER : "R0" | "R1" | "R2" | …
Run Code Online (Sandbox Code Playgroud)

java compiler-construction javacc token

6
推荐指数
1
解决办法
1669
查看次数

JJT文件中的韩文字符集

我想在JJT文件中添加韩文字符:

| < #XCHARSET :
        ("_latin" | "_unicode" | "_kanjisjis" | "_graphic" | "national" (<WHITESPACE>)+ ("character" | "char"))
        (<WHITESPACE>)*
       >
| < #XCHARSET2 :
        ("_latin" | "_unicode" | "_kanjisjis" | "_graphic" | "_kanji1")
        (<WHITESPACE>)*
       >
Run Code Online (Sandbox Code Playgroud)

如何为此定义韩国人物.我是解析的新手,所以我不确定要在charset中添加它.有人可以请帮助.我是否必须添加_korean或是否还有其他关键字?

java unicode parsing javacc

6
推荐指数
1
解决办法
90
查看次数

JavaCC警告的解释和解决方案"正则表达式选择:FOO永远不能匹配为:BAR"?

我正在教自己在业余爱好项目中使用JavaCC,并且有一个简单的语法来编写解析器.解析器的一部分包括以下内容:

TOKEN : { < DIGIT : (["0"-"9"]) > }
TOKEN : { < INTEGER : (<DIGIT>)+ > }
TOKEN : { < INTEGER_PAIR : (<INTEGER>){2} > }
TOKEN : { < FLOAT : (<NEGATE>)? <INTEGER> | (<NEGATE>)? <INTEGER>  "." <INTEGER>  | (<NEGATE>)? <INTEGER> "." | (<NEGATE>)? "." <INTEGER> > } 
TOKEN : { < FLOAT_PAIR : (<FLOAT>){2} > }
TOKEN : { < NUMBER_PAIR : <FLOAT_PAIR> | <INTEGER_PAIR> > }
TOKEN : { < NEGATE : "-" > } …
Run Code Online (Sandbox Code Playgroud)

regex parsing javacc

5
推荐指数
1
解决办法
2499
查看次数

使用JavaCC解析字符串

我试图想出一种使用JavaCC解析字符串的好方法,而不会错误地将它与另一个令牌匹配.这些字符串应该能够包含空格,字母和数字.

我的标识符和号码标记如下:

<IDENTIFIER: (["a"-"z", "A"-"Z"])+>
<NUMBER: (["0"-"9"])+>
Run Code Online (Sandbox Code Playgroud)

我当前的字符串标记是:

<STRING: "\"" (<IDENTIFIER> | <NUMBERS> | " ")+ "\"">
Run Code Online (Sandbox Code Playgroud)

理想情况下,我只想保存引号内的东西.我有一个单独的文件,我在其中实际保存变量和值.我应该删除那里的引号吗?

我最初在解析器文件中有一个方法,如下所示:

variable=<INDENTIFIER> <ASSIGN> <QUOTE> message=<IDENTIFIER> <QUOTE>
{File.saveVariable(variable.image, message.image);}
Run Code Online (Sandbox Code Playgroud)

但是,正如您可能猜到的那样,这不允许使用空格或数字.对于变量名等标识符,我只想允许使用字母.

所以,我想就如何捕获字符串文字得到一些建议.特别是,我想制作如下字符串:

" hello", "hello ", " hello " and "\nhello", "hello\n", "\nhello\n"
Run Code Online (Sandbox Code Playgroud)

在我的语法中有效.

string parsing javacc token

5
推荐指数
1
解决办法
6648
查看次数

Javacc 是否有输出 javascript 代码的版本?

我正在寻找一个解析器生成器,它接受 Javacc 语法文件 (.jj) 并用 Javascript(而不是 Java)生成解析器。这样的事情存在吗?或者,将 .jj 文件转换为 ANTLR(可以输出 Javascript)可以理解的文件有多困难?

javascript java parsing antlr javacc

5
推荐指数
1
解决办法
1674
查看次数

将JavaCC gradle插件与Android Studio集成

遵循此示例,我已经在android studio中成功建立了一个非常基本的云项目。此外,我使用此gradle插件为项目添加了JavaCC支持。现在,我可以将* .jj文件放在javacc文件夹中,并使用android studio中的compileJavacc任务对其进行编译。我的build.gradle文件现在看起来像这样:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.14'
        classpath "ca.coglinc:javacc-gradle-plugin:2.0.4"
    }

}

repositories {
    mavenCentral();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
apply plugin: "ca.coglinc.javacc"

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.14'
    compile 'javax.servlet:servlet-api:2.5'
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}
Run Code Online (Sandbox Code Playgroud)

作为gradle和android studio的初学者,我不确定如何继续以下操作:

  1. 将javaCC生成的文件添加到我的构建路径中
  2. * .jj文件更改时,使JavaCC编译任务自动运行。

我将如何以最优雅的方式解决这两件事?

谢谢!

javacc gradle android-studio

5
推荐指数
1
解决办法
424
查看次数