小编mjk*_*mjk的帖子

ANTLR:如何解释识别Java代码后缀的语法行为?

一周前,我开始了以下项目:一种识别Java代码后缀的语法.

我使用ANTLRJava(Java.g4)的官方语法作为基线并开始添加一些规则.但是,这些新规则还引入了左递归,我也不得不处理.

经过几天的工作,我得到了以下代码.当我开始测试时,我注意到一些不寻常的东西,我仍然无法解释.当给出输入时{ },解析器告诉我no viable alternative at input '<EOF>',但当我在规则的右侧切换终端的顺序时s2,特别是如果我们将右手侧v2_1 | v2_2 | v2_3 ...改为v2_36 | v2_1 | v2_2 ...(终端v2_36移动到第一个位置),顺序{ }被接受.

我的第一个想法是Antlr没有回溯,因为我注意到在输入{ }时,解析器的第一个版本开始遵循规则v2_3,只是报告没有找到任何东西,并且没有尝试考虑其他选项(这是我的想法,但也许不是真的)这样的确v2_36给出了肯定的答案.

但是,经过一些研究,我发现ANTLR实际上是回溯,但只有在其他一切都失败的情况下.至少对于v3.3来说也是如此(在官方ANTLR文件中阅读),但我想这也是如此v4.现在我有点困惑.在这个项目上花了这么多个小时后,如果我不能让它工作,我会觉得非常糟糕.有人可以提供某种提示吗?非常感谢,谢谢.

编辑

管理将问题隔离到

grammar Java;
@parser::members {String ruleName; }

start : compilationUnitSuf EOF;

compilationUnitSuf
    :   {ruleName = "typeDeclarationSuf"; } s2
    ;

s2: '{' '}' …
Run Code Online (Sandbox Code Playgroud)

java grammar antlr

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

图像GD调整为100px,同时保持比率

我想将图像调整为100px(宽或高),同时保持其比例和质量.
所有这一切需要做的是打开一个给定的文件,调整它并用新版本覆盖文件(保留文件名).
它应该只能做jpeg,gif和png文件.
我对透明胶片不挑剔.

php gd jpeg resize

16
推荐指数
0
解决办法
3万
查看次数

允许两个或多个vagrant VM在自己的网络上进行通信

我想创建多个服务器,可以在不使用公共IP的情况下直接相互通信.他们仍然需要互联网访问,但网络外的任何东西都不需要连接到他们.创建一个盒子通常有效,但是当我添加其他服务器时,网络就会失败.

MacOS:10.8.5
Virtualbox:4.3.12
GuestOS:Ubuntu"precise64"
使用Vagrant配置的第2版

大多数时候,如果我使用私人网络我得到:

saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
saltminion01: Warning: Connection timeout. Retrying...
Run Code Online (Sandbox Code Playgroud)

有没有人有一个样本Vagrantfile这样做?

virtualbox vagrant vagrantfile

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

如何大写首字母的文字

文本字段中有一些文本.在将其设置为txtfdName之前,我想将第一个字母大写.

[addrecipe.txtfdName setText:txtfield1.text];
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c

13
推荐指数
4
解决办法
2万
查看次数

如何在本机JavaScript和node.js中使用长轮询?

我需要long polling为聊天应用程序实现.我一直在寻找,但我只是在JavaScript使用中找到了如何实现它JQuery.我怎样才能使用native JavaScript和实现它node.js?你能指导我一些相关的文章或材料吗?

javascript long-polling node.js

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

Javascript停止执行中止或退出

if(a.value==1 && b.value==2)
{
    try{callFunc()  }catch(e) {} 
}
frm.submit();
Run Code Online (Sandbox Code Playgroud)

在里面function callFunc(),我必须写什么才能完全停止执行?它不应该执行frm.submit();

function callFunc()
{
    //stop execution here -- ensure it won't execute fm.submit()
}
Run Code Online (Sandbox Code Playgroud)

html javascript

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

“事件查看器日志文件另存为 XML”仅保存 305 条记录

我的事件查看器中有 1450 个事件日志。

当我使用日期过滤它时,比如从 2​​014 年 8 月 25 日到 2014 年 8 月 31 日,它会减少到 774。当我尝试通过选择“将事件文件另存为”然后选择 XML 作为文件类型来将日志文件保存为 XML 时,它只保存最后 305 条记录。

当我将其保存为 csv 时,我可以看到所有 774 个事件已保存。当我尝试将 1450 的完整列表保存为 XML 时,它会保存所有日志。只有在应用日期过滤器时才会出现此问题。

有任何想法吗?

xml windows xpath event-viewer

5
推荐指数
2
解决办法
2722
查看次数

与800x480相同的是480x800吗?

决议可以像这样互换地表达吗?文档似乎有时会先编写较大的数字,有时则不会.如果它们不是同一个东西,我怎么知道我是否以纵向模式获得高度?

android screen

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

有没有办法找出POST变量而不知道他们的名字?

我有一个动态获取复选框名称的表单.有没有办法找出未知变量的名称?例如:

 foreach($value as $option){
            $html .= "<input type='checkbox' name='".$key."[]' value='$option'>".htmlspecialchars($option)."</input>";
    }
Run Code Online (Sandbox Code Playgroud)

我需要知道它_POST['']会是什么.

html php

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

使用jQuery + regexes删除方括号及其内容

使用我在这里找到的一个例子,我试图删除这些[ ]方括号包围的文本的出现.

[sample-text]在html中出现了很多次,想要删除整个内容,包括括号.

我试过这个,但它不起作用 - 没有任何东西被替换:

var replaced = $("body").html().replace(/^\[.*\]$/g,'');
$("body").html(replaced);
Run Code Online (Sandbox Code Playgroud)

我试图匹配开始使用[和结束与]删除内部内容,但我无处可去.

html javascript regex wordpress jquery

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

推荐阅读高级图论?

我正在寻找有关高级图论的书籍。你会推荐什么?

相关主题:
- 着色理论
- 最小切割
- 旅行商问题

algorithm graph

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

为什么我为myIt = new MyIterator <E>(开始)获得堆栈溢出?

这是我的代码......

 package calendar;

    import java.util.*;

    /**
     * This class represents a simple implementation of a sorted singly-linked list.
     * Elements added to the list are inserted in sorted order based on an specified
     * Comparator object.
     * <br><br>
     * 
     * This class relies on two classes: MyIterator and MyListNode. We have implemented
     * the MyListNode class for you, but you are responsible for the implementation
     * of the MyIterator class.  Notice these are inner classes defined within the 
     * MySortedLinkedList …
Run Code Online (Sandbox Code Playgroud)

java

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