小编Eli*_*Eli的帖子

ANTLR:有一个简单的例子吗?

我想开始使用ANTLR,但是在antlr.org网站上花了几个小时回顾一下这些例子之后,我仍然无法清楚地理解Java进程的语法.

是否有一些简单的例子,比如使用ANTLR实现的四操作计算器,通过解析器定义并一直到Java源代码?

java antlr antlr3 antlr4

223
推荐指数
3
解决办法
13万
查看次数

C++数组初始化

这种形式是将数组初始化为全0

char myarray[ARRAY_SIZE] = {0} 所有编译器都支持?,

如果是这样,是否有类似于其他类型的语法?例如

bool myBoolArray[ARRAY_SIZE] = {false} 
Run Code Online (Sandbox Code Playgroud)

c++ syntax

77
推荐指数
2
解决办法
11万
查看次数

如何使用std :: string创建条件断点

假设我有这个功能:

std::string Func1(std::string myString)
{
   //do some string processing 
   std::string newString = Func2(myString)
   return newString;  
}
Run Code Online (Sandbox Code Playgroud)

如何在newString具有特定值时设置条件中断?(不改变来源)

设定条件 newString == "my value"

没有工作断点被禁用,错误"找不到重载的运算符"

debugging conditional-breakpoint visual-studio

70
推荐指数
6
解决办法
5万
查看次数

ruby以四个为一组的数组元素工作

当每个元素需要处理时,我有一个ruby脚本数组:

threads = []
elemets.each do  |element|
    threads.push(Thread.new{process(element)}}
end
threads.each { |aThread|  aThread.join }
Run Code Online (Sandbox Code Playgroud)

然而,由于资源限制,如果一次不再处理四个元素,则脚本以最佳方式工作.

不,我知道我可以转储每个循环并使用一个变量来计算4个元素,然后等待,但是有一个更酷的红宝石方式吗?

ruby

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

Ruby:如何跨多行初始化数组

我有一个小的Ruby脚本,其中一个数组被初始化以保存一些字符串

MyArray = ["string 1", "string 2" , "string 2" ]
Run Code Online (Sandbox Code Playgroud)

问题是我在初始化列表中有很多字符串,我想打破这一行:

MyArray = [
            "string 1"
           ,"string 2" 
           ,"string 2"
          ]
Run Code Online (Sandbox Code Playgroud)

但Ruby标记了这种格式的语法错误我尝试在每行的末尾添加"\"而没有任何成功.

如何在Ruby中完成?

ruby syntax

23
推荐指数
3
解决办法
2万
查看次数

是删除p其中p是指向数组的指针始终是内存泄漏吗?

在软件会议中进行讨论之后,我已经着手查明是否删除带有plain的动态分配的primitives数组delete会导致内存泄漏.

我编写了这个小程序并使用在Windows XP上运行的visual studio 2008进行编译:

#include "stdafx.h"
#include "Windows.h"

const unsigned long BLOCK_SIZE = 1024*100000;
int _tmain()
{
    for (unsigned int i =0; i < 1024*1000; i++)
    {
        int* p = new  int[1024*100000];
        for (int j =0;j<BLOCK_SIZE;j++) p[j]= j % 2;
        Sleep(1000);
        delete p;
    }
}
Run Code Online (Sandbox Code Playgroud)

我比使用任务管理器监视我的应用程序的内存消耗,令人惊讶的是内存被正确分配和释放,分配的内存没有像预期的那样稳定增加

我修改了我的测试程序来分配一个非原始类型的数组:

#include "stdafx.h"
#include "Windows.h"


struct aStruct
{
    aStruct() : i(1), j(0) {}

    int i;
    char j;
} NonePrimitive;

const unsigned long BLOCK_SIZE = 1024*100000;
int _tmain()
{
    for (unsigned int …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

7
推荐指数
2
解决办法
2276
查看次数

Spring Websocket-如何检测客户端断开连接

我是春天的新手

我有这个课:

public class Server extends TextWebSocketHandler implements WebSocketHandler {

    WebSocketSession clientsession;
    @Override
    public void handleTextMessage(WebSocketSession session, TextMessage message) {

        clientsession = session;

    }
Run Code Online (Sandbox Code Playgroud)

我需要在clientsession上检测到客户端断开连接。实现ApplicationListener,但不清楚如何注册监听器?我需要在我的web.xml中执行此操作吗?

spring websocket spring-websocket

4
推荐指数
3
解决办法
9865
查看次数

Lark 如何描述一系列可选 token

我正在解析一个文件,其格式可以包括:

INT32  price   min 10  max 100   alertIfSold ; 
Run Code Online (Sandbox Code Playgroud)

min、max 和alertIfSold 令牌都是可选的,并且可以按任何顺序出现。那是

INT32  price    max 100   alertIfSold ; 
INT32  price  max 100   min 10    alertIfSold ;
INT32  price  alertIfSold ;
INT32  price; 
Run Code Online (Sandbox Code Playgroud)

都是有效的例子。

下面是我正在测试的语法的简单版本。运行 python test.py 会生成此错误:

lark.common.ParseError:检测到无限递归!(规则 <__anon_star_1 : __anon_star_1>)

我尝试使用其他语法规则表达相同的可选标记,并获得类似的结果(无限递归)。

表达可选参数的正确语法是什么?

#test.py
from lark import lark

simplified_grammar = """
    start: line+
    line:  TYPE  CNAME [MIN MAX ALERT]* ";"    -> foo

     TYPE: "INT32" | "INT64"

     MIN: "min" /[0-9]+/
     MAX: "max" /[0-9]+/
     ALERT: "alertIfSold"

     %import common.CNAME
     %import common.WS
     %ignore WS …
Run Code Online (Sandbox Code Playgroud)

python grammar lark-parser

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

Windows API:调用API函数有多贵?

调用API函数是否被视为昂贵的操作?(当将它与作为我的应用程序一部分的函数调用进行比较时)
我理解一些API函数会导致内核模式的跳跃,但对所有这些函数都是如此吗?

更具体一点:调用GetThreadId函数有多贵 ?

winapi

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

简单的通配符与std :: string匹配

我有以下格式的std :: string

std::string s = "some string with @lable"   
Run Code Online (Sandbox Code Playgroud)

我必须找到'@'的所有实例然后在'@'之后找到标识符,这个ID有一个值(在这种情况下'lable'在查找表中存储.我将替换@和具有找到值的id.

例如,假设在标签字符串的过程之后,ID标签的值为"1000":

"some string with 1000"
Run Code Online (Sandbox Code Playgroud)

我的第一个版本使用了boost :: regex,但是在我被告知在接下来的几个版本中不允许使用新的lib之后我不得不抛弃它.

那么使用vanilla std :: string和std算法有一些优雅的方法吗?

c++ string stl

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