#include "stdafx.h"
#include "parser.h"
#include "HashTable.h"
#include "CountFrequency.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void parser(string line, int fileNo, class HashTable & HT, frequencyList FL[])
{
char * cStr, * cPtr;
string tempString;
cStr = new char [line.size() + 1];
strcpy (cStr, line.c_str());
cPtr = strtok (cStr, " ");
while (cPtr != NULL)
{
if (strcmp(cPtr, "</TEXT>") != 0 && *cPtr != '.')
{
tempString = string(cPtr);
removeCommaBehind(tempString);
removePeriodBehind(tempString);
removePBehind(tempString);
removePBefore(tempString);
removeApsBehind(tempString);
removeApBehind(tempString);
removeIesBehind(tempString);
removeSLBefore(tempString);
removeEsBehind(tempString);
removeSBehind(tempString);
removeIngBehind(tempString);
removeEdBehind(tempString);
if(tempString.compare("a") != 0)
if(tempString.compare("an") != 0)
if(tempString.compare("any") != 0)
if(tempString.compare("all") != 0)
if(tempString.compare("and") != 0)
if(tempString.compare("are") != 0)
if(tempString.compare("at") != 0)
if(tempString.compare("as") != 0)
if(tempString.compare("b") != 0)
if(tempString.compare("be") != 0)
if(tempString.compare("been") != 0)
if(tempString.compare("but") != 0)
if(tempString.compare("by") != 0)
if(tempString.compare("c") != 0)
if(tempString.compare("ca") != 0)
if(tempString.compare("can") != 0)
if(tempString.compare("d") != 0)
if(tempString.compare("e") != 0)
if(tempString.compare("f") != 0)
if(tempString.compare("for") != 0)
if(tempString.compare("from") != 0)
if(tempString.compare("g") != 0)
if(tempString.compare("ga") != 0)
if(tempString.compare("h") != 0)
if(tempString.compare("ha") != 0)
if(tempString.compare("had") != 0)
if(tempString.compare("have") != 0)
if(tempString.compare("he") != 0)
if(tempString.compare("i") != 0)
if(tempString.compare("in") != 0)
if(tempString.compare("is") != 0)
if(tempString.compare("it") != 0)
if(tempString.compare("j") != 0)
if(tempString.compare("k") != 0)
if(tempString.compare("l") != 0)
if(tempString.compare("like") != 0)
if(tempString.compare("m") != 0)
if(tempString.compare("me") != 0)
if(tempString.compare("my") != 0)
if(tempString.compare("n") != 0)
if(tempString.compare("near") != 0)
if(tempString.compare("no") != 0)
if(tempString.compare("not") != 0)
if(tempString.compare("o") != 0)
if(tempString.compare("of") != 0)
if(tempString.compare("on") != 0)
if(tempString.compare("or") != 0)
if(tempString.compare("out") != 0)
if(tempString.compare("over") != 0)
if(tempString.compare("p") != 0)
if(tempString.compare("q") != 0)
if(tempString.compare("r") != 0)
if(tempString.compare("s") != 0)
if(tempString.compare("she") != 0)
if(tempString.compare("so") != 0)
if(tempString.compare("t") != 0)
if(tempString.compare("that") != 0)
if(tempString.compare("th") != 0)
if(tempString.compare("the") != 0)
if(tempString.compare("them") != 0)
if(tempString.compare("their") != 0)
if(tempString.compare("they") != 0)
if(tempString.compare("this") != 0)
if(tempString.compare("to") != 0)
if(tempString.compare("u") != 0)
if(tempString.compare("up") != 0)
if(tempString.compare("us") != 0)
if(tempString.compare("v") != 0)
if(tempString.compare("w") != 0)
if(tempString.compare("wa") != 0)
if(tempString.compare("was") != 0)
if(tempString.compare("we") != 0)
if(tempString.compare("were") != 0)
if(tempString.compare("which") != 0)
if(tempString.compare("who") != 0)
if(tempString.compare("will") != 0)
if(tempString.compare("with") != 0)
if(tempString.compare("x") != 0)
if(tempString.compare("y") != 0)
if(tempString.compare("z") != 0)
if(tempString.compare("\0") != 0)
if(tempString.compare("\0\n") != 0)
if(tempString.compare(" ") != 0)
if(tempString.compare(" \n") != 0)
if(tempString.compare("\n") != 0)
if(tempString.compare(",") != 0)
if(tempString.compare(".") != 0)
if(tempString.compare("=") != 0)
{
countFrequency(tempString, FL);
}
}
cPtr = strtok(NULL, "()/ ");
}
delete[] cStr;
}
void removeCommaBehind(string &tempString)
{
if(tempString.find(",", tempString.length() - 2) < 35)
{
tempString.replace(tempString.find(",", tempString.length() - 2), tempString.length(), "\0");
}
}
void removePeriodBehind(string &tempString)
{
if(tempString.find(".", tempString.length() - 2) < 35)
{
tempString.replace(tempString.find(".", tempString.length() - 2), tempString.length(), "\0");
}
}
void removeSLBefore(string &tempString)
{
if(tempString[0] == '/')
tempString.erase(0, 1);
}
void removeIesBehind(string &tempString)
{
if(tempString.find("ies", tempString.length() - 3) < 35)
{
tempString.replace(tempString.find("ies", tempString.length() - 3), tempString.length(), "y\0");
}
}
void removeEsBehind(string &tempString)
{
if(tempString.find("sses", tempString.length() - 4) < 35)
{
tempString.replace(tempString.find("sses", tempString.length() - 4), tempString.length(), "ss\0");
}
}
void removeSBehind(string &tempString)
{
if(tempString.find("s", tempString.length() - 1) < 35)
{
tempString.replace(tempString.find("s", tempString.length() - 1), tempString.length(), "\0");
}
}
void removeIngBehind(string &tempString)
{
if(tempString.find("ing", tempString.length() - 3) < 35)
{
tempString.replace(tempString.find("ing", tempString.length() - 3), tempString.length(), "\0");
}
}
void removeEdBehind(string &tempString)
{
if(tempString.find("ed", tempString.length() - 2) < 35)
{
tempString.replace(tempString.find("ed", tempString.length() - 2), tempString.length(), "\0");
}
}
void removeApsBehind(string &tempString)
{
if(tempString.find("'s", tempString.length() - 2) < 35)
{
tempString.replace(tempString.find("'s", tempString.length() - 2), tempString.length(), "\0");
}
}
void removeApBehind(string &tempString);
void removeApBehind(string &tempString)
{
if(tempString.find("'", tempString.length() - 2) < 35)
{
tempString.replace(tempString.find("'", tempString.length() - 2), tempString.length(), "\0");
}
}
void removePBefore(string &tempString)
{
if(tempString[0] == '(')
tempString.erase(0, 1);
}
void removePBehind(string &tempString)
{
if(tempString.find(")", tempString.length() - 2) < 35)
{
tempString.replace(tempString.find(")", tempString.length() - 2), tempString.length(), "\0");
}
}