Add lexer and lexer spec
Merge branch 'whats_causing_the_segfault'