Index: uspace/app/bithenge/script.c
===================================================================
--- uspace/app/bithenge/script.c	(revision 600f5d197151eb0ed71c0ce7e030405f7c2231e1)
+++ uspace/app/bithenge/script.c	(revision 02dcb2085d47504d22fe5a936480699f8a2ccbe8)
@@ -165,4 +165,12 @@
 	if (ch == '\0') {
 		state->token = TOKEN_EOF;
+	} else if (ch == '#') {
+		while (state->buffer[state->buffer_pos] != '\n'
+		    && state->buffer[state->buffer_pos] != '\0') {
+			state->buffer_pos++;
+			fill_buffer(state);
+		}
+		next_token(state);
+		return;
 	} else if (isspace(ch)) {
 		// Will eventually reach the '\0' at the end
Index: uspace/dist/src/bithenge/trip.bh
===================================================================
--- uspace/dist/src/bithenge/trip.bh	(revision 02dcb2085d47504d22fe5a936480699f8a2ccbe8)
+++ uspace/dist/src/bithenge/trip.bh	(revision 02dcb2085d47504d22fe5a936480699f8a2ccbe8)
@@ -0,0 +1,15 @@
+transform point = struct {
+	.lat <- uint32le;
+	.lon <- uint32le;
+};
+
+transform named_point = struct {
+	.name <- ascii <- zero_terminated;
+	<- point;
+};
+
+transform main = struct {
+	.from <- named_point;
+	.to <- named_point;
+	.distance <- uint32le; # in kilometers
+};
