小编Gli*_*ome的帖子

CMake将非编译文件导入构建目录

我像这样使用CMake:

$ mkdir build && cd build
$ cmake .. && make && atf-run | atf-report
Run Code Online (Sandbox Code Playgroud)

但是要运行atf我需要一些文件(例如/ Atffile和test/Atffile),所以我正在寻找一种方法在我的构建目录中导入所有那种文件.

我试过这个:

file(COPY ${PROJECT_SOURCE_DIR}/.. DESTINATION ${PROJECT_SOURCE_DIR}/..)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.他们是一个简单/清洁的方式吗?

copy build cmake

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

ANTLR 4和AST访客

我正在尝试将AST与ANTLR4一起使用,包含以下文件:

Builder.java

import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.TokenStream;

public class Builder
{

    public static void main(String[] args)
    {
        CharStream input = new ANTLRInputStream("ON M1==2 && M3 == 5 && (M2 > 1 || M5 <= 5.0) "
                                              + "DO P5:42 P4:10");
        ExprLexer lexer = new ExprLexer(input);
        TokenStream tokens = new CommonTokenStream(lexer);
        ExprParser parser = new ExprParser(tokens);
        parser.addParseListener(new ExprTestListener());
        ExprParser.ExpressionContext uu = parser.expression();
    }

}
Run Code Online (Sandbox Code Playgroud)

ExprTestListener:

import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.antlr.v4.runtime.tree.ErrorNode;

public class ExprTestListener extends ExprBaseListener …
Run Code Online (Sandbox Code Playgroud)

java antlr visitor abstract-syntax-tree antlr4

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

Bison 并且没有命名类型错误

我有以下文件:

\n\n

CP时间

\n\n
#ifndef CP_H_\n#define CP_H_\n\nclass CP {\npublic:\n        enum Cardinalite {VIDE = \'\\0\', PTINT = \'?\', AST = \'*\', PLUS = \'+\'};\n\n        CP(Cardinalite myCard);\n        virtual ~CP();\nprivate:\n        Cardinalite card;\n};\n\n#endif /* CP_H_ */\n
Run Code Online (Sandbox Code Playgroud)\n\n

dtd.y

