Parsing and AST for ZeroC's Slice intermediate definition language (ice)