Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
- The problem statement, all variables and given/known data:
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.
- The attempts at a solution (include all code and scripts):
cpp2html: cpp2html.o lex.yy.o
gcc -g -DDEBUG cpp2html.o lex.yy.o
mv a.out cpp2html
lex.yy.o: lex.yy.c
gcc -g -DDEBUG -c lex.yy.c
lex.yy.c:
flex cppscanner.l
cpp2html.o: cpp2html.c
gcc -g -DDEBUG -c cpp2html.c
when i ran the code to check my makefile it gave the error
"Your makefile does not invoke flex when only cppscanner.l has been changed:
make: `cpp2html' is up to date."
- Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
Old Dominion University, Norfolk Virginia, United States. Professor Steven Zeil, CS 252
Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).