aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin Borner2023-05-23 23:41:12 +0200
committerMarvin Borner2023-05-23 23:41:12 +0200
commitd239d5da765ddc389195d7121d517e16c674f50e (patch)
tree1195b0c250940ea7cf02d35ec32bd5a3e98ef250
parentc1ce8eb719a95b22fea8e6220bf407d2eb7447b3 (diff)
Made stdout default instead of `out` file
-rw-r--r--options.ggo2
-rw-r--r--src/main.c4
-rw-r--r--src/print.c28
3 files changed, 17 insertions, 17 deletions
diff --git a/options.ggo b/options.ggo
index 7cf6b77..4e275c7 100644
--- a/options.ggo
+++ b/options.ggo
@@ -3,7 +3,7 @@ version "1.0"
purpose "Tool for converting to/from BLC and BLoC"
option "input" i "input file" string required
-option "output" o "output file" default="out" string optional
+option "output" o "output file" string optional
option "verbose" v "enable debug logging output" flag off
option "from-blc" b "convert from BLC to BLoC" flag off
option "from-bloc" B "convert from BLoC to BLC" flag off
diff --git a/src/main.c b/src/main.c
index 785a70d..8a47a44 100644
--- a/src/main.c
+++ b/src/main.c
@@ -134,7 +134,7 @@ static void from_blc(char *input, char *output_path)
debug("optimizing tree\n");
struct list *table = optimize_tree(tree, &all_trees);
- FILE *file = fopen(output_path, "wb");
+ FILE *file = output_path ? fopen(output_path, "wb") : stdout;
write_bloc(table, file);
fclose(file);
@@ -153,7 +153,7 @@ static void from_bloc(char *input, char *output_path, int dump)
if (dump)
print_bloc(bloc);
- FILE *file = fopen(output_path, "wb");
+ FILE *file = output_path ? fopen(output_path, "wb") : stdout;
write_blc(bloc, file);
fclose(file);
diff --git a/src/print.c b/src/print.c
index d73f9c5..2b094e2 100644
--- a/src/print.c
+++ b/src/print.c
@@ -10,22 +10,22 @@ void print_bruijn(struct term *term)
{
switch (term->type) {
case ABS:
- printf("[");
+ fprintf(stderr, "[");
print_bruijn(term->u.abs.term);
- printf("]");
+ fprintf(stderr, "]");
break;
case APP:
- printf("(");
+ fprintf(stderr, "(");
print_bruijn(term->u.app.lhs);
- printf(" ");
+ fprintf(stderr, " ");
print_bruijn(term->u.app.rhs);
- printf(")");
+ fprintf(stderr, ")");
break;
case VAR:
- printf("%d", term->u.var.index);
+ fprintf(stderr, "%d", term->u.var.index);
break;
case REF:
- printf("<%ld>", term->u.ref.index);
+ fprintf(stderr, "<%ld>", term->u.ref.index);
break;
default:
fatal("invalid type %d\n", term->type);
@@ -56,15 +56,15 @@ void print_blc(struct term *term)
void print_bloc(struct bloc_parsed *bloc)
{
- printf("\n=== START BLOC ===\n");
- printf("| entries:\t%ld\n", bloc->length);
+ fprintf(stderr, "\n=== START BLOC ===\n");
+ fprintf(stderr, "| entries:\t%ld\n", bloc->length);
for (size_t i = 0; i < bloc->length - 1; i++) {
- printf("| entry %ld:\t", bloc->length - i - 2);
+ fprintf(stderr, "| entry %ld:\t", bloc->length - i - 2);
print_bruijn(bloc->entries[i]);
- printf("\n");
+ fprintf(stderr, "\n");
}
- printf("| final:\t");
+ fprintf(stderr, "| final:\t");
print_bruijn(bloc->entries[bloc->length - 1]);
- printf("\n");
- printf("=== END BLOC ===\n\n");
+ fprintf(stderr, "\n");
+ fprintf(stderr, "=== END BLOC ===\n\n");
}