Antlr的问题,请研究过的朋友进来看一看

warriormark 2016-07-01 01:30:21
目标:做一个伪代码翻译的工作,从sp(原生C和伪码)翻译成标准C.sp中非伪码的部分原封不动的照搬。用的Antlr V4。
sp:
int main()
{
int a = 0;
-Export()//伪码
return 0;
}

生成的标准c:
int main()
{
int a = 0;
MyExport();//翻译后
return 0;
}

g4:
prog: myStat* |
cppStat* ;

myStat : EXPORTFUNC;

cppStat : OtherLine ;

EXPORTFUNC : '-Export()';

OtherLine : OTHER* (NL|EOF);
fragment OTHER :~[\r\n]+ ;

问题:我的思路是把sp按照一行一行的分割,然后cppStat匹配源码,myStat匹配伪码。结果sp中"-Export()"匹配不到myStat,其他行能正确匹配。
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
warriormark 2016-07-04
  • 打赏
  • 举报
回复
订一下,求助求助
warriormark 2016-07-01
  • 打赏
  • 举报
回复
(prog (cppStat int main()\r\n) (cppStat {\r\n) (cppStat \tint a = 0;\r\n) -Export\r\n //没有匹配到myStat (cppStat \taaaaa\r\n) (cppStat }\r\n) \r\n)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