-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmytiny.c
50 lines (47 loc) · 1.01 KB
/
mytiny.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mytiny.h"
#include "mytiny_tree.h"
#include "mytiny_parse.h"
char name[16];
int ival;
float rval;
char qstr[80];
tSTM *program;
int gen_rw[2][3];
symNODE *symtab = NULL;
int main(int argc,char *argv[]) {
int a = argc;
int t, i;
char fname[20];
if (a == 2) {
yyin = fopen(argv[1],"r");
if (yyin) {
init_all();
t = yyparse();
if (t) {
// Parsing fails
printf("mytiny2c: Parsing failed!\n");
} else {
// Parsing succeeds
printf("mytiny2c: Parsing succeeded!\n");
strcpy( fname, argv[1] );
for (i=0; (fname[i]!='.') && (fname[i]!='\0'); i++);
fname[i++] = '.';
fname[i++] = 'c';
fname[i] = '\0';
yyout = fopen( fname, "w" );
gen_rwcode();
printf("mytiny2c: starting gen_code!\n");
gen_code( program );
fclose( yyout );
}
} else {
printf("tiny2c syntax: [tiny2c source_file_name]\n");
}
fclose( yyin );
} else {
printf("tiny2c syntax: [tiny2c source_file_name]\n");
}
}