相关疑难解决方法(0)

C++语法上下文的任何部分都是敏感的吗?

可能重复:
C++是无上下文还是上下文相关?

对于熟悉编译器的人来说,这可能是一个愚蠢的问题,但老实说我对答案一无所知.

C++语法是上下文敏感的吗?换句话说,C++语法是否无法用无上下文语法表达?

很明显,C++ 使用常规解析工具解析的,并且解析并不是特别无效(!),但我确实记得读过这个(我不记得在哪里),我想我会在传播之前直接了解社区谎言......也许C++的一个子集是CS?也许新的规格?任何帮助表示赞赏.

编辑:感谢所有的回复.但是,为了完整起见,编译的哪个部分处理歧义?CFG是一种语法,在规则的左侧只有一个非终端符号(例如A->zC),CSG是在左侧有一个终端(加上一个非终端)的语法(aAv->QT),其中大写字母是非终结符,小写是终结符.在解析 C++源代码的语法中是否有像后者那样的表示?

c++ parsing

21
推荐指数
0
解决办法
4726
查看次数

没有括号的for循环的绝对范围是多少?

我有一个程序,它使用for循环检查条件语句并对数据集运行测试,其中大多数是一个if可能分支的线性语句.我的问题是带括号的for循环如何决定范围内外的内容?例如:

我的程序中的for循环:

for( i =0; i < (sizeof(exact_roots) / sizeof(bn_comlplex)); i++){
        if(fabs(roots[k].re - exact_roots[i].re) < 0.00001 && fabs(roots[i].im - exact_roots[i].im) < 0.00001)
            rootmatch++;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下需要括号?for循环会将第三行视为for循环的一部分还是丢弃它并给我一个编译错误?

如果没有括号的for循环的极端情况怎么样,循环如何处理呢?

for(i = 0; i < num; i++)
    if(something)
        ....
    else //is this still considered apart of the loop?
        ....
Run Code Online (Sandbox Code Playgroud)

c scope

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

标签 统计

c ×1

c++ ×1

parsing ×1

scope ×1