标签: javacc

在 JavaCC 中打印匹配的标记

我需要打印 javacc 匹配的令牌,但我不知道如何“存储它”。假设我的令牌定义是:

TOKEN :
{
    < BLAH: ["0"-"9"]> 
}
Run Code Online (Sandbox Code Playgroud)

我的 parser.input() 函数是:

void Input():
{}
{ (<BLAH> { System.out.println("I recognize BLAH"); } ) 
}
Run Code Online (Sandbox Code Playgroud)

然而,给定一些输入(假设为 5),我真正想要输出的是:

I recognize that BLAH is 5.
Run Code Online (Sandbox Code Playgroud)

有小费吗?谢谢

javacc

2
推荐指数
1
解决办法
2491
查看次数

Javacc 正则表达式匹配除某些字符串之外的所有字符串

匹配任何内容的正则表达式是什么,除了这些字符串: =>, |

如果您熟悉 javacc,我正在尝试定义我的ANYTHING令牌,如下所示:

TOKEN :
{
 <ARROW: "=>" >
|
 <ANYTHING: (["\u0001" - "\uffdc"])+>
|
 <PIPE: "|">
|
 <UPPER_CHAR: (["A"-"Z"])>
}
Run Code Online (Sandbox Code Playgroud)

谢谢

regex javacc

2
推荐指数
1
解决办法
5010
查看次数

用JavaCC删除C注释

我知道如何使用SKIP声明跳过这些注释,但我需要做的就是获取C源并输出相同的源而不带注释.

所以我声明了一个令牌<GENERIC_TEXT:(〜[])+>,它被复制到输出中,并且不会跳过注释.我怀疑这个令牌为自己获取所有输入.

有谁可以帮助我吗?

谢谢

java parsing comments javacc parser-generator

2
推荐指数
1
解决办法
2574
查看次数

Javacc无法访问的声明

在我的语法中,有表达式和片段的生成规则,最初包含间接左递归.这是我从它们中删除递归后的规则.

String expression() #Expression : {String number; Token t;}
{
    number = fragment()
    (
        (t = <Mult_Sign> number = fragment())
    )
    {return number;}
}

String fragment() #void : {String t;}
{
    t = identifier() {return t;}
    | t = number() {return t;}
    | (<PLUS> | <MINUS> ) fragment()
    | <LBR> expression() <RBR>
}
Run Code Online (Sandbox Code Playgroud)

尝试解析语法中的条件时使用这些生产规则.但是,生产规则的顺序要么具有它,所以只接受表达式.然而它应该接受像while(x <= 10)这样的东西.如果我有相反顺序的生产规则,如最初在语法中所述.当我尝试使用javac编译java文件时.我收到一个错误,告诉我identifier()是一个无法访问的语句.这是条件生成规则:

void condition() #void : {Token t;}
{
    <NOT> expression()
    | expression (<EQUALS>|<NOTEQUALS>|<LT>|<GT>|<LTE>|<GTE>|<AND>|<OR>) expression()
    | identifier()
}
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助告诉我为什么会出现这个问题,那将非常有帮助.

compiler-construction parsing javacc unreachable-statement

2
推荐指数
1
解决办法
1583
查看次数

JRuby和Jython使用什么解析器来生成JVM字节码?

你们知道JRuby和Jython使用什么解析器来生成JVM字节码吗?是ANTLR还是JavaCC,还是在实现中使用其他解析器?

jvm antlr jython jruby javacc

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

(...)*构造中的JAVACC ERROR选择冲突

我是第一次使用javacc.

我一直收到这个错误:

Warning: Choice conflict in (...)* construct at line 35, column 43.
     Expansion nested within construct and expansion following construct
     have common prefixes, one of which is: <SPACE>
     Consider using a lookahead of 2 or more for nested expansion.
Run Code Online (Sandbox Code Playgroud)

我已经调查了这一点,发现它是由于解析器不知道哪个是最合适的选择.

void l_zero() : {} {
 TOKEN1 ( TOKEN2 TOKEN1)*  
}
Run Code Online (Sandbox Code Playgroud)

这个错误就(在这一行之前产生,任何人都可以帮我理解这一点吗?

compiler-errors javacc bnf

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

java.io in debian

我尝试编译一个java程序,但在代码的导入部分失败:

import java.net.*;
import java.io.*;
import java.util.*;
import java.text.*;
import java.awt.*;
//import java.awt.image.*;
import java.awt.event.*;
//import java.awt.image.renderable.*;
import javax.swing.*;
import javax.swing.border.*;
//import javax.swing.border.EtchedBorder;
//import javax.media.jai.*;
//import javax.media.jai.operator.*;
//import com.sun.media.jai.codec.*;
//import java.lang.reflect.*;
Run Code Online (Sandbox Code Playgroud)

我该如何解决linux debian机器中的问题?谢谢

Java Compiler Compiler Version 4.1d1 (Parser Generator) 
(type "javacc" with no arguments for help) 
Reading from file SAVE.JSigpac.java . . . 
org.javacc.parser.ParseException: Encountered " "import" "import "" at line 443, column 1. Was expecting: "PARSER_BEGIN" ... 
Detected 1 errors and 0 warnings.
Run Code Online (Sandbox Code Playgroud)

java compilation javacc java-io

0
推荐指数
1
解决办法
602
查看次数

使用JavaCC在Eclipse Luna上编译时出错 - 无法找到或加载主类javacc

我使用此链接作为指南将JavaCC下载到我的eclipse Luna中 - http://homepages.gac.edu/~hvidsten/courses/MC270/Labs/project4-GacApplication/project-files/JavaCC/JavaCC-Eclipse.html

我读过版本6有问题,但我认为这是版本5.我还添加了javaCC jar文件夹作为参考库

但是,当我尝试通过单击使用javacc编译来编译我的.jj代码时,它不起作用并给出错误 - 无法找到或加载主类javacc

我已经尝试将我的javacc中的bin文件夹添加到我的途径中,但我没有运气

在此先感谢您的帮助!

eclipse parsing eclipse-plugin javacc lexical-analysis

0
推荐指数
1
解决办法
1418
查看次数

Javacc的单元测试

我在我的应用程序中使用Javacc解析器生成器,并希望对我的语法进行一些单元测试.

我想知道是否有任何javacc的单元测试框架,比如gUnit用于ANTLR.如果没有,那么测试这种语法的最佳方法是什么?

java unit-testing javacc

-1
推荐指数
1
解决办法
875
查看次数