Changed parse() method to return IntermediateCode