标签: stringtemplate

ANTLR 3中wikitext-to-HTML的工作示例

我正试图在ANTLR 3中充实wiki文本到HTML的翻译,但我一直陷入困境.

你知道一个我可以检查的工作实例吗?我尝试了MediaWiki ANTLR语法和Wiki Creole语法,但是我无法让它们在ANTLR 3中生成词法分析器和解析器.

以下是我尝试使用的两个语法的链接:

我无法获得这两个中的任何一个来生成我的Java Lexer和Parser.(我使用ANTLR3作为Eclipse插件).MediaWiki需要花费很长时间来构建,然后在某些时候抛出OutOfMemory异常.另一个有错误,我不知道如何调试.

编辑:好的,我有一个非常基本的语法:

grammar wikitext;

options {
  //output = AST;
  //ASTLabelType = CommonTree;
  output = template;
  language = Java;
}

document: line (NL line?)*;

line: horizontal_line | list | heading | paragraph;

/* horizontal line */
horizontal_line: HRLINE;

/* lists */
list: unordered_list | ordered_list;

unordered_list: '*'+ content;
ordered_list: '#'+ content;

/* Headings */
heading: heading1 | heading2 | heading3 | heading4 | heading5 | heading6;
heading1: H1 …
Run Code Online (Sandbox Code Playgroud)

mediawiki antlr stringtemplate wikitext creole

2
推荐指数
1
解决办法
1818
查看次数

StringTemplate:在生成Javascript数组时跳过尾随昏迷

我在StringTemplate 4中生成了一个Javascript数组,但我在跳过最后一个元素之后的尾随昏迷时遇到了麻烦.每个项目都是使用模板生成的,然后我想用comas将它们分开,以便在表单中创建一个数组:

[ item1, item2, item3, item4 ]
Run Code Online (Sandbox Code Playgroud)

目前,我生成此阵列的最佳方法是:

array(elems) ::= <<
  [ 
    $first(elems):elem_noComa()$
    $rest(elems):elem()$
  ]
>>

elem_noComa(el) ::= <<  { ...element generation... } >>

elem(el) ::= <<
  , $elem_noComa(el)$
>>
Run Code Online (Sandbox Code Playgroud)

有没有办法更容易/更短的形式?

stringtemplate stringtemplate-4

2
推荐指数
1
解决办法
261
查看次数

是否可以成功将传递程序集引用与ILMerge合并?

我正在尝试使用ILMerge将一些可传递引用的程序集内化到我正在引用的程序集中,以消除与我的项目中的那些传递依赖项的冲突.

