I was aware that make has implicit rules and that if you have a simple C program without a makefile, you can still do the following:
$ make hello cc hello.c -o helloAnd you end up with an executable.
However, I was surprised when I tried the following for a yacc grammar (again there is no makefile):
$ make foo yacc foo.y mv -f y.tab.c foo.c cc foo.c -o fooHandy.
Also, in relation to Yacc, here is a footnote from the O'Reilly Lex & Yacc book:
Yacc's use of dot to show where you are in the rule can get confusing if you have rules with dots in them. Some versions of yacc use an underscore rather than a dot, which can be equally confusing if you have rules with underscores in them.I have a feeling that you could keep going on like this.