我如何能够使用不同的命令名而不是现有的命令编写C代码,还能获得不同的编译警告,错误等?
例如,替换' while'使用&foffar'循环声明,以便:
foobar (i<10) i++;
将充当:
while (i<10) i++;
并从以下位置替换编译错误消息:
prog.c:4:2: error: 'i' undeclared
为:
prog.c:4:2: banana kiwi: 'i' orange apple tomato
用例是基于英语以外的人类语言制作C语言。
答案 0 :(得分:1)
对于输入语言,您可以使用宏来定义事物的备用名称。
#define foobar int
或者更好地使用typedef
作为类型。
typedef int foobar;
这些都不会从命名空间中删除int
。
如果编译器是使用语法文件和编译器编译器编写的,那么您可以编辑语法中的关键字以更改名称而不引入新名称。这将是.yacc或.bison或.antlr或sthg文件。
对于错误消息,这些消息将被编入编译器或字符串或配置文件中。您必须编辑这些文件,或者更好地复制到新的语言环境变体并进行修改。
或者使用用error
替换banana kiwi
的过滤器运行编译器。 sed,awk,m4 - 替换的许多常用工具。
答案 1 :(得分:0)
要为类型提供别名,您可以使用typedef
:
typedef int foobar;
foobar i; // is a int
关于错误消息,它更复杂,并且在编译器代码中......