1812196
Shaheed Zulfikar Ali Bhutto Institute of Science & Technology
COMPUTER SCIENCE DEPARTMENT
Total Marks:
05
Obtained Marks:
Compiler Construction
Assignment # 01
Submitted To: Muhammad Nadeem Khokhar
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Student Name: Samreen Aziz
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Reg Number: 1812196
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Compiler Construction
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 program to accept a C program that counts the IDs and intimates the unterminated string constants in the input C program (Constants beginning with double quotes
and extending for more than one line). Give the Compilation and the Runtime screen. Use the
following sample C program for testing purposes.
#include
#include
#include
void main()
{
int a,b,h;
a=a+b;
char d[20]=”d”, h[67]=”yu ;
char c[10]=”msrit”;
a=a+/b+h;
strlen(“msrit”);
strlen(“msr);
strcpy(c,”Hello World);
b=b+*;
}
Note:
1. Change the filename to your ID, e.g. 2073105.doc
2. Upload the .doc on Google Classroom.
3. Poor indentation and wrong format will result in deduction of marks.
Compiler Construction
BS(CS)-5A
SZABIST-ISB
Shaheed Zulfikar Ali Bhutto Institute of Science & Technology
COMPUTER SCIENCE DEPARTMENT
Solution
%{ #include
int L_check=1,ch_chck=0,count_ID=0, count=0 ;
%}
%%
\n {L_check++, ++ch_chck;}
. ++ch_chck;
[“][a-zA-z0-9|0-9a-zA-z]*[“] {
ECHO;
printf(“: Valid String\t Line no: %d\n”, L_check);
}
[“][a-zA-z0-9|0-9a-zA-z]* {
ECHO;
printf( “: Invalid String\t Line no: %d\n”,L_check);
}
//rules for invalid string
checker
[a-zA-Z][a-zA-Z0-9]* {
count_ID ++;
}
%%
int main(int argc[],char *argv[])
{
yyin=fopen(“samreen.txt”, “r”);
yylex();
Compiler Construction
BS(CS)-5A
SZABIST-ISB
Shaheed Zulfikar Ali Bhutto Institute of Science & Technology
COMPUTER SCIENCE DEPARTMENT
printf(“ID’s: %d \n”,count_ID);
return 0;
}
Output
— — —
Compiler Construction
BS(CS)-5A
SZABIST-ISB
…