summaryrefslogtreecommitdiffstats
path: root/dimension
diff options
context:
space:
mode:
Diffstat (limited to 'dimension')
-rw-r--r--dimension/main.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/dimension/main.c b/dimension/main.c
index 3f1c807..42661e7 100644
--- a/dimension/main.c
+++ b/dimension/main.c
@@ -22,6 +22,7 @@
#include "realize.h"
#include "progressbar.h"
#include "../libdimension/dimension.h"
+#include <stdbool.h>
#include <stdlib.h>
#include <getopt.h>
@@ -77,6 +78,8 @@ main(int argc, char **argv) {
};
}
+ bool debugging = tokenize || parse;
+
if (optind == argc - 1) {
if (input) {
dmnsn_error(DMNSN_SEVERITY_HIGH, "Multiple input files specified.");
@@ -88,13 +91,17 @@ main(int argc, char **argv) {
"Invalid extranious command line options.");
}
- if (!output && !(tokenize || parse)) {
+ if (!output && !debugging) {
dmnsn_error(DMNSN_SEVERITY_HIGH, "No output file specified.");
}
if (!input) {
dmnsn_error(DMNSN_SEVERITY_HIGH, "No input file specified.");
}
+ /*
+ * Now do the work
+ */
+
/* Open the input file */
input_file = fopen(input, "r");
if (!input_file) {
@@ -102,7 +109,10 @@ main(int argc, char **argv) {
}
/* Tokenize the input file */
- printf("Tokenizing input...\n");
+
+ if (!debugging)
+ printf("Tokenizing input...\n");
+
dmnsn_array *tokens = dmnsn_tokenize(input, input_file);
if (!tokens) {
fclose(input_file);
@@ -121,7 +131,10 @@ main(int argc, char **argv) {
}
/* Parse the input */
- printf("Parsing input...\n");
+
+ if (!debugging)
+ printf("Parsing input...\n");
+
dmnsn_array *astree = dmnsn_parse(tokens);
if (!astree) {
dmnsn_delete_tokens(tokens);