Antlr4:限制XML标签具有相同的值
创始人
2024-11-08 08:30:06
0

Antlr4的语法文件可以使用语法限制(semantic predicate)来实现需要满足的条件。对于限制XML标签具有相同的值,可以在语法文件中添加语法限制,如下所示:

grammar XML;

@parser::members { HashSet seenTags = new HashSet(); }

document : tags EOF;

tags : tag+;

tag : '<' name=ID attributes? '>' content? '<' '/' name '>' {checkTag($name);}

attributes : attribute+; attribute : ID '=' STRING;

content : (text | tags)*;

text : TEXT;

checkTag[String name] : { seenTags.add(name); seenTags.size() == 1; };

ID : [a-zA-Z]+; STRING : '"' .*? '"'; TEXT : ~( '<' | '>' | '"' | ''' | '\')+;

在这个示例中,我们使用一个名为“checkTag”的方法来检查XML标签是否具有相同的值。该方法调用了一个HashSet来记录被处理的标签,并检查当前标签的名称是否已经添加到HashSet中。如果HashSet中仅包含一个项,则可以判断标签具有相同的值。

相关内容

热门资讯

外挂指南书!德普之星辅助器ap... 外挂指南书!德普之星辅助器app,哈糖大菠萝万能挂-其实是真的有辅助神器(哔哩哔哩)1、用户打开应用...
外挂课程!约局吧开挂神器是真的... 外挂课程!约局吧开挂神器是真的吗,德扑之心免费透视-一直一直总是有辅助方法(哔哩哔哩)1)约局吧开挂...
外挂窍门!xpoker透视辅助... 外挂窍门!xpoker透视辅助,佛手在线大菠萝技巧-一直是有辅助软件(哔哩哔哩)该软件可以轻松地帮助...
外挂课程!pokermaste... 外挂课程!pokermaster辅助器,德普之星怎么设置埋牌-竟然有辅助软件(哔哩哔哩)1、操作简单...
外挂讲义!德州来玩辅助器,智星... 外挂讲义!德州来玩辅助器,智星菠萝可以辅助吗-真是真的是有辅助脚本(哔哩哔哩)智星菠萝可以辅助吗能透...
外挂方案!智星菠萝德州插件怎么... 外挂方案!智星菠萝德州插件怎么下载,德州局透视脚本下载安装最新版本-一直真的是有辅助插件(哔哩哔哩)...
外挂方式!德普之星辅助器怎么用... 外挂方式!德普之星辅助器怎么用,pokemmo脚本-一贯一直都是有辅助神器(哔哩哔哩)1、打开软件启...
外挂手筋!poker红龙辅助,... 外挂手筋!poker红龙辅助,fishpoker透视-都是是真的有辅助教程(哔哩哔哩)所有人都在同一...
外挂教程书!约局吧德州可以透视... 外挂教程书!约局吧德州可以透视吗,智星德州插件最新版本更新内容详解-其实是有辅助软件(哔哩哔哩)1、...
外挂总结!德州局透视脚本免费版... 外挂总结!德州局透视脚本免费版下载手机版,哈糖大菠萝有挂吗-其实有辅助软件(哔哩哔哩)1、该软件可以...