问题标签 [ambiguity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3672 浏览

xml - JavaCC:如何从令牌中排除字符串?(又名理解令牌歧义。)

我已经在理解方面遇到了很多问题,即如何在 JavaCC 中优雅地(或以某种方式)处理模棱两可的标记。让我们看这个例子:

我想解析 XML 处理指令。

格式是:"<?" <target> <data> "?>":target是一个 XML 名称,data可以是之外的任何内容?>,因为它是结束标记。

所以,让我们在 JavaCC 中定义它:(
在这种情况下,我使用词法状态DEFAULTPROC_INST

现在识别处理指令的部分:

让我们测试一下<?mytarget here-goes-some-data?>

目标被识别:"target: mytarget"。但现在我得到了我最喜欢的JavaCC 解析错误:

什么都没遇到?什么都没期待吗?或者是什么?谢谢你,JavaCC!

我知道,我可以使用MOREJavaCC 的关键字,但这会给我整个处理指令作为一个标记,所以我不得不自己进一步解析/标记它。我为什么要那么做?我在写一个不解析的解析器吗?

问题是(我猜):因此<PI_DATA>承认“一切”,我的定义是错误的。我应该告诉 JavaCC 将“除?>”之外的所有内容识别为处理指令数据。

但是怎么做呢?

注意:我只能使用排除单个字符~["a"|"b"|"c"]不能排除诸如or之类的字符串。JavaCC 的另一个很棒的反特性。~["abc"]~["?>"]

谢谢你。

0 投票
3 回答
1687 浏览

c# - 将 LINQ 添加到 SQL 后的 Properties.Settings 歧义

我最近通过在我的解决方案中创建一个 LINQ to SQL 项将一个数据库链接到我的 C# 服务。当我继续编码时,一切都很好而且很漂亮,但后来我突然注意到那里有 16 个歧义错误。例如

发生的事情是数据库文件决定创建它自己的 Setting.Designer.cs;所以现在我的 Properties 文件夹中有一个 Settings.Designer.cs 和一个 Settings1.Designer.cs(由 LINQ to SQL 文件创建)。

无论如何我可以更改数据库文件引用其设置的位置,以便我可以删除重复项?

0 投票
1 回答
287 浏览

antlr - 使用 Antlr 解析模棱两可的输入

几天来,我一直在尝试解析一些由文本和数字组成的文本(我在语法中将其称为句子)。

我有一个规则需要解析一个以 INT 结尾的句子

因此,如果我有一些输入是“购买的 14 号鞋的数量是 3”,那么 sentence_with_int 将不仅仅是句子匹配。我确信有更好的方法可以做到这一点,但我只是在学习这个工具。

谢谢,理查德

0 投票
2 回答
3290 浏览

c++ - C++ 中此示例的函数重载中的歧义解释

我正在阅读 Stroustrup 的书,关于重载和相关歧义的部分。

有一个例子如下:

正如评论所述,这个电话是模棱两可的。为什么?

本书上一节陈述了基于匹配形式参数和实际参数的 5 条规则。那么上述函数调用不应该符合关于“促销”的规则 2 吗?我的猜测是“我”应该被提升为长,就是这样。

根据评论,似乎 int 到 char 的转换(降级?)也符合规则 2?

0 投票
4 回答
727 浏览

c++ - c++ 对模板结构声明歧义!

在 C++ 中对类的定义中有两个 typedef。它们是干什么用的?代码中没有使用它们!

0 投票
1 回答
779 浏览

sql - 为什么 Oracle SQL 在一个连接中神秘地解决了歧义,而在其他连接中却没有

我是 Oracle 10g 用户。我不得不编写一些 SQL 查询,并发现了一个神秘的(如我所见)行为。假设我们有一个表,它能够以某种简单的两级树结构连接自己。下一个查询给了我“歧义错误”,这是预期的:

但是,如果我要在联接中再添加一个表,那么歧义问题就会消失:

对此有何解释?我完全想念它......完整的测试用例可以在http://pastebin.com/webf513w找到

0 投票
5 回答
1427 浏览

c++ - 向类的构造函数添加虚拟参数以解决调用歧义是否违反任何规则?

采用以下类和两个对象定义:

之前的两个构造函数具有虚拟枚举参数,以解决在这些虚拟参数不存在的情况下导致的调用歧义。现在尽管有可能在这里使用命名构造函数,但如果我坚持使用这些虚拟参数,这是否违反了我应该注意的任何编码规则?

0 投票
1 回答
1266 浏览

android - Android View 的 ID 可以在多个活动之间安全共享吗?

假设我在一个 Android 应用程序中有两个活动,EditPerson并且EditEmployee.

EditPerson将Activity 作为 Activity 的基类EditEmployee并定义将数据编组到布局中定义的视图和从视图中提取数据的方法似乎很自然。Activity的EditPerson实现将(例如)将“名称”字段推入和推出EditText元素。这些EditEmployee版本将调用基类版本,然后编组自己的专用字段(例如税号等)。

为了便于共享代码,两个活动都必须有一个布局资源,该资源定义了一对或多对EditText共享相同 id 的元素。即layout\edit_person.xml里面会有:

然后layout\edit_employee.xml会有类似的东西:

由于“Employee”是一个“Person”,并且有一些共同的字段(通过继承封送),似乎分配的 id(上例中的“name_editor”)只需要在一个范围内是唯一的活动(或布局?)。

从我的测试来看,这似乎可行,但我很怀疑这种方法和使用不明确的布局元素 ID 会产生无意的副作用。谁能确认这是一种安全的做法和/或指出它最终会如何破坏我的应用程序?有没有人做过类似的事情?

0 投票
5 回答
6561 浏览

c# - 使用属性时出现 C# 歧义错误

我最近开始学习 C#。我刚刚了解了属性,并决定编写一个简单的程序来更多地理解它们。这是我写的代码:

我得到一个模棱两可的错误。据我了解,这不应该发生。

0 投票
3 回答
5543 浏览

vb.net - VB.NET:不存在歧义时出现歧义类名错误

我们的一个客户报告说,当尝试在 VB.NET 中使用我们的 .NET .DLL 时,他们会收到以下错误:

错误 BC31429:“OurClass”不明确,因为命名空间“our.company.nspace”中存在多种具有此名称的成员

我还能够使用包含单行的虚拟项目来重现错误

通常这是因为有几种类型的名称只是大小写不同。但在这种情况下,就没有这种模棱两可了。OurClass不仅在特定命名空间中,而且在整个程序集和项目引用的任何其他程序集中都是唯一的名称。反射器也显示了这一点。也没有同名的类成员,也由 Reflector 验证。

还有一个奇怪的事情是,在我创建虚拟项目后,错误并没有立即出现,然后它突然出现,现在它不再消失了。事实上,我什至没有改变第一个工作的两个重新编译之间的任何东西,而第二个没有。

那么......什么给了?

(注意:.DLL 使用和引用 vjslib (J#),如果有任何相关性的话)