Explain Yet another Compiler-Compiler.
YACC uses for "Yet another Compiler-Compiler": Computer program input usually has some structure; actually, all computer programs which does input can be thought of as defining an "input language" which this accepts. An input language may be as complex as a programming language or as easy as a sequence of numbers. Unfortunately, common input facilities are restricted, difficult to utilize, and often are lax about checking their inputs for validity.
YACC gives a general tool for explaining the input to a computer program. The YACC user gives the structures of his input, together along with code to be invoked as each such structure is knows. YACC turns such a specification into a subroutine which handles the input process; frequently, this is appropriate and convenient to have most of the flow of control in the user's application handled through this subroutine. The output from YACC is LALR parser for the input programming laughing.