繁体   English   中英

C ++中的未知类型的宏

[英]Unknown type of macro in C++

在查看用C ++编写的软件(openFOAM)的语言时,我注意到了一些东西。 就像

field value;

例如,

temperature 25;

我不知道这是如何工作的。 我的意思是在不使用等号的情况下如何将温度设置为25。 任何想法?

因为openFOAM具有可理解该格式的解析器。

这样的解析器并不难制作,C ++(借助yacc,bison等解析器生成器工具)是解析器的一种流行选择,因为它可以非常快。

C ++是图灵完备的语言,因此它可以执行任何其他语言可以执行的操作。 具体来说,它可以处理看起来不像C ++代码的数据。

编程语言通常是上下文无关的。 如果语言是上下文无关的,则可以对其进行解析(我不会说这很简单,但这是一个已经被解决了很多次的问题,如果您选择编译器类,则必须使用简单的语言来解决)。

解析器只是在寻找格式field value;的声明field value; 似乎没有进行类型检查,因此它只是在半冒号上然后在空格上分开。 如果您对解析源代码感兴趣,请阅读有关解析上下文无关语言,下推自动机和上下文无关语法的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM