useless
This commit is contained in:
		
							parent
							
								
									0dc4ee873e
								
							
						
					
					
						commit
						dee4624ab3
					
				
							
								
								
									
										121
									
								
								cparse.c.~1~
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								cparse.c.~1~
									
									
									
									
									
								
							@ -1,121 +0,0 @@
 | 
			
		||||
#include "vec.h"
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <regex.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
int find_funcs(const char *path)
 | 
			
		||||
{
 | 
			
		||||
	FILE *fp;
 | 
			
		||||
	regex_t fdre, fcre;
 | 
			
		||||
	int ret;
 | 
			
		||||
	char line[1024];
 | 
			
		||||
	char boum[1024];
 | 
			
		||||
	regmatch_t rm[2];
 | 
			
		||||
	const char *re_func_decl = "^(\\w+(\\s+)?){2,}\\([^!@#$+%^]+?\\)\\s+";
 | 
			
		||||
	const char *re_func_call = "([a-zA-Z_0-9]+)\\(.*\\)";
 | 
			
		||||
 | 
			
		||||
	fp = fopen(path, "r");
 | 
			
		||||
	if (fp == 0) {
 | 
			
		||||
		fprintf(stderr, "Failed to open file %s (%d: %s)\n", path, errno, strerror(errno));
 | 
			
		||||
		return EXIT_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
	ret = regcomp(&fdre, re_func_decl, REG_EXTENDED);
 | 
			
		||||
	if (ret != 0) {
 | 
			
		||||
		fprintf(stderr, "Failed to compile regex '%s'\n", re_func_decl);
 | 
			
		||||
		return EXIT_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
	ret = regcomp(&fcre, re_func_call, REG_EXTENDED);
 | 
			
		||||
	if (ret != 0) {
 | 
			
		||||
		fprintf(stderr, "Failed to compile regex '%s'\n", re_func_call);
 | 
			
		||||
		return EXIT_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
	int i = 0;
 | 
			
		||||
	bool in = false;
 | 
			
		||||
	graph_vec g = new_graph(10);
 | 
			
		||||
	// while ((fgets(line, 1024, fp)) != NULL) {
 | 
			
		||||
	// 	if (regexec(&fdre, line, 2, rm, 0) == 0) {
 | 
			
		||||
	// 		// printf("Line: <<%.*s>>\n", (int)(rm[0].rm_eo - rm[0].rm_so), line + rm[0].rm_so);
 | 
			
		||||
	// 		sprintf(boum, "%.*s", (int)(rm[1].rm_eo - rm[1].rm_so), line + rm[1].rm_so);
 | 
			
		||||
	// 		insert_node(&g, i, boum);
 | 
			
		||||
	// 		i++;
 | 
			
		||||
	// 	}
 | 
			
		||||
	// }
 | 
			
		||||
	// rewind(fp);
 | 
			
		||||
	// i = -1;
 | 
			
		||||
	int index;
 | 
			
		||||
	int i1, i2 = -1;
 | 
			
		||||
	while ((fgets(line, 1024, fp)) != NULL) {
 | 
			
		||||
		if (in && line[0] == '}') {
 | 
			
		||||
			in = false;
 | 
			
		||||
		}
 | 
			
		||||
		if (in) {
 | 
			
		||||
			if (regexec(&fcre, line, 2, rm, 0) == 0) {
 | 
			
		||||
				// printf("Line: <<%.*s>>\n", (int)(rm[0].rm_eo - rm[0].rm_so), line + rm[0].rm_so);
 | 
			
		||||
				sprintf(boum, "%.*s", (int)(rm[1].rm_eo - rm[1].rm_so), line + rm[1].rm_so);
 | 
			
		||||
				if ((index = is_in(g, boum))) {
 | 
			
		||||
					if (g.node[i2]->nbs == g.node[i2]->cap)
 | 
			
		||||
						g.node[i2]->succ = reallocarray(g.node[i2]->succ, (g.node[i2]->cap += 5), sizeof(nodept));
 | 
			
		||||
					// printf("NBS = %d %s\n", g.node[index]->num, g.func[index]);
 | 
			
		||||
					// g.node[i]->succ = malloc(sizeof(nodept));
 | 
			
		||||
					g.node[i2]->succ[i1] = g.node[index];
 | 
			
		||||
					g.node[i2]->nbs++;
 | 
			
		||||
					i1++;
 | 
			
		||||
					// insert_succ(g.node[i], g.node[index]);
 | 
			
		||||
				} else {
 | 
			
		||||
					insert_node(&g, i, boum);
 | 
			
		||||
					i++;
 | 
			
		||||
					// if (g.node[i]->nbs == g.node[i]->cap)
 | 
			
		||||
					// 	g.node[i]->succ = reallocarray(g.node[i]->succ, (g.node[i]->cap += 5), sizeof(nodept));
 | 
			
		||||
					// struct node *n = malloc(sizeof(struct node));
 | 
			
		||||
					// n->num = i;
 | 
			
		||||
					// n->nbs = 0;
 | 
			
		||||
					// // n->cap = 5;
 | 
			
		||||
					// // n->succ = malloc(5 * sizeof(nodept));
 | 
			
		||||
					// strcpy(n->func, boum);
 | 
			
		||||
					// g.node[i]->succ[i1] = n;
 | 
			
		||||
					// g.node[i]->nbs++;
 | 
			
		||||
					// i1++;
 | 
			
		||||
					// insert_succ(&g, i, i1, boum);
 | 
			
		||||
					// i1++;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else if (regexec(&fdre, line, 2, rm, 0) == 0) {
 | 
			
		||||
			sprintf(boum, "%.*s", (int)(rm[1].rm_eo - rm[1].rm_so), line + rm[1].rm_so);
 | 
			
		||||
			insert_node(&g, i, boum);
 | 
			
		||||
			i++;
 | 
			
		||||
			i2++;
 | 
			
		||||
			in = true;
 | 
			
		||||
			i1 = 0;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	for (int j = 0; j < i; j++) {
 | 
			
		||||
		printf("NODE %d: %s\n",j, g.node[j]->func);
 | 
			
		||||
		for (int n = 0; n < g.node[j]->nbs; n++) {
 | 
			
		||||
			printf("SUCC %d: %s\n",j, g.node[j]->succ[n]->func);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// for (int j = 0; j < i; j++) {
 | 
			
		||||
	// 	printf("fc %s\n", boum2[j]);
 | 
			
		||||
	// }
 | 
			
		||||
	regfree(&fdre);
 | 
			
		||||
	regfree(&fcre);
 | 
			
		||||
	fclose(fp);
 | 
			
		||||
	delete_graph(&g);
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	find_funcs("./memline.c");
 | 
			
		||||
	// graph_vec g = new_graph(3);
 | 
			
		||||
	// insert_node(&g, new_node(0), "main");
 | 
			
		||||
	// insert_node(&g, new_node(1), "main1");
 | 
			
		||||
	// insert_node(&g, new_node(2), "main2");
 | 
			
		||||
	// printf("%d %d %d\n", g.node[0]->num,g.node[1]->num,g.node[2]->num);
 | 
			
		||||
	// printf("%s %s %s\n", g.func[0],g.func[1],g.func[2]);
 | 
			
		||||
	// delete_graph(&g);
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user