登录
首页 >  文章 >  java教程

ANTLR加减乘除运算语法报错:如何定义INT规则解决问题?

时间:2024-12-10 14:46:03 427浏览 收藏

对于一个文章开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《ANTLR加减乘除运算语法报错:如何定义INT规则解决问题?》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

ANTLR加减乘除运算语法报错:如何定义INT规则解决问题?

antlr语法报错分析及解决

问题:使用antlr实现加减乘除运算时,语法一直报错。

原因:


未能定义 int 规则。

解决方法:

添加以下代码来定义 int 规则:

fragment digits
    : [0-9] ([0-9_]* [0-9])?
    ;
int:    ('0' | [1-9] (digits? | '_'+ digits));

完整语法:

grammar Expr;

fragment Digits
    : [0-9] ([0-9_]* [0-9])?
    ;
INT:    ('0' | [1-9] (Digits? | '_'+ Digits));

prog: expr EOF;


expr: expr('*'|'/') expr  #MultiOrDiv
    | expr('+'|'-') expr  #AddOrSub
    | INT     #Lieteral
    | '(' expr ')'   #Single
    ;
NEWLINE : [\r\n]+ -> skip;

运行后,语法不应再报错。

好了,本文到此结束,带大家了解了《ANTLR加减乘除运算语法报错:如何定义INT规则解决问题?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>