gpt4 book ai didi

c - YACC 文件是否有文件包含机制?

转载 作者:行者123 更新时间:2023-12-05 01:35:09 25 4
gpt4 key购买 nike

我有三个程序目前正在使用 YACC 文件进行配置文件解析。为简单起见,它们都读取相同的配置文件,但是,它们各自对键/值的响应是唯一的(因此同一个 .y 文件不能用于超过 1 个程序)。最好不要重复 %token每个人的声明 - 如果我想添加一个 token ,我必须更改 3 个文件?现在是哪一年??

这些方法不起作用或给我带来问题:

  1. C 预处理器显然是在我们 YACC 文件之后运行的,所以 #include对于 #define否则其他宏将不起作用。

  2. 我尝试使用 sed 编写类似的脚本:

REPLACE_DATA=$(cat <file>)

NEW_FILE=<file>.tmp

sed 's/$PLACEHOLDER/$REPLACE_DATA/g' <file> > $NEW_FILE

然而,它似乎正在剥离我在 REPLACE_DATA 中的换行符然后不替换 $PLACEHOLDER 的实例而不是替换变量的内容 PLACEHOLDER .

YACC 中是否有真正的包含机制,或者是否有其他我遗漏的解决方案?这是一场维护噩梦,我希望其他人也遇到过类似情况。提前致谢。

最佳答案

这是来自 http://www.grymoire.com/Unix/Sed.html#uh-37 的 sed 版本

#!/bin/sh
# watch out for a '/' in the parameter
# use alternate search delimiter
sed -e '\_#INCLUDE <'"$1"'>_{
r '"$1"'
d
}'

但传统上,我们在 yacc 之前使用 m4 预处理器。

关于c - YACC 文件是否有文件包含机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687789/

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