aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorkatherine <shmibs@airen-no-jikken.icu>2019-05-23 03:23:59 -0700
committerkatherine <shmibs@airen-no-jikken.icu>2019-05-23 03:23:59 -0700
commit101d5ad1f3e864f3b6442b6063151ffb47178099 (patch)
tree7b2d941bffe231cf7e05eafbd6071016c4d4f507 /src/main.c
parent031ff654cf9ad4de5cecf3fabff92e4bb2352c17 (diff)
downloadconfconf-101d5ad1f3e864f3b6442b6063151ffb47178099.tar.gz
add basetype-use-checks to analyse
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 0c0e510..77f3c55 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2,6 +2,7 @@
#include "opt.h"
#include "parse.h"
#include "analyse.h"
+#include "gen.h"
static void print_tree(struct analyse_tree_s *t)
{
@@ -25,8 +26,10 @@ static void print_tree(struct analyse_tree_s *t)
int main(int argc, char **argv)
{
+ FILE *fo = stdout;
FILE *fi = stdin;
const char *finame = "stdin";
+ const char *foname;
struct parse_result_s pr;
struct analyse_result_s ar;
@@ -38,6 +41,12 @@ int main(int argc, char **argv)
TRY(fi != NULL, "could not read file `%s`", finame);
}
+ if (opt_outfile_str() != NULL) {
+ foname = opt_infile_str();
+ fo = fopen(foname, "w");
+ TRY(fo != NULL, "could not write to file `%s`", foname);
+ }
+
pr = parse(fi, finame);
if (fi != stdin)
@@ -50,6 +59,36 @@ int main(int argc, char **argv)
print_tree(&ar.var_tree);
puts("");
+ if (ar.uses_bool)
+ puts("bool");
+ if (ar.uses_string)
+ puts("string");
+ if (ar.uses_id)
+ puts("id");
+ if (ar.uses_int)
+ puts("int");
+ if (ar.uses_intl)
+ puts("intl");
+ if (ar.uses_intll)
+ puts("intll");
+ if (ar.uses_uint)
+ puts("uint");
+ if (ar.uses_uintl)
+ puts("uintl");
+ if (ar.uses_uintll)
+ puts("uintll");
+ if (ar.uses_float)
+ puts("float");
+ if (ar.uses_double)
+ puts("double");
+ if (ar.uses_doublel)
+ puts("doublel");
+
+ gen(fo, pr, ar);
+
+ if (fo != stdout)
+ fclose(fo);
+
parse_result_wipe(&pr);
analyse_result_wipe(&ar);