@define foo(x) { @local y; y = 6; switch (x) { @match [1,2,y]: printf ("y=%d ",y); printf("x=%a\n",x); break; @match [1,x ...]: printf("y=%d ",y); printf("x=%a\n",x); break; default: printf("bad\n"); break; } } foo([1,2,3]); foo([1,3,4]);