我正在用ANTLR构建一个程序,在这个程序中,我要求用户输入一些Java代码,它会输出等效的C#代码。在我的程序中,我要求用户输入一些Java代码,然后对其进行解析。到目前为止,我一直假设他们会输入一些可以自己解析为有效编译单元的内容,例如
package foo;
class A { ... }
class B { ... }
class C { ... }
然而,情况并不总是如此。他们可能只是从类的内部输入代码:
public void method1() {
...
}
public void method2() {
...
}
或者方法的内部:
System.out
第一个问题流
大家好,
这可能是这个问题的后续:。
我正试图为编写一个反to语法。
我面临的主要问题是:“如何在不掩盖其他语法规则的情况下匹配任何字符序列(常规文本)?”?
让我们以一个带有内联标记的段落为例:
In `Figure 17-6`_, we have positioned ``before_ptr`` so that it points to the element
*before* the insert point. The variable ``after_ptr`` points to the element *after* the
insert. In other w
首先,我想为我糟糕的英语道歉。我创建了webApp,我的任务是对Java代码进行标记化。我找到了像ANTLR v4这样的工具,并试图实现它。
public class Tokenizer {
public void tokenizer(String code) {
ANTLRInputStream in = new ANTLRInputStream(code);
Java8Lexer lexer = new Java8Lexer(in);
List<? extends Token> tokenList = new ArrayList<>();
有没有一种方法可以解析以特定字符开头的单词?
我一直在尝试以下几点,但没有取得任何有希望的结果:
//This one is working it accepts AD CD and such
example1
:
.'D'
;
//This one is not, it expects character D, then any ws character then any character
example2
:
'D'.
;
//These two are not working either
example3
:
'D'.*
;
我有以下语法。
meta : '<' TAG attribute* '>';
attribute : NAME '=' VAL;
TAG : [A-Z0-9]+;
NAME : [A-Z_-]+;
VAL : '"'.*?'"';
我想要匹配下面的字符串。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
但是我得到了以下错误。
ParseError
我试图为一些防火墙设备编写配置解析器。我第一次使用ANTLR。
我要解析的通常是以下类型的文本:
config wireless-controller global
set name ''
set location ''
set max-retransmit 3
set data-ethernet-II disable
set link-aggregation disable
set mesh-eth-type 8755
set fiapp-eth-type 5252
set discovery-m
我正在尝试使用ANTLR4创建一个简单的解析器,而我在识别一个lexer令牌时遇到了问题。问题是,即使在单词SAYS之后有一个“:”,解析器规则也没有识别它。还有提到的话,“michael也没有被识别出来。”
输入文本是:约翰说:你好@michael,这将不能工作,
//Lexer规则
grammar ChatLexer;
/*
* Lexer Rules
*/
fragment A : ('A'|'a') ;
fragment S : ('S'|'s') ;
fragment Y