aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2015-08-05 15:46:40 -0700
committerAndrew Kelley <superjoe30@gmail.com>2015-08-05 15:46:40 -0700
commit1d554f3161e7bcf76a180c9280a53cd0f5927591 (patch)
treef89aa7adadee316aab00a2018040cee3dc1c418b /src/main.c
parent50f0ed918c4f5c70685752188b6a3853fc7205b9 (diff)
downloadzig-1d554f3161e7bcf76a180c9280a53cd0f5927591.tar.gz
zig-1d554f3161e7bcf76a180c9280a53cd0f5927591.zip
input output
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index e6173ef043..b54205ce3f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,5 +1,46 @@
+#include "config.h"
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+static int usage(char *arg0) {
+ fprintf(stderr, "Usage: %s --output outfile code.zig\n"
+ "Other options:\n"
+ "--version print version number and exit\n"
+ , arg0);
+ return EXIT_FAILURE;
+}
int main(int argc, char **argv) {
- return 0;
+ char *arg0 = argv[0];
+ char *in_file = NULL;
+ char *out_file = NULL;
+ for (int i = 1; i < argc; i += 1) {
+ char *arg = argv[i];
+ if (arg[0] == '-' && arg[1] == '-') {
+ if (strcmp(arg, "--version") == 0) {
+ printf("%s\n", ZIG_VERSION_STRING);
+ return EXIT_SUCCESS;
+ } else if (i + 1 >= argc) {
+ return usage(arg0);
+ } else {
+ i += 1;
+ if (strcmp(arg, "--output") == 0) {
+ out_file = argv[i];
+ } else {
+ return usage(arg0);
+ }
+ }
+ } else if (!in_file) {
+ in_file = arg;
+ } else {
+ return usage(arg0);
+ }
+ }
+
+ if (!in_file || !out_file)
+ return usage(arg0);
+
+ fprintf(stderr, "in: %s out: %s\n", in_file, out_file);
+ return EXIT_SUCCESS;
}