我想知道语法规范和语义分析之间的界限在哪里。哪个更好:使用详细的语法描述还是将细节留到语义阶段?例如:设想一种像C#这样的具有枚举类型的OO语言,它可以从原始类型“派生”
enum X : int { a = 1 }
现在,枚举的基本类型的正确性(在这种情况下:原始类型还是非原始类型)应该是语法检查或语义分析的主题吗?
我正在检查不同C程序中的错误,并对它们进行区分。
目前,我很困惑这段代码中存在哪种类型的错误。
#include <stdio.h>
int main(void) {
in/*hello*/z;
double/*world*/y;
printf("hello world");
return 0;
}
当我运行这个程序时,我得到的编译错误如下:
prog.c: In function 'main':
prog.c:4:5: error: unknown type name 'in'
in
我使用用Antlr4编写的来生成C++目标解析器。
它有一些用Java编写的动作代码,所以我需要将它转换成C++以便它可以编译。
对于下面的代码,我不理解它的含义:
fragment
IdentifierStartChar
: // these are the valid identifier start characters below 0x7F
[a-zA-Z_]
| // these are the valid characters from 0x80 to 0xFF
[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F
我正在设计一种新的编程语言。
我正在设计一个语法来实现查询。目前它就是这样工作的。
数据库可以通过实体对象.
访问
在这个示例中,我有"entity.manufacturers“和"entity.products”表
要获得ID为1的制造商,请执行以下操作:
var @manufacturer = entity.manufacturers where id = 1;
查询“制造商”的所有产品:
// Get all manufacturers products
var @products = entity.products under @manufact