You are on page 1of 4

Bahria University, Islamabad Campus

Department of Computer Science


Lab Quiz # 1
Class: BS(CS)-5A
(Spring 2021 Semester)

Course: Compiler Construction Date: / /2020


Time Allowed: 30 mins Total Marks: 5/10

Name: Hamza Ali Enrollment#: 01-134191-041

Question #1: Write a small lexical analyzer code. which recognizes the following patterns and
returns appropriate tokens.
I. Operators, ++, --, +-, //, and parenthesis (,)
II. Multiline comments

Place screenshot of file which you read for the above code.

#include<iostream>
#include<conio.h>
#include<fstream>
using namespace std;
int main()
{
char var;
char temp;
ifstream readFile;
readFile.open("t.txt");
readFile.get(var);
while (!readFile.eof())
{
if (var == ',' || var == '.' || var == ';' || var == '(' || var == ')' ||
var == '{' || var == '}')
{
cout << "<" << var << "> ";
}
else if (var == '+' || var == '-' || var == '/')
{
temp = var;
readFile.get(var);
if (var == temp)
{
cout << "<" << var << var << ">" << endl;
}
else
{
cout << temp << endl;
}
}
else if (var == '%' || var == '-' || var == '*' || var == '/' || var ==
'+' || var == '>>' || var == '<<' || var == '^' || var == '|')
{
temp = var;
readFile.get(var);
if (var == '=')
{
cout << "<" << var << var << ">" << endl;
}
else
{
cout << "<" << temp << "> " << "<" << var << "> ";
}

}
else if (var == '=')
{
cout << "<" << var << "> ";
}
readFile.get(var);
}
cout << endl;
_getch();
}
include<iostream>
#include<conio.h>
#include<fstream>
using namespace std;
int main()
{
char var;
char temp;
ifstream readFile;
readFile.open("t.txt");
readFile.get(var);
while (!readFile.eof())
{
if (var == ',' || var == '.' || var == ';' || var == '(' || var == ')' ||
var == '{' || var == '}')
{
cout << "<" << var << "> ";
}
else if (var == '+' || var == '-' || var == '/')
{
temp = var;
readFile.get(var);
if (var == temp)
{
cout << "<" << var << var << ">" << endl;
}
else
{
cout << temp << endl;
}
}
else if (var == '%' || var == '-' || var == '*' || var == '/' || var ==
'+' || var == '>>' || var == '<<' || var == '^' || var == '|')
{
temp = var;
readFile.get(var);
if (var == '=')
{
cout << "<" << var << var << ">" << endl;
}
else
{
cout << "<" << temp << "> " << "<" << var << "> ";
}

}
else if (var == '=')
{
cout << "<" << var << "> ";
}
readFile.get(var);
}
cout << endl;
_getch();
}

You might also like