Potential thoughts using parser off the top of my head: -------------------------------------------------------- * Load each screen into some object like so: * Story class: * int storyId * String storyName (ex: Wry Humor, Menal Condition, etc) * boolean isParseSuccessful - flag if parse of story was successful * ListerrorMessages - if want to possibly continue on errors but hold them some place for later. Error messages added to list in order they appear. * List pages - StoryPage contains page information. Potentially switch to map to avoid duplicate page ids? * StoryPage class: Used to hold each screen info for each story. * int sourceStoryId - Story id which page belongs to. * int pageId * String originalSubName - name of original sub routine in source file. * String pageText * boolean isParsed - maybe not needed. Flag to set if parsing of page was finished * String statusMessage - Generic message or note for page parsing, could be error or just info. * List pageChoices * PageChoice class: Used to hold each page's choices information. * String choiceText * boolean isParsed - same as above. maybe left out * String statusMessage - ditto * int choiceId - Choice id per page. Ex: sourePageId = 123 and choiceId = 1. * int sourcePageId - Page choice is from * int destinationPageId - Page choice will send you to if picked. * String destinationSubName - name of sub routine in source that is specified for that choice. Parsing will probably take multiple iterations to populate the objects above. Flow something like: 1st pass: Populate stories without page information. Generate story id, story name and set flags. 2nd pass: Populate all page information as well as choices but do not fill in destination page ids as they may have not been populated yet. DO fill in destinationSubName for each choice though. That will be used in pass #3. 3rd pass: Populate choice destination page ids by iterating through each choice and finding the matching page subName with the set destinationSubName in pass #2. After the data can be outputted to the multiple .dat files in the format used in Wry COBOL. (Or whatever else really...)