* Implement/fix Ghidra imports for multiple and virtual inheritance
Unfortunately, the handling in Ghidra is still far from perfect. This is a good place to start, though.
* Support offsets in vbase pointers
* Support `this adjust`
* minor stylistic improvement
* Improvements to documentation
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
* Add draft for Ghidra function import script
* feature: Basic PDB analysis [skip ci]
This is a draft with a lot of open questions left. Please do not merge
* Refactor: Introduce submodules and reload remedy
* refactor types and make them Python 3.9 compatible
* run black
* WIP: save progress
* fix types and small type safety violations
* fix another Python 3.9 syntax incompatibility
* Implement struct imports [skip ci]
- This code is still in dire need of refactoring and tests
- There are only single-digit issues left, and 2600 functions can be imported
- The biggest remaining error is mismatched stacks
* Refactor, implement enums, fix lots of bugs
* fix Python 3.9 issue
* refactor: address review comments
Not sure why VS Code suddenly decides to remove some empty spaces, but they don't make sense anyway
* add unit tests for new type parsers, fix linter issue
* refactor: db access from pdb_extraction.py
* Fix stack layout offset error
* fix: Undo incorrect reference change
* Fix CI issue
* Improve READMEs (fix typos, add information)
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
* Parser refactor:
- Handling LIRBARY and STRING markers
- Extracting global variable name for future comparison
- Marking function static variables
- More fluent error messages
* String constants annotated with STRING
* fix variable name
* Should compare LIBRARY markers
* Open discussion
* Move annotations of header-implemented functions back to `.h` files
* Adjust `README.md`
* Relocate annotation
* linter
* Comment markers in headers only, rename script, update github actions
* type hint compat
* Rename github action, better argparse for linter
* Type hints, working test for byname ignore
* Move annotation
* CI rename and enable warnfail, enforce mode always on
* Two step linting
* or one step
* continue on error
* two jobs instead
* Fixes
---------
Co-authored-by: disinvite <disinvite@users.noreply.github.com>
* Adjustments to "decomp" language
* Fix a comment
* Fix accidental clang-formatting
* Fix order
* Fix order
* Remove junk
* Fix OFFSET
* Adjustments based on new suggestions
* Annotate globals
* Globals in ISLE
* More globals
* Merge from parser2 branch
* Allow prepending space for exact marker match
* To eliminate noise, require the 0x prefix on offset for marker match
* fix test from previous
* Count tab stops for indented functions to reduce MISSED_END_OF_FUNCTION noise
* FUNCTION to SYNTHETIC where needed
* Missed marker conversion on SetAtomId
* pylint cleanup, remove unused code
* Fix unexpected function end, add more unit tests
* Be more strict about synthetic name syntax
* Revert "Missed marker conversion on SetAtomId"
This reverts commit d87d665127.
* Revert "FUNCTION to SYNTHETIC where needed"
This reverts commit 8c815418d2.
* Implicit lookup by name for functions
* Fix VTABLE SYNTHETIC and other decomp markers
* Get vtable class name
* Vtable marker should identify struct
* No colon for SIZE comment
* Update README.md
* Update README.md
* Update CONTRIBUTING.md
* Update README.md
* Update README.md
* Update CONTRIBUTING.md
* Update README.md
* Update CONTRIBUTING.md
* Fix destructor/annotation
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
---------
Co-authored-by: disinvite <disinvite@users.noreply.github.com>
* Create common print_diff function
* Add pylint and black
* Fix linting, move classes to utils
* Add black/pylint to github actions
* Fix linting
* Move Bin and SymInfo into their own files
* Split out format
* Tidy up workdlows and pip, add readme
* Lint tests, add tests to readme
* First commit of order tool
* More flexible match on module name. Bugfix on blank_or_comment
* Report inexact offset comments in verbose mode. Bugfix for exact regex
* Refactor checkorder into reusable isledecomp module
* Find bad comments in one pass, add awareness of TEMPLATE
* Refactor of state machine to prepare for reccmp integration
* Use isledecomp lib in reccmp
* Build isledecomp in GH actions, fix mypy complaint
* Ensure unit test cpp files will be ignored by reccmp
* Allow multiple offset markers, pep8 cleanup
* Remove unused variable
* Code style, remove unneeded module and TODO
* Final renaming and type hints
* Fix checkorder issues, add GH action and enforce (#2)
* Fix checkorder issues
* Add GH action
* Test error case
* Works
* Fixes
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>