Ast - DO NOT MERGE

Just want some people to look over it; haven't tried lexing or yaccing yet