无法在antlr4

时间:2016-09-24 23:10:22

标签: regex antlr4

我试图匹配伪代码语言的字母数字符号,例如:

int i = 1;
int j = 2;
int k = i+j;
if (k > 2)
  k = k + 1;
fi;
loop (i < 10)
  i = i + 1;
  j = j + 1;
  k = i + j;
  print(k);
pool;

其中i,j,k是变量符号,int是类型符号,if,loop是范围符号。我尝试将它们与ID令牌ID : [a-zA-Z][a-zA-Z0-9]*;进行匹配,但是当我将其更改为[a-zA-Z][a-zA-Z0-9]+;时,除了loop之外,它将不会匹配任何这些令牌。我知道*表示匹配0或多,+表示匹配1或多。根据我的理解,他们都应该匹配这些令牌,为什么只有*有效?

0 个答案:

没有答案