bitwise: finish day 2

This commit is contained in:
Kyle Isom 2018-03-27 22:47:45 -07:00
parent 2404595738
commit 71dff5d299
2 changed files with 23 additions and 23 deletions

View File

@ -1,6 +1,6 @@
TARGET := ion
OBJS := $(TARGET).o
CFLAGS := -g -std=c99 -Wall -Werror
CFLAGS ?= -g -std=c99 -Wall -Werror
.PHONY: all run
all: run
@ -15,3 +15,7 @@ $(TARGET): $(OBJS)
.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET)
.PHONY: release
release: clean
CFLAGS="$(CFLAGS) -DRELEASE" make $(TARGET) && mv $(TARGET) $(TARGET)-release

View File

@ -7,10 +7,10 @@
#include <stdlib.h>
#include <string.h>
#ifndef NDEBUG
#define tprint(...) do { fprintf( stderr, __VA_ARGS__ ); } while( false )
#ifndef RELEASE
#define tprint(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
#else
#define tprint(x) {}
#define tprint(...) do {} while (0)
#endif
#define MAX(a, b) ((a) < (b) ? (b) : (a))
@ -188,34 +188,30 @@ void next_token(void) {
void
print_token(void)
{
tprint("TOKEN: %d", token.kind);
switch (token.kind) {
case TOKEN_INT:
tprint(" VALUE: %lu", token.val);
break;
case TOKEN_NAME:
break;
default:
break;
}
tprint("TOKEN: ");
switch (token.kind) {
case TOKEN_INT:
tprint("INT VALUE: %lu", token.val);
break;
case TOKEN_NAME:
tprint("NAME VALUE: %.*s", (int)(token.end-token.start), token.start);
break;
default:
tprint("'%c'", token.kind);
break;
}
tprint("\n");
}
void
lex_test(void)
{
char source[] = "+()123456+994";
char source[] = "+()123456+IDDQD,994_id3kfa";
tprint("lex_test\n");
stream = source;
next_token();
while (token.kind) {
tprint("TOKEN: %d\n", token.kind);
switch (token.kind) {
case TOKEN_INT:
tprint("\tvalue: %lu\n", (long unsigned)token.val);
break;
default:
break;
}
print_token();
next_token();
}
tprint("OK\n");