我试图创建一个RegEx,只有当这些参数作为参数传递给函数时才会匹配函数体中的参数。
例如,在以下函数中:
void putc(char c) {
/*Output "c" via BIOS interrupt or VGA write. Or whatever.*/
}
void print(int num) {
if (num!=0) {
/*Largest num is `2,147,483,64(7|8)`*/
char temp[10];
int i = 0;
if (num<0) { putc('-'); num=-num; }
if (num>0); else { temp[i++]='8'; num=-(num/10); } //signed wraparound
while (num>0) {
temp[i++] = num%10 + '0';
num /= 10;
}
while (--i>=0) putc(temp[i]);
} else putc('0');
}
RegEx应该与参数列表和函数正文中的function doStuff(foo, bar) {
var baz = 1 + foo
return foo + bar + baz
}
和foo
匹配。
我尝试了一些蹩脚的反向引用匹配,但我无法解决这个问题......
(需要使用的RegEx引擎是Oniguruma)