Flex 词法分析器在输出 .lex.c 文件中修改常量
Flex lexer modifying constant in output .lex.c file
我正在使用 flex 来生成自定义语言。我想知道是否有可能以某种方式添加一个设置,该设置将更改生成的 .lex.c 文件的一部分。
也就是说,flex 生成的一部分代码是 yy_accept 中的数组,在我的例子中有 ~1500 个元素:
static const flex_int16_t yy_accept[1453] =
{ 0,
122, 122, ...
我想将自动生成的某些变量设置为存储在我的arduino板的闪存中。例如,C 中的库强制将变量存储在 FLASH 中,结果如下:
FLASH static const flex_int16_t yy_accept[1453] =
{ 0,
122, 122, ...
现在我需要在任何地方手动更改它。可以通过某些选项自动完成吗?或者也许可以将所有变量重定向到 FLASH 中?
好的,经过一些研究和多次尝试,我坚持使用 sed 编辑器并在 make 文件中添加 post 处理作为命令,所以这是示例解决方案:
sed -i "s/static const/FLASH static const/g" "myFile.cpp"
del sed* /a /s
第 2 行删除由 sed 创建的临时文件。
我正在使用 flex 来生成自定义语言。我想知道是否有可能以某种方式添加一个设置,该设置将更改生成的 .lex.c 文件的一部分。 也就是说,flex 生成的一部分代码是 yy_accept 中的数组,在我的例子中有 ~1500 个元素:
static const flex_int16_t yy_accept[1453] =
{ 0,
122, 122, ...
我想将自动生成的某些变量设置为存储在我的arduino板的闪存中。例如,C 中的库强制将变量存储在 FLASH 中,结果如下:
FLASH static const flex_int16_t yy_accept[1453] =
{ 0,
122, 122, ...
现在我需要在任何地方手动更改它。可以通过某些选项自动完成吗?或者也许可以将所有变量重定向到 FLASH 中?
好的,经过一些研究和多次尝试,我坚持使用 sed 编辑器并在 make 文件中添加 post 处理作为命令,所以这是示例解决方案:
sed -i "s/static const/FLASH static const/g" "myFile.cpp"
del sed* /a /s
第 2 行删除由 sed 创建的临时文件。