There is a basic recusive descent parser for Pages format. The task is to rewrite this to use a single parser loop and a "context" class for every element. This involves: * Deriving the parser (source is src/lib/PAGParser.*) from IWORKParser. * Defining Pages-specific dictionary and parser state--see KEY2ParserState.h and KEYDictionary.h. They will not have any members initially, but they will likely be needed later. * Defining helper base classes for contexts--see KEY2XMLContextBase.h. * Replacing every parseFoo function by a context class. These define IWORKXMLContext API and each one of them should be derived from one of the helper base classes from previous point. Note that sf:text-body element is already handled by IWORKTextBodyContext, so the text-related parser functions do not have to be converted, but just dropped.
Migrating Whiteboard tags to Keywords: (EasyHack DifficultyBeginner SkillCpp) [NinjaEdit]