Problem was the former line: fsm_start: FSM ID { public void fsm $2() { } ; which got jay to choke. Quoting the inline { did solve the whole mess. Thanks Miguel de Icaza wrote: >> Strang thing is - it let's all $1 and $2 through without complaint and >> just chokes on $3. > > Declare ID at the top like this: > > %token ID > > Miguel