On 2/6/19 4:33 PM, Peng Yu wrote: > Hi, > > yacc_EOF is mentioned in parse.y in something like this > > %left '&' ';' '\n' yacc_EOF > | error yacc_EOF > > But I don't find where it is defined similarly to other tokens like BAR_AND.
Then you aren't very familiar with yacc. Per 'man yacc': The following declares name to be a token: %token [<tag>] name [number] [name [number]]... If tag is present, the C type for all tokens on this line shall be declared to be the type referenced by tag. If a positive integer, num‐ ber, follows a name, that value shall be assigned to the token. The following declares name to be a token, and assigns precedence to it: %left [<tag>] name [number] [name [number]]... %right [<tag>] name [number] [name [number]]... So, the %left line that you quoted above IS what defined yacc_EOF to be a token. If you've never used yacc/bison before, trying to learn how they work by using bash as your starting point is a rather heavy crash-course. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature