Commit Graph

472 Commits

Author SHA1 Message Date
WerWolv c051f5d3e7 patterns: Rewrite evaluation engine (#306)
* patterns: Rewrite most of the evaluator to mainly use polymorphism instead of just RTTI

* patterns: Fixed a couple of AST memory leaks

* patterns: Parse string operations correctly

* patterns: Various fixes and cleanup

* patterns: Implement primitive function definitions

Function parameters now need to provide their type in the definition

* patterns: Added function variable definition and assignment

* patterns: Added remaining function statements

* patterns: Added unsized and while-sized arrays

* patterns: Added multi variable declarations to functions

* patterns: Added std::format built-in function

* patterns: Allow passing custom types to functions

* patterns: Added attributes and new "format" attribute

* patterns: Use libfmt for std::print instead of custom version

* patterns: Remove unnecessary string compare function

* pattern: Fix preprocessor directives

* patterns: Fix unit tests

* patterns: Added cast expression

* patterns: Handle endianess in function parameters

* patterns: Added casting to different endian

* patterns: Added 'str' type for functions
2021-09-21 21:29:18 +02:00
WerWolv ed9e463550 ui: Added diff view 2021-09-21 19:54:13 +02:00
WerWolv 26a0352851 tests: Fixed unit test compiling 2021-09-21 02:48:41 +02:00
WerWolv 8631cb0c2a sys: Allow multiple files to be loaded simultaneously 2021-09-21 02:29:54 +02:00
WerWolv fef072f721 ui: Moved hex editor settings to settings menu 2021-09-20 23:40:36 +02:00
WerWolv 46f196cb3f sys: Added debug function to crash ImHex 2021-09-20 20:48:08 +02:00
WerWolv 772b50fdfb fix: Missing include on Linux 2021-09-16 22:34:48 +02:00
WerWolv bf493c5763 ui: Add follow system theme option 2021-09-16 22:23:51 +02:00
Russ e1f410ceff warnings: fix format-security warnings (#299) 2021-09-15 10:02:16 +02:00
WerWolv 222e9f6645 fix: File -> Resize crashing 2021-09-13 17:26:30 +02:00
WerWolv 987840e480 sys: Fixed settings not initializing correctly 2021-09-12 13:59:23 +02:00
WerWolv 36f51c427b ui: Added "Quit ImHex" option to File menu 2021-09-10 21:48:51 +02:00
WerWolv 5c304c002b fix: Constants store page not getting cleared on reload
Fixes #290
2021-09-10 21:16:08 +02:00
WerWolv 1da2ca1eb8 ui: Added ImHex's official documentation to help menu and welcome screen 2021-09-09 23:17:55 +02:00
WerWolv ccac2e497d sys: Finish implementing constants view and its store 2021-09-09 12:58:44 +02:00
WerWolv 6ee8c37cf5 ui: Fixed duplicate store localization ids 2021-09-09 02:03:39 +02:00
WerWolv c605986e8a fix: Store download buttons only working in order 2021-09-09 01:57:11 +02:00
WerWolv 4cc637c0b2 sys: Finish up the online store 2021-09-08 17:22:54 +02:00
WerWolv 6cf8369a24 fix: Tips don't show again checkmark inversion 2021-09-08 16:40:44 +02:00
WerWolv e74c0f5cf5 sys: Tons of long overdue cleanup
- std::string -> const std::string& where needed
- Added a FileIO abstraction class
- Fixed recent files not updating
- Removed localization file from global include
- Renamed lang to pattern_language/pl
- Renamed EventFileDropped to RequestFileOpen
2021-09-08 15:18:24 +02:00
WerWolv 680587e050 sys: Massively improve string search memory usage 2021-09-06 22:45:55 +02:00
WerWolv ee7c6a91a7 patterns: Add optimization for arrays of statically sized types 2021-09-06 20:35:38 +02:00
WerWolv 6879cf765f sys: Cleanup libmagic mess 2021-09-06 16:15:05 +02:00
WerWolv 4b40546750 views: Add simple pattern, library and magics store 2021-09-03 02:34:40 +02:00
WerWolv 68d72eac16 sys: Move imhex path resolution away from utils 2021-09-03 02:33:15 +02:00
WerWolv 19c367b540 ui: Added strings to data inspector 2021-09-01 02:01:50 +02:00
WerWolv 5f63db4a34 ui: Add first unifont plane by default 2021-08-31 15:22:00 +02:00
WerWolv 32eddbf581 ui: Fix wide characters and utf-8 display in inspector 2021-08-30 19:12:46 +02:00
WerWolv 1a157c7256 sys: Fixed variable name copy-paste 2021-08-29 22:17:43 +02:00
WerWolv 633fa7213a sys: More compile time improvements 2021-08-29 22:15:18 +02:00
WerWolv 02d31d2d2a sys: First attempt at reducing build times 2021-08-29 14:18:45 +02:00
WerWolv f60f9f9fc9 patterns: Fix endian settings not applying to char16 2021-08-29 11:10:48 +02:00
WerWolv a7e2c06bc4 sys: Better name for the pattern editor view 2021-08-28 21:51:33 +02:00
WerWolv 4b0b9acceb sys: Create all new directory structures in init 2021-08-28 16:29:15 +02:00
WerWolv a9a2ec7c7b sys: Properly trigger debugger in signal handler 2021-08-28 16:28:58 +02:00
WerWolv 16d9571743 sys: Mark project file as dirty when modifying pattern 2021-08-28 16:16:06 +02:00
WerWolv c1751f39ae tools: Added wikipedia term definition search 2021-08-28 16:02:53 +02:00
WerWolv e9c349fc55 ui: Correct some uses of ImGui::EndChild() 2021-08-28 14:22:02 +02:00
WerWolv 8dcd5c6e34 ui: Improve byte displaying in bookmarks 2021-08-28 01:47:26 +02:00
WerWolv 3138d2c4a2 tools: Added Anonfiles uploader 2021-08-28 00:45:59 +02:00
WerWolv c56159da89 sys: Only restart ImHex when a relevant setting changed 2021-08-27 09:57:03 +02:00
WerWolv d0aec62997 patterns: Move builtin functions to namespace. Add string functions 2021-08-27 09:56:20 +02:00
jam1garner a7b9b185bb ui: Update cheat sheet with recent changes (#278)
* Add Built-in functions section to cheat sheet

* Add Math Expressions section to cheat sheet

* Move variable placement to follow 'Structs' section

* Add undocumented built-in functions to cheat sheet
2021-08-25 19:54:59 +02:00
WerWolv 48b5262855 ui: Fix restoring window after minimized 2021-08-25 19:32:47 +02:00
WerWolv 9289ebf4c9 patterns: Initial namespace support 2021-08-25 17:07:01 +02:00
WerWolv a88cd4d23d ui: Improved welcome screen drawing 2021-08-22 22:11:55 +02:00
WerWolv d3a227d0bc sys: Fixed open webpage command, added run command 2021-08-22 21:43:31 +02:00
WerWolv c84c106b17 ui: Add tips of the day 2021-08-22 21:11:01 +02:00
WerWolv 2362e7a11f sys: Enable logging colors on Windows, hide console
Console log can still be seen now when running ImHex through the console but the window won't pop up by default anymore
2021-08-22 20:24:42 +02:00
WerWolv 6e0249d6ea sys: Bye bye glad 2021-08-21 15:03:44 +02:00