在M4语言中,有没有办法可以将字符串参数与两个值进行比较,如果这两个中的任何一个匹配,则执行X,执行其他Y?
例如,如果MACTEST宏的参数是'ABC'或'XYZ',则显示'match',否则显示'nomatch'...看起来eval用于比较数字参数而不是字符串。 。那里有相当于字符串的东西吗?
define(MACTEST, ifelse(eval($1==ABC)|eval($1==XYZ), 1, match, nomatch)')
MACTEST(ABC)
答案 0 :(得分:1)
两种可能性(为了清晰起见,引用不足):
define(MACTEST,`ifelse($1,ABC,match,$1,XYZ,match,no-match)')dnl
define(MACTEST,`ifelse(regexp($1,ABC\|XYZ),-1,no-match,match)')dnl