当我尝试编译以下代码时:
class A {
public:
A(int v) : virt(v) { }
int virt;
int getVirt(void) const { return virt; }
};
class B : private virtual A {
protected:
B(int v) : A(v) { }
using A::getVirt;
};
class C : public B, private virtual A {
protected:
C(int v) : A(v), B(v) { }
using A::getVirt;
};
class D : public C {
public:
D(void) : C(3) { }
using C::getVirt;
};
#include <iostream>
int main(int argc, char *argv[]) …
Run Code Online (Sandbox Code Playgroud) 我试图在MS SQL Server上使用XQuery获取包含特定文本元素的段落之后的表的文本元素.问题是每当我使用轴"follow","follow-sibling"或"previous-sibling"时,我得到一个错误,说SQL Server不支持这个(我使用的是版本2008).因此,例如,我可以获得包含值为"blah"的文本节点的第一个段落节点:
//w:p[descendant::w:t = "blah"]
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法从表元素中获取文本:
//w:tbl//w:t/text()
Run Code Online (Sandbox Code Playgroud)
我没有看到任何方法可以强制查询只返回先前捕获的段落节点之后的第一个表元素,因为:
//w:tbl[following:://w:p//w:t = "blah"]//w:t/text()
Run Code Online (Sandbox Code Playgroud)
给出错误:"XQuery [Specification.document.query()]:不支持XQuery语法'follow'."
同样的:
//w:tbl[following-sibling::w:p[descendant::w:t = "blah"]]//w:t/text()
Run Code Online (Sandbox Code Playgroud)
提供"XQuery [Specification.document.query()]:不支持XQuery语法'follow-sibling'."
那是不对的,你们都知道!自从1999年AFAICT 1.0以来,XPath一直支持跟随和跟随兄弟姐妹,所以MS SQL Server似乎在标准合规性方面严重不足,但不管怎样,有没有人看到我可以在没有这些轴的情况下做到这一点?提前致谢!
我最近开始学习Antlr并下载AntlrWorks 1.4,据说包括Antlr 3.2.现在,3.2应该支持像' - >'这样的重写规则语法,但是我甚至无法得到基于Lexer或Parser规则构建的最简单的情况:
grammar TestRewrite;
ab : a b -> a;
a : A;
b : B;
A : 'a';
B : 'b';
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,我收到错误:
[11:26:29] error(100): TestRewrite.g:3:13: syntax error: antlr: TestRewrite.g:3:13: unexpected token: a
Run Code Online (Sandbox Code Playgroud)
为什么是这样.结构看起来很简单:ab应该生成一棵树,其中只捕获一个节点.不是你怎么做的?我无法使用rooting('^')或忽略('!').我很困惑.