Ejemplo n.º 1
0
/***********************************************************************
this function will create a map that will be used to prevent the insertion
of common words
***********************************************************************/
void container::create_map()
{
	ifstream file;
	string user_input;

	file.open("commonWords.txt", ios_base::in);

	//start reading if file opened successfully
	if(file.is_open()) {

		while(!file.eof()) {

			getline(file, user_input, '\n');

			//prevents from re-reading the last line of the file
			if(file.eof()) {
				break;
			}

			user_input = trim_spaces_of_string(user_input);
			user_input = convert_to_upper(user_input);

			//insert into map
			map[user_input]++;
		}

		file.close();
	}
}
Ejemplo n.º 2
0
/***********************************************************************
//This function will parse a line for individual words,
//Also, check if word is 1 of top 100 most common and ignore,
//Else, insert into trie.
***********************************************************************/
void container::process_line(string line, int page_number, int line_number)
{
	int word_count = 0;
	string token;
	istringstream iss(line);

	//parse line for individual words
	while(getline(iss, token, ' '))
	{
		//token contains individual word.
		//store TOKEN into vector, will be used to reference nearby
		//words.
		vector_insertPattern(token,page_number,line_number);

		token = convert_to_upper(token);
		token = remove_nonAlphaNumberic(token);
		token = trim_spaces_of_string(token);

		//determine if it is a common word.
		//IF NOT COMMON, INSERT INTO TRIE HERE
		if(map[token] != 1 && !token.empty()) {

			//will split word into suffixes and insert each suffix into trie
			suffixTree.wordSplit(token,page_number,line_number,word_count);
			prefixTree.insert_pattern(token,page_number,line_number,word_count,INITIAL_INDEX);
		}

		word_count++;
	}
}
Ejemplo n.º 3
0
void bi_add_bl_build_sig(char *bld_sig)
{
	int pos;
	char *value;
	char *ptr;

	if (!bld_sig || (bl_build_sig_count >= MAX_BL_BUILD_SIG)) {
		return;
	}

	value = (char *)memchr((void *)bld_sig, '=', MAX_BLD_SIG_ITEM);
	if (!value) {
		return;
	}
	pos = value - bld_sig;

	ptr = bl_build_sigs[bl_build_sig_count].item;
	strlcpy(ptr, bld_sig, pos+1);
	convert_to_upper(ptr);

	ptr = bl_build_sigs[bl_build_sig_count].value;
	strlcpy(ptr, value+1, MAX_BLD_SIG_VALUE);

	bl_build_sig_count++;

	return;
}
Ejemplo n.º 4
0
Archivo: parse.c Proyecto: LeSpocky/eis
void parse_provides (char * id, char * version, char * package, int line)
{
    char * p;
    char real_version[128];
    char internal_id[128];

    mangle_version (real_version, sizeof(real_version), version, package);
    strcpy (internal_id, "provides_");
    strcat (internal_id, convert_to_upper (id));
    p = get_variable_package (internal_id);
    if (p)
    {
        char * q = get_variable_package (internal_id);
        if (strcmp (package, q))
        {
            fatal_exit ("Conflicting packages, package %s already"
                        " provides '%s' with version '%s'\n",
                        package, id, get_variable (internal_id));
        }
        return;
    }
    log_info (T_EXEC, "package %s provides %s version %s\n",
              package, id, version);
    var_add_weak_declaration (package, internal_id, real_version, version,
                              TYPE_NUMERIC, package, line,
                              T_EXEC);
    mark_var_generated (internal_id);
    mark_var_provide (internal_id);

    package_provider_added = 1;
}
Ejemplo n.º 5
0
Archivo: parse.c Proyecto: LeSpocky/eis
char *
parse_get_variable_comment (char * name, char * package, int line)
{
    char * content;

    content = get_variable_comment (convert_to_upper (name));
    if (!content)
    {
        fatal_exit ("unknown variable '%s' in %s, line %d\n",
                    name, package, line);
    }
    return content;
}
Ejemplo n.º 6
0
Archivo: parse.c Proyecto: LeSpocky/eis
void parse_depends (char * id, char * version, char * package,
                    int regexp, char * file, int line)
{
    char * p;
    char internal_id[128];
    char real_version[128];

    if (!regexp)
      mangle_version (real_version, sizeof(real_version), version, "");
    else
      strcpy (real_version, version);

    if (!final_pass)
    {
        return;
    }

    strcpy (internal_id, "provides_");
    strcat (internal_id, convert_to_upper (id));
    p = get_variable (internal_id);
    if (p)
    {
        int err=0;
        if (!regexp)
        {
            err = strncmp (p, real_version, strlen(real_version));
        }
        else
        {
            err = regexp_chkvar (internal_id, p, 0, real_version);
        }
        if (err)
        {
            fatal_exit ("(%s:%d) Version mismatch, package '%s' depends on "
                        "'%s', version %s, but '%s' has version %s\n",
                        file, line, package,
                        id, real_version, id, p);
        }
    }
    else
    {
        fatal_exit ("(%s:%d) Package missing, %s depends on %s, "
                    "which is either not present or not enabled\n",
                    file, line, package, id);
    }
}