| Current Path : /var/www/html/venkat/check/file/sec_a/ |
| Current File : /var/www/html/venkat/check/file/sec_a/iit2012170_1.cpp |
#include<bits/stdc++.h>
using namespace std ;
int main()
{
int i , flag ,l;
ifstream file( "1.c" );
string str ;
set<string> key , iden , spec , oper , data ;
//vector< string > keyword , identifier , special , operators ;
key.insert("int") ;key.insert("float");key.insert("string");key.insert("double");key.insert("return");
iden.insert("main") ;
key.insert("while");key.insert("for");key.insert("printf");
spec.insert("(") ; spec.insert("{") ;spec.insert(")");spec.insert("}");spec.insert(",");spec.insert(":");
oper.insert("+"); oper.insert("-") ; oper.insert("*") ; oper.insert("/");oper.insert("&");oper.insert("=");
vector<string> keyword , identifier , special , operate , strings , constant ;
while(file >> str )
{
//flag = 0 ;
if(str[0] == '#')
continue ;
str = str + " " ;
l = str.length() ;
string s= "" , tmp ;
for(i = 0 ; i <l ; i++ )
{
if( str[i] != ' ' && str[i] != '+' && str[i] != '-' && str[i] != '*' && str[i] != '(' && str[i] != ')' && str[i] != '/' && str[i] != ':' && str[i] != ';' && str[i] != ',' && str[i] != '=' && str[i] != '&' && str[i] != '{' && str[i] != '}')
{
//cout << str[i] << endl ;
s = s + str[i] ;
}
else
{
//cout << s << endl ;
if( key.find(s) != key.end())
{
//cout << "keyword - " << s << endl ;
keyword.push_back(s);
flag = 1 ;
}
else if( iden.find(s) != iden.end())
{
identifier.push_back(s) ;
//cout << "identifier - " << s << endl ;
}
else if( spec.find(s) != spec.end())
{
special.push_back(s);
//cout << "special - " << s << endl ;
}
else if( oper.find(s) != oper.end())
{
operate.push_back(s);
//cout << "operators -> " << s << endl ;
}
else if( s != "" )
{
if(s[0] == '"')
{
//cout << "String " << s << endl ;
strings.push_back(s);
}
else
{
//cout << "identifiers -> " << s << endl ;
if(s[0] >=48 && s[0] <= 57 )
constant.push_back(s);
else
identifier.push_back(s);
}
}
//else if( str[i] != ';' )
tmp.push_back(str[i]) ;
if( spec.find(tmp) != spec.end())
{
special.push_back(tmp);
// cout << "special - " << tmp << endl ;
}
else if( oper.find(tmp) != oper.end())
{
operate.push_back(tmp);
//cout << "operators -> " << tmp << endl ;
}
s = "" ; tmp = "" ;
}
}
}
if( keyword.size() > 0 ){
cout << "Keywords : " ;
for(int i = 0 ; i < keyword.size()-1 ; i++ )
cout << keyword[i] << "," ;
cout << keyword[keyword.size()-1] << endl ;}
if( identifier.size() > 0 ){
cout << "identifiers : " ;
for(int i = 0 ; i < identifier.size()-1 ; i++ )
cout << identifier[i] << "," ;
cout << identifier[identifier.size()-1] << endl ;}
if( operate.size() > 0 ){
cout << "operators : " ;
for(int i = 0 ; i < operate.size()-1 ; i++ )
cout << operate[i] << "," ;
cout << operate[operate.size()-1] << endl ;}
if( special.size() > 0 ){
cout << "special symbols : " ;
for(int i = 0 ; i < special.size()-1 ; i++ )
cout << special[i] << "," ;
cout << special[ special.size()-1 ] << endl ;}
if( strings.size() > 0 ){
cout << "strings : " ;
for(int i = 0 ; i < strings.size()-1 ; i++ )
cout << strings[i] << "," ;
cout << strings[strings.size()-1 ] << endl ;}
if( constant.size() > 0 ){
cout << "constants : " ;
for(int i = 0 ; i < constant.size()-1 ; i++ )
cout << constant[i] << "," ;
cout << constant[constant.size()-1] << endl ;}
return 0 ;
}