gpt4 book ai didi

java - 从antlr token 生成代码

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:59 24 4
gpt4 key购买 nike

我们目前正在尝试使用antlr 生成新代码。我们有一个几乎可以识别所有内容的语法文件。现在,我们的问题是我们希望能够使用我们生成的 token 再次创建代码来创建这个新文件。

我们有一个包含 token 的 .txt 文件,如下所示:

[@0,0:6='       ',<75>,channel=1,1:0]
[@1,7:20='IDENTIFICATION',<6>,1:7]
[@2,21:21=' ',<75>,channel=1,1:21]
[@3,22:29='DIVISION',<4>,1:22]
[@4,30:30='.',<3>,1:30]
[@5,31:40='\n \t ',<75>,channel=1,1:31]
[@6,41:50='PROGRAM-ID',<16>,2:9]
[@7,51:51='.',<3>,2:19]
[@8,52:52=' ',<75>,channel=1,2:20]
[@9,53:59='testpro',<76>,2:21]
[@10,60:60='.',<3>,2:28]
[@11,61:70='\n \t ',<75>,channel=1,2:29]
[@12,71:76='AUTHOR',<31>,3:9]
[@13,77:77='.',<3>,3:15]

或者是否有另一种方法可以使用 token 创建旧代码?

提前致谢,维克托

最佳答案

使词法分析器输出可移植的最直接方法是序列化词法分析器的标记化输出以进行传输和存储。您同样可以序列化整个解析器生成的解析树。无论哪种情况,您都将捕获源输入的全文。

词法分析器流对象的内在复杂性是单个类。解析树对象的复杂性也很小,只涉及少数标准类。因此,序列化和反序列化的复杂性几乎完全是解析源输入大小的线性函数。

Google Gson是一个简单易用、速度相对较快的Java对象序列化库。

如果您的解析器正在生成已解析源输入的一些中间表示,您可以使用定义的记录序列化库(如 Google FlatBuffers)直接传输 IR保存和恢复 IR 模型实例。

关于java - 从antlr token 生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29623682/

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