小编Chr*_*ris的帖子

LR1 解析器和 Epsilon

我试图了解 LR1 解析器的工作原理,但我想到了一个奇怪的问题:如果语法包含 Epsilons 怎么办?例如:如果我有语法:

S -> A
A -> a A | B
B -> a
Run Code Online (Sandbox Code Playgroud)

很清楚如何开始:

S -> .A
A -> .a A 
A -> .B
Run Code Online (Sandbox Code Playgroud)

... 等等

但我不知道如何为这样的语法做到这一点:

S -> A
A -> a A a | \epsilon
Run Code Online (Sandbox Code Playgroud)

这样做是否正确:

S -> .A
A -> .a A a
( A -> .\epsilon )
Run Code Online (Sandbox Code Playgroud)

然后让 DFA 中的这个状态接受?

任何帮助将不胜感激!

parsing compiler-theory lr1

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

拆分包含电子邮件地址的列

我想在"@"处拆分包含emailaddresses的列.

d$domain<-strsplit( d$email, "@")[[1]]
Run Code Online (Sandbox Code Playgroud)

不行.这样做的正确方法是什么?

r

5
推荐指数
3
解决办法
1885
查看次数

R计数字符列

我想在同一行的不同列中添加一个包含字母数量az的列.

dataset$count <-length((gregexpr('[a-z]', as.character(dataset$text))[[1]]))
Run Code Online (Sandbox Code Playgroud)

不起作用.

结果我想实现:

text  |  count
a     |  1
ao    |  2
ao2   |  2
as2e  |  3
as2eA |  3
Run Code Online (Sandbox Code Playgroud)

r

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

相互排斥问题

请看下面的伪代码:

boolean blocked[2];
int turn;
void P(int id) {
      while(true) {
             blocked[id] = true;
             while(turn != id) {
                    while(blocked[1-id])
                    /* do nothing */;
                    turn = id;
             }
             /* critical section */
             blocked[id] = false;
             /* remainder */
      }
}
void main() {
      blocked[0] = false;
      blocked[1] = false;
      turn = 0;
      parbegin(P(0), P(1)); //RUN P0 and P1 parallel
}
Run Code Online (Sandbox Code Playgroud)

我认为可以使用上面的代码实现一个简单的Mutual-Exclution解决方案.但它不起作用.有谁知道为什么?

真的很感激任何帮助!

mutex

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

用于调整图像大小的Shell脚本

有没有办法调整目录中的所有图像大小?

如果我将最大尺寸设置为800x600,则会使较大的尺寸变小,并将较小的尺寸设置为原始尺寸.

bash image-manipulation

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

Java:谷歌地图的替代品

我真的厌倦了使用Google Web Toolkit使用Netbeans访问Java中的谷歌地图......有没有人知道提供简单(r)API的好方法?

真的很感激任何帮助!

java api maps

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

重构如果(... instanceof ...)

我目前正在尝试重构一个看起来像这样的项目的一部分:

很多班

 B extends A; C extends A; D extends C; E extends B; F extends A; ...
Run Code Online (Sandbox Code Playgroud)

在代码的某处:

if (x instanceof B){
 B n = (B) x;
 ...
}else if (x instanceof C){
 C n = (C) x;
 ...
}else if (x instanceof D){
 D n = (D) x;
 ...
}else if (x instanceof E){
 E n = (E) x;
 ...
}else if (x instanceof G){
 G n = (G) x;
 ...
}...
Run Code Online (Sandbox Code Playgroud)

上面的if-construct目前位于一个CC为19的函数中.现在我的问题是:我可以将这个if-construct拆分为多个函数并让Java的OO做神奇吗?或者有什么捕获我需要注意的?

我的想法:

private void oopMagic(C obj){ …
Run Code Online (Sandbox Code Playgroud)

java oop

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

C指针混乱

我想在内存中存储一​​个字符串并稍后阅读:

$$->desc.constant->base.id =  (char*)malloc(200);
sprintf($$->desc.constant->base.id, "%f", $1);
printf("->%s\n", $$->desc.constant->base.id); //LINE A
printf("->%i\n", $$->desc.constant); //LINE B

//SOME OTHER CODE

//Then, later on in a function call:

printf("%i", expr->desc.constant); // LINE D
printf("%s", expr->desc.constant->base.id); // LINE C
Run Code Online (Sandbox Code Playgroud)

尽管B行和D行显示相同的地址,但C行中的printf失败并出现Segmentation故障.我错过了什么?

真的很感激任何帮助!

c struct pointers segmentation-fault

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

SQL:递归路径

是否可以在SQL中创建"树解析器"?

我有一张桌子:

ID Name Parent
1  a
2  b    1
3  c    1
4  d    3
Run Code Online (Sandbox Code Playgroud)

现在我想要一个返回的SQL查询:

ID   PATH
1    /a
2    /a/b
3    /a/c
4    /a/c/d
Run Code Online (Sandbox Code Playgroud)

这可能与SQL有关吗?它会让我更容易.真的很感激任何帮助!

sql tree

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

生成可能的组合

我有几个哈希映射,我需要生成以下组合:

A: [x->1, y->2,...]
B: [x->1, a->4,...]
C: [x->1, b->5,...]
...
Run Code Online (Sandbox Code Playgroud)

一些可能的组合:

A+B; A; A+C; A+B+C...
Run Code Online (Sandbox Code Playgroud)

对于每个组合,我需要生成联合散列映射,并在两个散列映射中使用相同的键执行键值对的操作.

我能想到的就是使用二进制计数器并将数字映射到相应的哈希映射:

001 -> A
101 -> A,C
...
Run Code Online (Sandbox Code Playgroud)

虽然这个解决方案有效,但当我有超过100个哈希映射时,模运算很耗时.我是Scala的新手,但我相信必须有更好的方法来实现这一目标吗?

scala

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

标签 统计

java ×2

r ×2

api ×1

bash ×1

c ×1

compiler-theory ×1

image-manipulation ×1

lr1 ×1

maps ×1

mutex ×1

oop ×1

parsing ×1

pointers ×1

scala ×1

segmentation-fault ×1

sql ×1

struct ×1

tree ×1