Commit Graph

62 Commits

Author SHA1 Message Date
WerWolv 7b089a1f2f Fixed unions not advancing offset 2021-01-10 22:57:04 +01:00
WerWolv 867faef496 Fixed invalid applying of define replacements 2021-01-10 22:52:58 +01:00
WerWolv 557313ae1e Fixed boolean OR never being parsed 2021-01-10 22:52:28 +01:00
WerWolv e4c2049975 Fixed off-by-one error for array bound check 2021-01-10 22:52:12 +01:00
WerWolv dc6c1fa622 Fixed issues with struct and union members when using conditionals 2021-01-10 19:40:44 +01:00
WerWolv 9fe8a0f491 Fixed enums not counting towards size of structs / enums 2021-01-10 18:24:58 +01:00
WerWolv 43d6b48cab Fixed rvalue endianess 2021-01-10 17:18:14 +01:00
WerWolv ad40c53eb2 Fixed enum parse/evaluate error and crash 2021-01-10 17:14:38 +01:00
WerWolv 8f16a733b9 Fixed bitfields behaving like they have no size. Fixes #127 2021-01-10 13:40:07 +01:00
WerWolv bc4991f915 Improved type consistency throughout the language 2021-01-10 00:40:57 +01:00
WerWolv 7a8e923b41 Added print & warnAssert functions and a colored console 2021-01-09 23:48:42 +01:00
WerWolv e54dbcf574 Added assert function. Resolves #123 2021-01-09 21:47:52 +01:00
WerWolv c5d023822d Added functions with string literals as parameter 2021-01-09 21:47:52 +01:00
WerWolv e28d6e7451 Added string literals and improved character parsing 2021-01-09 21:47:52 +01:00
Philipp Kovalev 575903f921
fix(lang): fixes occurrence index in findSequnce built-in fucntion (#120) 2021-01-09 18:48:34 +01:00
WerWolv 17ecdbf8ec Allow accessing of pointer values in mathematical expressions 2021-01-08 20:12:16 +01:00
WerWolv 69f4c6e5e9 Allow global variables to be accessed and used in expressions 2021-01-08 17:37:05 +01:00
WerWolv fd98db1b70 Fixed error line number mismatch when including files or using comments 2021-01-08 17:14:35 +01:00
WerWolv 205f3a327e Fixed endian specifier not applying 2021-01-08 16:56:39 +01:00
WerWolv f84b661af7 Fixed pointers to built-in types and endian handling 2021-01-08 15:03:53 +01:00
WerWolv 56330686be Fixed crash when creating an enum 2021-01-08 11:58:07 +01:00
WerWolv e48c61cf27 Hopefully fixed macos compile finally 2021-01-07 21:52:03 +01:00
WerWolv 08c802f733 Added unbounded char arrays for null-terminated strings 2021-01-07 21:16:34 +01:00
WerWolv 7e4babaca8 Use custom versions of concepts for macos support 2021-01-07 20:06:28 +01:00
WerWolv 5d1e53f469 Added boolean patterns 2021-01-07 17:34:50 +01:00
WerWolv bef20f7808 Added function calling as well as a few builtin functions 2021-01-07 15:37:37 +01:00
WerWolv 2dbfbe70af Fixed rvalue value evaluation 2021-01-07 01:56:15 +01:00
WerWolv 3f1d9ed366 Added ternary condition operator 2021-01-07 01:19:54 +01:00
WerWolv b30bb21646 Added unary operators +, -, ~ and ! 2021-01-07 00:41:06 +01:00
WerWolv acfd5aa02f Added if, else and else if to pattern language 2021-01-07 00:02:51 +01:00
WerWolv 7fd0d87d56 Allow enum entries to be accessed via the scope resolution operator 2021-01-06 16:30:30 +01:00
WerWolv ceee311efa Added support for more literal types and scope resolution operator parsing 2021-01-05 14:42:08 +01:00
WerWolv f137d759c8 Allow zero-sized arrays again 2021-01-04 16:25:03 +01:00
WerWolv f5250d6bcf Fixed rvalues not evaluating correctly in nested structs 2021-01-04 16:13:03 +01:00
WerWolv af42d2ff66 Properly convert rvalue to mathematical expression 2021-01-04 14:10:59 +01:00
WerWolv 78ef07cf0f
Pattern Language rewrite (#111)
* Initial parser rewrite effort

Lexer and Token cleanup, Parser started over

* Greatly improved parser syntax

* Reimplemented using declarations and variable placement parsing

* Added back unions and structs

* Added enums as well as mathematical expressions (+, -, *, /, <<, >>, &, |, ^)

* Code style improvement

* Implemented arrays and fixed memory issues

* Fixed more memory issues in parser, reimplemented validator, evaluator and patterns

* Fixed builtin types, arrays and reimplemented strings

* Improved error messages

* Made character a distinct type, used for chars and strings

* Implemented padding, fixed arrays

* Added bitfields

* Added rvalue parsing, no evaluating yet

* Added .idea folder to gitignore

* Fixed build on MacOS

* Added custom implementation of integral concept if not available

* Rebased onto master

* Fixed array variable decl crash

* Added rvalues and dot syntax

* Lower case all pattern language error messages

* Fixed typo in variable name

* Fixed bug where preprocessor would not ignore commented out directives

* Reimplemented pointers

* Fixed rebase issues
2021-01-02 20:27:11 +01:00
WerWolv 144e30775f Fixed duplicated utils.hpp 2020-12-27 15:54:12 +01:00
WerWolv dbbc525174
Added Plugin support (#102)
* Build refactoring and initial plugin support

* Possibly fixed linux / mac build

* Added libdl to libglad build script

* Add glfw to imgui dependencies

* Refactored common functionality into "libimhex" for plugins

* Added plugin loading and example plugin

* Added proper API for creating a custom view and a custom tools entry with plugins
2020-12-22 18:10:01 +01:00
Mary 310059f274 Support macOS
This allows building and running under macOS.
There is still some issues with dpi but the application compiles and run now.
2020-12-18 21:44:13 +01:00
WerWolv e1e73077a1 Improved language parsing and validation. This fixes #58 2020-12-07 23:49:19 +01:00
WerWolv b06f5630c7 Fixed additional issues with padding and zero sized arrays 2020-12-06 23:15:51 +01:00
WerWolv 5c96a28fb6 Actually fix crash when creating zero sized arrays
If size is zero, the array will be treated as non-existent. This fixes #50
2020-12-06 22:52:15 +01:00
WerWolv 7a9d7b59e8 Added overriding of endianess for individual variables 2020-12-06 21:40:57 +01:00
WerWolv 4720cf9fbe Added possible support for MacOS. Completely untested.
Relevant: #32
2020-12-06 13:48:56 +01:00
WerWolv 6456a68805 Fixed crash when array size variable has a value of zero 2020-12-05 10:36:30 +01:00
WerWolv c90ef343c1 Added math evaluator / calculator to tools window 2020-11-28 21:55:52 +01:00
WerWolv 3827919a32 Added error messages and error display to pattern language editor 2020-11-27 21:20:23 +01:00
WerWolv d55bea7c46 Added character literals to pattern language 2020-11-27 14:18:28 +01:00
WerWolv fde9dc7961 Various small fixes 2020-11-27 09:09:59 +01:00
WerWolv 8297e22f10 Added global big and little endian support to the pattern parser 2020-11-22 16:22:02 +01:00