Friend, I think you need to provide us with more information about just exactly what this file is. And, what sort of “executable data structures” you need to get ... what exactly does that mean?
Do you have a BNF grammar for this language (subset)? If you do, then it sure does appear that Marpa ought to be able to give you at-least an AST for it, and that you could go forward from there. Any other approach, e.g. Parse::RecDescent, would involve a lot of wheel-reinventing, whereas I would expect that a known-good complete BNF grammar is at-hand.