小编ric*_*ici的帖子

在flex中匹配尾随上下文

flex手册中,它提到了一个"尾随上下文"模式(r/s),这意味着r,但只有在后面跟着s.但是,以下代码无法编译(相反,它会出现"无法识别的规则"错误.为什么?

LITERAL a/b
%%
{LITERAL} { }
Run Code Online (Sandbox Code Playgroud)

parsing lex flex-lexer

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

Parse.com上传文件最大大小

我正在尝试将100MB视频文件上传到Parse,但是我收到错误代码129:文件大小超过允许的最大值.

我一直试图在没有运气的情况下找到文档的大小限制.有没有人知道实际的文件大小限制?

我正在使用REST API进行上传.

谢谢

rest parse-platform

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

Flex:使用 yymore()

这是 .lex 文件的片段:

    /* Empty line just with the newline character signs end of
       the title block 
     */
<title>^[\n]{1} {
    yymore(); ECHO;
    // std::cout << "Text: " << yytext << std::endl;

    // ... do something with yytext

    BEGIN(INITIAL);

}

    /* Reads everything up to the end of line. */
<title>.+ {
    ECHO; yymore();
    //std::cout << "yymore: " << yytext << std::endl;
}

    /* Every title starts with # and text follows. */
#[\t\ ] {

    // ... prepare for html …
Run Code Online (Sandbox Code Playgroud)

c++ g++ flex-lexer

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

带有{} grep和正则表达式的卷曲大括号:为什么它超过最大值?

我已经有一段时间自学shell脚本了,我遇到了关于grep和花括号{}的Linux基础知识手册的这一部分.我的问题是,当我要求使用{}或花括号从最小到最大出现次数搜索字符串模式时,我的结果超出了我指定的最大值.

这是发生了什么:

Express11:~/unix_training/reg_ex # cat reg_file2
ll
lol
lool
loool
loooose
Express11:~/unix_training/reg_ex # grep -E 'o{2,3}' reg_file2
lool
loool
loooose
Express11:~/unix_training/reg_ex #
Run Code Online (Sandbox Code Playgroud)

根据手册,不应该是这样的情况,因为我在这里指定我只查找包含两个连续o到三个连续o的字符串.

编辑:实际上,我不理解花括号如何工作的原因是因为手册的这种简单的解释.我引述:

19.4.10.在n和m次之间这里我们要求从最小2到最多3次.

paul@debian7:~$ cat list2
ll
lol
lool
loool
paul@debian7:~$ grep -E 'o{2,3}' list2
lool
loool
paul@debian7:~$ grep 'o\{2,3\}' list2
lool
loool
paul@debian7:~$ cat list2 | sed 's/o\{2,3\}/A/'
ll
lol
lAl
lAl
paul@debian7:~$
Run Code Online (Sandbox Code Playgroud)

感谢所有回复的人.

regex linux bash grep curly-braces

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

使用未解析的标识符'PFUser' - Swift/Xcode/Parse

我试图在我的Parse数据库中查询我的应用程序在Xcode中的表视图控制器.

我是初学者,但是我已将我添加的.swift文件中的代码片段发布到我的项目中.我试图在.swift文件中查询用户,但它没有从我的View Controller识别'PFUser'.

在我的ViewDidLoad方法中首次调用它之前,是否需要将PFUser声明为我的.swift文件中的内容?

有任何想法吗?

代码段: 代码段

xcode ios parse-platform swift

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

如何让GCC在函数调用和函数定义中警告无法匹配的参数?

我有两个文件.

第一个文件包含函数原型,main函数只用一个参数调用myfunc:

int myfunc (int x);
int main ()
{
    int x =5;
    myfunc(x);
}
Run Code Online (Sandbox Code Playgroud)

第二个文件包含函数定义但有2个参数:

int myfunc (int x, int y)
{
        return x+y;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用GCC编译这两个文件时,我没有收到任何错误或警告.

如何强迫海湾合作委员会警告这样的事情?

c gcc function

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

如何在flex规则中引用lex或parse参数?

我知道我可以%parse-param {struct my_st *arg}.y文件中声明.所以yyparse()改变了yyparse(struct my_st *arg).但是我如何引用flex规则中的参数?例如:

[0-9]+  { do_work(arg); return NUMBER; }
Run Code Online (Sandbox Code Playgroud)

我想制作一个可重入的解析器,所以我需要这样做.请帮帮我,谢谢!

bison flex-lexer

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

我怎么能LD_PRELOAD我自己编译的库?

我想知道它是如何工作的,创建一个库并预加载它,以便程序可以使用它而不是include语句中的那个.

这是我正在做的事情,到目前为止还没有工作.

//shared.cpp
int rand(){
    return 33;
}

//prograndom.cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
    srand(time(NULL));
    int i = 10;
    while(i--) printf("%d\n", rand()%100);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后在终端:

$ gcc -shared -fPIC shared.cpp -o libshared.so
$ gcc prograndom.cpp -o prograndom
$ export LD_PRELOAD=/home/bob/desarrollo/libshared.so
Run Code Online (Sandbox Code Playgroud)

最后

$ LD_PRELOAD=/home/bob/desarrollo/libshared.so ./prograndom
Run Code Online (Sandbox Code Playgroud)

哪个不打印33,只是随机数...

c linux gcc ld-preload

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

g ++优化-O3导致奇怪的stackdump错误?

首先,我2个月前才开始编程C/C++(但是有更多的Java经验),所以我对C/C++的经验很少.我正在撰写一篇论文,并正在使用/扩展为此目的而为之前的研究编写的其他代码.

现在,这个错误肯定是我遇到的最奇怪的事情,花了我差不多3个小时才找到并缩小到最基本的形式我可以用它来重现它.最后,我有以下代码的这两个文件

c.hh:

#ifndef C_HH_
#define C_HH_

class complex {
public:
    double re;
};
#endif
Run Code Online (Sandbox Code Playgroud)

test.cc:

#include <iostream>
#include "c.hh"

int main(int argc, char **argv) {
    complex* c;
    c->re = 0.0;

    for (int i = 0; i < 3; ++i) {
        c->re = (c->re) + (i==1)?0:1;
    }

    std::cout << c->re;
}
Run Code Online (Sandbox Code Playgroud)

我可以拿出的唯一一行仍然会出现错误,即c.re的初始化,即"c-> re = 0.0;".但是,我留下了这个,因为即使我删除代码的下半部分,如果没有这行,错误仍然会发生,因为c.re尚未初始化(或者我认为?).

我发现其他一切都是重现错误的必要条件,即

1)for循环.如果i = 1,2,3的行是单独写的,则不会导致错误.

2)我的极限!例如,如果我只从0到2运行,则不会导致错误.仅在至少3次迭代后才会发生.

3)显式赋值"c-> re =(c-> re)+",使用"+ ="而不是"=(c-> re)+"不会导致错误.

4)i"(i == 1)?0:1"的评估和(!)条件检查.使用if(..)执行此操作也会导致错误,但如果不使用i,则不会导致错误,或者不执行条件检查.

5)c.re的输出.即"std :: cout << c-> re;".简单地评估c.re("c-> re;")不会导致错误.如果只有输出而没有评估c.re,它也不会导致错误.通过"fprintf(stdout,"%d",c - > - re)执行相同操作;" …

c++ optimization stack-dump

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

如何使用`:rand`作为map/collect的一元方法?

我想要一个包含滚动10个骰子的结果的矢量(比方说).我可以做这个:

([6]*10).map{|x|rand(x)}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个"错误的参数数量"错误:

([6]*10).map(:rand)
Run Code Online (Sandbox Code Playgroud)

有一个免费的点对点的方式来传递的一个参数版本randmap

ruby

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