annotate delvs-master/bf.c @ 3256:290ab2420517

<oerjan> addquote <Taneb> I would like to learn how to use a sword <Taneb> And also how to ride a unicycle <Taneb> Perhaps not at the same time
author HackBot
date Sun, 30 Jun 2013 15:57:20 +0000
parents 276f475af97b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3122
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
1 #include <stdio.h>
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
2 #include <string.h>
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
3 #include <stdbool.h>
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
4 #include <stdlib.h>
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
5 #include "bf.h"
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
6
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
7 bool fileExists(const char *filename) {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
8 FILE *file;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
9 if ((file = fopen(filename, "r")) == NULL) {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
10 return false;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
11 } else {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
12 fclose(file);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
13 return true;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
14 }
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
15 }
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
16
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
17 int main(int argc, char *argv[]) {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
18 if(argc > 1) {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
19 if(fileExists(argv[1])) {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
20 FILE *fp;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
21 long size;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
22
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
23 fp = fopen(argv[1], "r");
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
24
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
25 fseek(fp, 0, SEEK_END);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
26 size = ftell(fp);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
27 rewind(fp);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
28
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
29 char *temp = (char*) malloc (100);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
30
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
31 char *file = (char*) malloc (size);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
32
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
33 file[0] = '\0';
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
34
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
35 while (fgets(temp, 100, fp) != NULL) strcat(file, temp);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
36
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
37 free(temp);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
38 fclose(fp);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
39
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
40 struct Data g;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
41
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
42 g.code = file;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
43 g.pointer = &g.vars[15000];
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
44
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
45 lexer(&g);
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
46 }
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
47 else {
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
48 printf("File not found!\n");
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
49 }
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
50 }
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
51
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
52 return 0;
276f475af97b <L8D> tar xf master.tar.gz
HackBot
parents:
diff changeset
53 }