Simple language, working on the side.
Example usage:
$ cata examples/main.cat
<type=`TOKEN_ID`, int_type=`0`, value=`main`>
<type=`TOKEN_EQUALS`, int_type=`1`, value=`=`>
<type=`TOKEN_LPAREN`, int_type=`2`, value=`(`>
<type=`TOKEN_ID`, int_type=`0`, value=`argc`>
<type=`TOKEN_ID`, int_type=`0`, value=`int`>
<type=`TOKEN_ID`, int_type=`0`, value=`argv`>
<type=`TOKEN_ID`, int_type=`0`, value=`Array`>
<type=`TOKEN_ID`, int_type=`0`, value=`string`>
<type=`TOKEN_RPAREN`, int_type=`3`, value=`)`>
<type=`TOKEN_COLON`, int_type=`6`, value=`:`>
<type=`TOKEN_ID`, int_type=`0`, value=`int`>
<type=`TOKEN_ARROW_RIGHT`, int_type=`10`, value=`=>`>
<type=`TOKEN_GT`, int_type=`9`, value=`>`>
<type=`TOKEN_LBRACE`, int_type=`4`, value=`{`>
<type=`TOKEN_ID`, int_type=`0`, value=`return`>
<type=`TOKEN_INT`, int_type=`11`, value=`0`>
<type=`TOKEN_LBRACE`, int_type=`4`, value=`}`>