如何转义 TT2 中的 [ 和 % 字符
How to escape [ and % characters in TT2
我正在使用 TT2。我想从我的模板文件中打印 something[%0d]
。但是我似乎找不到任何用于模板工具包使用的转义字符。
关于如何跳过要在 TT
下处理的 %
和 [
有什么建议吗?
确切的行是:
printer.print_object(.name($sformatf("[% item %]_slv_agent_cfg[%0d]:", i)), .value([% item %]_slv_agent_cfg[i]));
提前致谢
If I'm using TT to write out a TT template, is there a good way to escape [% and %]?
所以 something[\%0d]
应该可以。
你可以使用
[% "[%" %]
代替
[%
看起来像这样:
$ tpage <<<'slv_agent_cfg[% "[%" %]0d]'
slv_agent_cfg[%0d]
$ tpage <<<'slv_agent_cfg[% "[%0d]" %]'
slv_agent_cfg[%0d]
一个较短的解决方案是使用
[[%%]%
代替
[%
看起来像这样:
$ tpage <<<'slv_agent_cfg[[%%]%0d]'
slv_agent_cfg[%0d]
如果你发现自己需要转义的实例太多,你可以切换tag style。
最后,您可以更改程序以首先避免序列。例如,您可以替换
"slv_agent_cfg[%0d]"
和
"slv_agent_cfg[\%0d]"
或
{"slv_agent_cfg[","%0d]"}
我不懂 Verilog,所以具体细节可能不正确,但你明白了。
我正在使用 TT2。我想从我的模板文件中打印 something[%0d]
。但是我似乎找不到任何用于模板工具包使用的转义字符。
关于如何跳过要在 TT
下处理的 %
和 [
有什么建议吗?
确切的行是:
printer.print_object(.name($sformatf("[% item %]_slv_agent_cfg[%0d]:", i)), .value([% item %]_slv_agent_cfg[i]));
提前致谢
If I'm using TT to write out a TT template, is there a good way to escape [% and %]?
所以 something[\%0d]
应该可以。
你可以使用
[% "[%" %]
代替
[%
看起来像这样:
$ tpage <<<'slv_agent_cfg[% "[%" %]0d]'
slv_agent_cfg[%0d]
$ tpage <<<'slv_agent_cfg[% "[%0d]" %]'
slv_agent_cfg[%0d]
一个较短的解决方案是使用
[[%%]%
代替
[%
看起来像这样:
$ tpage <<<'slv_agent_cfg[[%%]%0d]'
slv_agent_cfg[%0d]
如果你发现自己需要转义的实例太多,你可以切换tag style。
最后,您可以更改程序以首先避免序列。例如,您可以替换
"slv_agent_cfg[%0d]"
和
"slv_agent_cfg[\%0d]"
或
{"slv_agent_cfg[","%0d]"}
我不懂 Verilog,所以具体细节可能不正确,但你明白了。