! -*- coding: utf-8 -*-

Define Boundary [" " | #] ;

Define TagName [{Ena} | {Nu} | {Ti}] {mex} Alpha* ;

Define Suffix ["s" | "e" ["n"|"t"] ("s") | ["a"|"e"|"o"] "r" ({na}) ("s")] ;

! Skip already tagged names
Define +SkipTagged ["<" TagName ">" [? - "<"]+ {</} TagName ">"] ;

@{Define ${tag} $fst ;
}@

Define AnyName @$anytag@ ;

@{Define +${tag}1 $tag EndTag($tag) ;
}@
@{Define +${tag}2
	[[$tag [Suffix | ToUpper(Suffix)]] - AnyName]
	EndTag($tag) ;
}@

Define TOP [ @@ ] LC(Boundary) RC(Boundary) ;