特别是,我引用了Antlr3.StringTemplate(以下简称AS,可在此处获取:http://www.stringtemplate.org/download.html).它引用了Antlr3.Runtime.Debug(ARD)和Antlr3.Runtime(AR).ARD本身也引用了AR.在ASCII艺术中,那是:

AS ---> ARD
\        |
 \       v
  \---> AR
Run Code Online (Sandbox Code Playgroud)

因为我正在使用的另一个程序集NHibernate 2.1依赖于不同的,不兼容的AR版本,我想使用ILMerge将AR合并并内化到AS中.从理论上讲,我认为这应该有效; 但是,我在执行理论时遇到了麻烦.

无论我尝试什么样的排列和选项,我最终都会遇到以下形式的错误:

ILMerge.Merge:程序集'Antlr3.Runtime.Debug'未正确合并.它仍然在目标程序集中列为外部引用.

我想用ILMerge完成的是什么?

.net ilmerge antlr stringtemplate

1
推荐指数
2
解决办法
3339
查看次数

在Antlr中使用StringTemplate

我会遇到这个问题:给出这个规则

   defField: type VAR ( ',' VAR)* SEP ;  

   VAR : ('a'..'z'|'A'..'Z')+ ;

   type: 'Number'|'String' ;

   SEP : '\n'|';' ;
Run Code Online (Sandbox Code Playgroud)

我需要做的是将模板与规则"defField"相关联,该规则返回表示字段的xml-schema的字符串,即:

   Number a,b,c ;-> "<xs:element name="a" type = "xs:Number"\>" ,also for b and c.
Run Code Online (Sandbox Code Playgroud)

我的问题出现在Kleene的*中,也就是说,如何根据'*'编写模板来执行上面描述的操作?

谢谢!!!

templates antlr stringtemplate antlr3

1
推荐指数
1
解决办法
4180
查看次数

如何摆脱StringTemplate警告"\n in string"

我正在使用StringTemplate 4生成一些Java源文件.

模板非常简单,例如:

QueryHandler(method) ::="
public class Obtenir<method.name>Handler extends QueryHandler\<List\<<method.name>Db>> implements IQueryHandler\<List\<<method.name>>>{
    private IQuery\<List\<<method.name>Db>> query;
    private <method.name>Converter converter;

    @Inject
    public Obtenir<method.name>Handler(IQuery\<List\<<method.name>Db>> query, <method.name>Converter converter, IStatisticsCollecter theStatsCollecter){
        super(theStatsCollecter);
        if(query == null){
            throw new IllegalArgumentException(\"The query argument cannot be null\");
        }
        if(converter == null){
            throw new IllegalArgumentException(\"Illegal argument for converter(null)\");
        }
        this.query = query;
        this.converter = converter;
    }

    public List\<<method.name>> handle(Object... params) throws JdbcException {
        final String method = \"obtenir<method.name>\";
        DaoQueryStatusCallable status = new DaoQueryStatusCallable();
        List\<<method.name>Db> result = invoke(query, status, method);
        return …
Run Code Online (Sandbox Code Playgroud)

stringtemplate stringtemplate-4

1
推荐指数
1
解决办法
777
查看次数

StringTemplate与StringTemplateGroup

我成功使用StringTemplate 4在Visual Studio中进行代码生成.我已经安装了StringTemplate和ANTLR的扩展,它们非常棒.

在测试中,我可以弄清楚如何使用*.st4(StringTemplate)文件,但是如何使用*.stg(StringTemplateGroup)文件逃避了我.它是可以嵌入到另一个StringTemplate中的定义集合吗?如果是这样,那么从*.stg而不是*.st4生成的代码是什么样的?

c# antlr stringtemplate visual-studio

1
推荐指数
1
解决办法
3486
查看次数

StringTemplate格式化列表中的最后一项

我使用StringTemplate生成源代码,我需要渲染一个我想要的语句列表但最后用"; \n"分隔,但格式化最后一个要包装在"返回项目中; \n"我可以实现这个在模板中还是我必须手动进行一些预处理?

$call.stmts:{$it$;} ;separator="\n"$ 
Run Code Online (Sandbox Code Playgroud)

目前我正在使用上述内容.

java string stringtemplate

0
推荐指数
1
解决办法
1305
查看次数

StringTemplate比纯字符串连接慢吗?

StringTemplate insert = new StringTemplate("insert $table$ values($value;separator=\",\"$)");
int testSize = 10000;
for(int i=0;i<testSize;i++) {           
    insert.setAttribute("table", "aTable");
    String[] vs = {"1", "1", "'aaa'", "'bbb'"};
    for(int j = 0;j < vs.length;j++){   
        insert.setAttribute("value", vs[j]);    
    }
    insert.toString();  
    insert.reset(); 
}   
Run Code Online (Sandbox Code Playgroud)

上面会比普通的StringBuilder慢大约5倍....

int testSize = 10000;
StringBuilder sb= new StringBuilder(100);
for(int i=0; i<testSize; i++) {
    sb.append("INSERT ").append("aTable (");
    String[] v = {"1", "1", "'aaa'", "'bbb'"};
    for(int j=0; j<v.length; j++) { 
        if(j > 0) {
        sb.append(",");
        }
        sb.append(v[j]);    
    }
    sb.append(")");
    sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

关于如何提高StringTemplate效率的任何想法或建议?谢谢!StringTemplate似乎在每个令牌上调用toString(),对吗?

java performance stringtemplate

0
推荐指数
1
解决办法
684
查看次数

如何在`StringTemplate4`中重置`ST`实例?

版本3中的StringTemplate实例有一个.reset()方法.

我在for/each循环内部生成并希望在每个循环结束时将实例重置为其默认状态.我搜索了JavaDoc,但无法找到如何重置实例ST以重用它.

你如何重置一个ST实例StringTemplate4

stringtemplate stringtemplate-4

0
推荐指数
1
解决办法
324
查看次数