gpt4 book ai didi

c - 什么时候使用解析器生成器是可行的?

转载 作者:太空狗 更新时间:2023-10-29 14:58:14 24 4
gpt4 key购买 nike

我正在为我正在编写的网络应用程序编写一种简单的文本模板语言(想想谷歌的 ctemplate)。完成后,它将仅包含少量可能的操作,简单的内容,如“评估和执行”、“评估和打印”、“评估和转义 html”、“评论”。我正在考虑从头开始手写整个解析器,但我开始研究像 lex、flex 和 antlr 这样的解析器生成器。这些看起来比我简单语法所需的要多得多。所以问题是,在什么时候使用解析器生成器是可行的?

最佳答案

越早越好。如果你现在有一个简单的语法,那么使用解析器生成器就很容易了。当您想要添加变量、循环和条件时,它会让事情变得更容易。

但是等等! - 没有理由去发明自己的语言,除非它像 eqnTeX 这样非常特定领域 或分子建模语言。你最好嵌入一种专门为此目的设计的语言。 Tcl是那个领域的老 guard ,有Python是一个强有力的竞争者。 Perl 也被设计为一种嵌入式脚本语言,但我认为它不是一个很好的候选者,因为它可能会在您的用户手中产生非常“只写”的代码。

语言设计很难,抽出所有繁琐的部分更难。使用 Python 和 Tcl,您可以决定向用户公开多少核心语言,并在您发现需要时打开封闭的部分。

我编写的第一个小语言(令人惊讶的是它仍在生产中使用)如果 Tcl 在那里使用会好得多。

关于c - 什么时候使用解析器生成器是可行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com