diff options
author | Bobby Bingham <koorogi@koorogi.info> | 2017-01-12 20:05:45 -0600 |
---|---|---|
committer | Bobby Bingham <koorogi@koorogi.info> | 2017-01-15 23:18:52 -0600 |
commit | cf366387449dcf9d34875a7d76f3b79c1e231d6f (patch) | |
tree | b892febf08e3c5791e414c9cdc011477a9420ae1 /Makefile | |
parent | 239ee7648658b77b217f5c8142ef887612516af4 (diff) |
nqasm: Initial stab at a lexer and parser
So far, this only understands instructions, but no operands or labels. It
doesn't handle bad input gracefully. It's just enough to test the basics.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..554c540 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +OPTFLAGS = -Os +CFLAGS = -std=c99 -D_POSIX_C_SOURCE=200809L $(OPTFLAGS) + +GENSRCS = lexer.c parser.c +GENHDRS = lexer.h parser.h +SRCS = $(sort $(wildcard *.c) $(GENSRCS)) +OBJS = $(SRCS:.c=.o) +TARGET = nqasm + +all: $(TARGET) + +clean: + rm -f $(GENSRCS) $(GENHDRS) $(OBJS) $(TARGET) + +lexer.c lexer.h: lexer.l + flex $< + +parser.c parser.h: parser.y + bison $< + +lexer.o: parser.h +parser.o: lexer.h + +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(TARGET): $(OBJS) + $(CC) $(CFLAGS) $^ -o $@ + +.PHONY: all clean |