Commit Graph

150 Commits

Author SHA1 Message Date
WerWolv d1c05174b6 patterns: Allow casting integers to `str` 2021-09-21 23:45:45 +02:00
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 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 d3fb00d441 sys: Allow resources to be placed in appdata on windows 2021-09-13 23:55:50 +02:00
WerWolv 01670e5e85 patterns: Ignore superfluous semicolons 2021-09-13 10:48:45 +02:00
WerWolv 82cc528c49 api: Fix loading of string array settings (Recent files) 2021-09-12 20:29:05 +02:00
WerWolv 1df64031c8 patterns: Fix bitfield member access 2021-09-12 20:29:05 +02:00
WerWolv ea2d181741 utils: Fix file wrapper 2021-09-12 20:29:05 +02:00
WerWolv 987840e480 sys: Fixed settings not initializing correctly 2021-09-12 13:59:23 +02:00
WerWolv 86096708da patterns: Fixed bitfields not respecting endian setting
Various other improvements. Fixes #292
2021-09-12 13:08:52 +02:00
WerWolv 635f0606e0 patterns: Fixed enums not counting properly 2021-09-11 23:14:22 +02:00
WerWolv 8396e40fa0 tests: Added initial test structure 2021-09-11 14:41:18 +02:00
WerWolv a5274daeaa patterns: Fixed padding not padding 2021-09-10 22:12:37 +02:00
WerWolv b3d102419b sys: Fixed opening custom protocols in the web browser 2021-09-10 21:42:35 +02:00
WerWolv f96e529230 patterns: Fixed parent keyword 2021-09-10 21:00:18 +02:00
WerWolv 717f78ce7f patterns: Fix negative array sizes causing crashes 2021-09-10 17:33:02 +02:00
WerWolv f0697679f4 sys: Add local search for plugins and resources on Linux 2021-09-10 15:30:49 +02:00
WerWolv a8c9e96b72 fix: Inverted logic when checking for libmagic error 2021-09-09 01:56:48 +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 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 f29febdc86 patterns: Fix unions causing crashes on cleanup 2021-09-03 10:30:40 +02:00
WerWolv 4b40546750 views: Add simple pattern, library and magics store 2021-09-03 02:34:40 +02:00
WerWolv fcfaaacdcc patterns: Fix enum constant resolution 2021-09-03 02:33:45 +02:00
WerWolv 68d72eac16 sys: Move imhex path resolution away from utils 2021-09-03 02:33:15 +02:00
WerWolv 82cb7917e4 ui: Added half floats to data inspector 2021-09-01 00:23:45 +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 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 3138d2c4a2 tools: Added Anonfiles uploader 2021-08-28 00:45:59 +02:00
WerWolv d0aec62997 patterns: Move builtin functions to namespace. Add string functions 2021-08-27 09:56:20 +02:00
WerWolv b7003d499c patterns: Fix function parsing 2021-08-27 09:54:34 +02:00
WerWolv c053d54d10 patterns: Add multi-variable declarations 2021-08-25 17:54:47 +02:00
WerWolv 9289ebf4c9 patterns: Initial namespace support 2021-08-25 17:07:01 +02:00
WerWolv d3a227d0bc sys: Fixed open webpage command, added run command 2021-08-22 21:43:31 +02:00
WerWolv 66f94a452d net: Fix SSL verification with curl
This fixes update detection
2021-08-22 20:22:46 +02:00
WerWolv 6e0249d6ea sys: Bye bye glad 2021-08-21 15:03:44 +02:00
WerWolv 72cf94106c ui: Add interface scaling setting. Closes #7, #283 2021-08-21 13:55:21 +02:00
WerWolv 8ad0239bca ui/ux: Implement toolbar button functions 2021-08-21 13:53:50 +02:00
WerWolv 37d2d58d2f ui: Added toolbar 2021-08-21 00:52:11 +02:00
WerWolv b66304fc91 ui: Use borderless window on Windows 2021-08-18 22:36:46 +02:00
WerWolv f9f67d3bcd sys: More mac os compile fixes 2021-08-17 21:55:06 +02:00
WerWolv 2ac1a58d5e sys: Fix resource embedding on macos 2021-08-17 18:24:15 +02:00
WerWolv a53cfaa63a sys: Make crypto wrapper compatible with mbedtls 2 and 3 2021-08-17 17:28:33 +02:00
WerWolv 4d677f430b sys: Save project backup if ImHex crashes 2021-08-17 13:41:44 +02:00
WerWolv f8ed89ee2c patterns: Allow bitfield fields to be accessed as like other members 2021-08-16 23:05:23 +02:00
WerWolv 132164c3de patterns: Fix type operators not working correctly 2021-08-02 12:08:54 +02:00