1912114 doc
Shaheed Zulfikar Ali Bhutto Institute of Science &
Technology
COMPUTER SCIENCE DEPARTMENT
Total Marks:
05
Obtained Marks:
Compiler Construction
Assignment # 01
Last date of Submission: 17 November 2021
Submitted To: Muhammad Nadeem Khokhar
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Student Name: Mohsin Hassan
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Reg Number: 1912114
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Finite Automata Theory & Formal
Lang.
BS(CS)-5A
SZABIST-ISB
Shaheed Zulfikar Ali Bhutto Institute of Science &
Technology
COMPUTER SCIENCE DEPARTMENT
Instructions: Copied or shown assignments will be marked zero. Late submissions are not
entertained in any case.
Question
Write a LEX/FLEX program that counts total characters, words and lines from multiple files.
The filenames are passed to the program as command-line arguments. Run the program using
the provided text files. Give the source code and the run time screen with compilation and
execution steps.
Note:
1.
2.
3.
4.
Change the filename to your ID, e.g. 2073105.doc
Upload the .doc on Google Classroom.
Make sure that the output screen does not have black background.
Poor indentation and wrong format will result in deduction of marks.
Solution
Code:
%{
int NumberofCharacters = 0, NumberofWords = 0, NumberofLines = 0;
int TotalNumberofcharacters = 0, TotalNumberofWords = 0, TotalNumberofLines = 0;
%}
%%
[a-zA-Z]+ { NumberofWords++; NumberofCharacters += strlen(yytext); }
\n { NumberofCharacters++; NumberofLines++; }
. { NumberofCharacters++; }
%%
int main(argc, argv)
int argc;
char **argv;
{
for(int i = 1; i