# Goals: VB6Parse aims to be a complete, end-to-end parser library for VB6. Including, but not limited to: * (*.vbp) VB6 project files. * (*.bas) VB6 module files. * (*.vbw) VB6 windows files for determining editor windows when they are opened. * (*.frm) VB6 Forms. * (*.frx) VB6 Form Resource files. * (*.dsx) VB6 Data Environment files. * (*.dsr) VB6 Data Environment Resource files. * (*.cls) VB6 Class files. * (*.ttx) Crystal Report files. * (*.ctl) User Control files. * (*.dob) User Document files. ## Current support: First work has focused on the (vbp) project files since is the method to discover all other files that should be linked/referenced within a project.
(*.vbp) VB6 Project file parser feature support: - [x] **Project Types** - [x] Exe - [x] Control - [x] OleExe - [x] OleDll - [x] **References** - [x] **Objects** - [x] **Modules** - [x] **Designers** - [x] **Classes** - [x] **Forms** - [x] **UserControls** - [x] **UserDocuments** - [x] **ResFile32** - Partial support. Default value not correctly handled. - [x] **IconForm** - Partial support. Default value not correctly handled. - [x] **Startup** - Partial support. Default value not correctly handled. - [x] **HelpFile** - Partial support. Default value not correctly handled. - [x] **Title** - Partial support. Default value not correctly handled. - [x] **ExeName32** - Partial support. Default value not correctly handled. - [x] **Command32** - Partial support. Default value not correctly handled. - [x] **Name** - Partial support. Default value not correctly handled. - [x] **HelpContextID** - Partial support. Default value not correctly handled. - [x] **CompatibleMode** - Partial support. Default value not correctly handled. - [x] **NoControlUpgrade** - Full support for the 'ActiveX Control Upgrade' option, including the default or empty reverting to true. - [x] **MajorVer** - Partial support. Default value not correctly handled. - [x] **MinorVer** - Partial support. Default value not correctly handled. - [x] **RevisionVer** - Partial support. Default value not correctly handled. - [x] **AutoIncrementVer** - Partial support. Default value not correctly handled. - [x] **ServerSupportFiles** - [x] **VersionCompanyName** - [x] **VersionFileDescription** - [x] **VersionLegalCopyright** - [x] **VersionLegalTrademarks** - [x] **VersionProductName** - [x] **CondComp** - [x] **CompilationType** - [x] **OptimizationType** - [x] **NoAliasing** - [x] **CodeViewDebugInfo** - [x] **FavorPentiumPro(tm)** - Yes, this is exactly what this looks like inside the project file, '(tm)' and all. - [x] **BoundsCheck** - [x] **OverflowCheck** - [x] **FlPointCheck** - [x] **FDIVCheck** - [x] **UnroundedFP** - [x] **StartMode** - [x] **Unattended** - [x] **Retained** - [x] **ThreadPerObject** - [x] **MaxNumberOfThreads** - [x] **DebugStartOption** - [x] **AutoRefresh**
(*.cls) VB6 Class file parser feature support: - [x] **Header** - [x] **VB6 Token stream lexed**
(*.bas) VB6 module file parser feature support: - [x] **Header** - [x] **VB6 Token stream lexed**
#### VB6Project API: - [x] Unit Testing (partial). - [x] Integration/End-to-End Testing. - [x] Benchmarking. - [ ] Top level API finalization. - [x] Documentation. - [x] Examples. ### Test: Be sure to use ```git submodule update --init --recursive``` to get all integration test submodule data.