我已经使用模板工具包扩展现有的域专用语言(verilog)超过3年了.总体来说,我很高兴,主要的刺激是当有语法/ undef错误时,错误消息不包含正确的行号信息来调试错误.
例如我会收到一条消息,指出“0没有定义”,因为我将使用[%x.0%]和文件中的多个位置的类似结构来确定哪一行有问题变得困难.
TT3似乎在无限期地开发
我对大师的问题是TT有更好的选择.我的要求是
>支持复杂数据结构
>良好的错误报告和调试功能.
>稳定且经过验证(无alpha / beta级引擎)
>可扩展(插件等)
>不应该限于给定的语言(html等)
>支持IF / Else,循环(foreach while),循环索引等.
优选地perl
>从模板中支持数据转储器或等效的插件是一个加号
解决方法
我正在试验
Template::Alloy,而且似乎总体而言,TT的替代品.
Template::Alloy::TT列出了TT和Alloy之间的差异,其中大部分是“这种工作/允许在合金中,但不在TT中”.解决您的具体问题,列表包括:
- Alloy has better line information
When debug dirs is on,directives on different lines separated by
colons show the line they are on rather than a general line range.Parse errors actually know what line and character they occured at.