\n\n
%{\n\nusing namespace std;\n#include <cstring>\n#include <cstdio>\n#include <cstdlib>\n#include "AnalyseurDTD/DtdDocument.h"\n#include "AnalyseurDTD/CP.h"\n\nvoid yyerror(char *msg);\nint yywrap(void);\nint yylex(void);\n\nDtdDocument * doc = new DtdDocument();\n%}\n\n%union { \n        char *s;\n        DtdElement * dtdelt;\n        CP *cpt;\n        CP::Cardinalite card;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及以下奇怪的错误:

\n\n
AnalyseurDTD/dtd.y:20:2: error: \xe2\x80\x98CP\xe2\x80\x99 does not name a type\nAnalyseurDTD/dtd.y:21:2: error: \xe2\x80\x98CP\xe2\x80\x99 does not name …
Run Code Online (Sandbox Code Playgroud)

c++ linker bison

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

使用AngularJS或jQuery获取Content-Type

我想用AngularJS制作一个显示媒体(图像或视频)的指令.

为了实现这个目标,我必须确定媒体的类型,为了做到这一点,我想对URL进行AJAX请求并获取Content-Type标题,但我在文档中找不到类似的东西.

你有一些提示吗?

ajax jquery content-type angularjs

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

GraphViz强制列

我有以下点:

digraph G
{
    rank="same";
    subgraph sys
    {
        1 [shape=record, label="| | Système"];
    }

    subgraph obj
    {
        2 [shape=box, label="Sites"];
        3 [shape=box, label="Sociétés de\nmaintenance"];
        1 -> 2 [arrowhead=none] [label="a"];
        1 -> 3 [arrowhead=none] [label="b"];
    }

    subgraph constraints
    {
        4 [style=dotted, label="Surveiller"];
        5 [style=dotted, label="Effectuer des\ninterventions"];
        4 -> 2 [style=dotted];
        4 -> 3 [style=dotted];
        5 -> 2 [style=dotted];
        5 -> 3 [style=dotted];
    }

}
Run Code Online (Sandbox Code Playgroud)

这给了我这张图片:

在此处输入图片说明

但是我想按列创建一个子图(第一列为1,第二列为2-3,最后列为4-5)。

有没有办法做到这一点?

对于您的帮助,在此先感谢。

graphviz subgraph

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

获取CMake的Ninja测试命令

我正在尝试让 Ninja 在FreeBSD 10.3上与 CMake 一起工作:

cmake -GNinja ..
-- Configuring done
CMake Error:
  The detected version of Ninja () is less than the version of Ninja required
  by CMake (1.3).

-- Build files have been written to: /home/me/pj/_build
Run Code Online (Sandbox Code Playgroud)

我已经将本地编译的(来自 Git 标签 v1.8.2)Ninja 放入~/bin/ninja(位于我的$PATH)中。

$ cmake -version
cmake version 3.4.1
$ ninja --version
1.8.2
Run Code Online (Sandbox Code Playgroud)

我也尝试添加了-DCMAKE_MAKE_PROGRAM=ninja-DCMAKE_MAKE_PROGRAM=~/bin/ninja没有效果。

我还尝试查看 Ninja 是否真的被调用(通过将脚本写入新文件),看起来它从未被调用过。

有没有办法查看使用哪些命令来检查 Ninja 版本?

cmake ninja

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

强制GraphViz强制节点之间的距离

我使用GraphViz和以下点文件:

digraph G
{
    rankdir=LR;
    subgraph commits
    {
        "5c071a6b2c" -> "968bda3251" -> "9754d40473" -> "9e59700d33" -> "2a3242efa4";
    }
    subgraph annotations
    {
        "V1.0" [shape=box];
        "br/HEAD" [shape=box];
        "V1.0" -> "9e59700d33" [weight=0];
        "br/HEAD" -> "2a3242efa4" [weight=0];
    }
}
Run Code Online (Sandbox Code Playgroud)

它给我这样的东西: 袋子的东西

但是我想要这样的东西:

                                        V1.0         br/HEAD
                                          |             |
                                         \/            \/
Run Code Online (Sandbox Code Playgroud)

5c071a6b2c - > 968bda3251 - > 9754d40473 - > 9e59700d33 - > 2a3242efa4

我怎样才能做到这一点?

为了您的帮助,谢谢你提前.

graphviz vertical-alignment nodes

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

为什么 Haskell 解析注释?

我有一个非常简单的代码(在 GHC 8.10.4/ stack ghci17.12 中):

module T where

data D = A | B | C deriving (Eq, Show)

fn :: D -> Int
fn x =
  case x of
    A ->
      -- | Test
      1
    B -> 2
    C -> 3
Run Code Online (Sandbox Code Playgroud)

关键是,我是否更换|^或使用多线评论,我得到这个错误:

T.hs:9:7: error: parse error on input ‘-- | Test’
  |
9 |       -- | Test
  |       ^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

解析器是否与我的评论与其他内容不匹配?或者是否有一种看起来像注释的特殊语法?

haskell syntax-error

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

ANTLR 4:语法不好,'输入时没有可行的选择'

我正在使用ANTLR 4:

import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.TokenStream;

public class Builder
{
    public static void main(String[] args)
    {
        CharStream input = new ANTLRInputStream("ON M1==2 && M3 == 5 && (M2 > 1 || M5 <= 5.0) "
                                              + "DO P5:42 P4:10");
        ExprLexer lexer = new ExprLexer(input);
        TokenStream tokens = new CommonTokenStream(lexer);
        ExprParser parser = new ExprParser(tokens);
        ExprParser.ExpressionContext uu = parser.expression();
        for (int i = 0; i < uu.getChildCount(); ++i)
            System.out.println(uu.getChild(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

以下语法:

grammar Expr;
options
{
  // …
Run Code Online (Sandbox Code Playgroud)

grammar parsing antlr token antlr4

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

如何使用 ElasticSearch 按日期排序

我有一个带有date字段的索引,如下所示:

{
  "properties": {
    "productCreationDate": {
      "format": "YYYY-MM-dd'T'HH:mm:ssXXX",
      "type": "date"
    },
  }
}
Run Code Online (Sandbox Code Playgroud)

当我以这种方式执行搜索时:

{
  "size": 5,
  "from": 0,
  "sort": [
    {
      "productCreationDate": {
        "order": "desc"
      }
    }
  ],
  "track_scores": false
}
Run Code Online (Sandbox Code Playgroud)

我按插入顺序获取文档并注意 ElasticSearch 7.9 上的字段顺序:

{
  "took": 24,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 6,
      "relation": "eq"
    },
    "max_score": null,
    "hits": [
      {
        "_index": "my-index",
        "_type": "_doc",
        "_id": "product^14",
        "_score": null,
        "_source": {
          "productCreationDate": "2020-08-14T18:21:51+02:00", …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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