Question: The code in project2 is for a program that formats C++ code into HTML for presentation in a webpage. For example, here is the web
The code in project2 is for a program that formats C++ code into HTML for presentation in a webpage. For example, here is the web page produced by running the command
./cpp2html < ~/UnixCourse/compileAsst/guess.cpp > guess.html
(once the program has been successfully compiled, of course).
This program would have been a massive undertaking to write in pure C or C++, but was actually put together quite quickly using a software tool called flex that was originally developed for use in building compilers. Whats interesting about flex is that it actually writes out the program code for a substantial portion of a compiler (the scanner or lexical analyzer) from a (relatively speaking) simple description of what the language being processed looks like.
The steps necessary to produce this program are:
Compile cpp2html.c to produce cpp2html.o. ( Important: the source code in this project is C, not C++, and so must be compiled and linked with gcc, not g++.)
Run the command
flex cppscanner.l
to produce the file lex.yy.c from the language description in cppscanner.l.
Compile lex.yy.c to produce lex.yy.o. (This often produces a warning message about extra tokens. Ignore it.)
Link the the .o files to produce an executable program named cpp2html
Write a makefile that will carry out these steps. Your makefile should result in only the minimum required amount of steps when any input file to this process is changed. (Note: you will probably not be able to base this makefile upon my self-updating makefile as in the earlier part of the assignment. Instead, you will probably find it necessary to write this one from scratch.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
