Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Templates for defining data types/etc #138

Closed
solemnwarning opened this issue Dec 6, 2021 · 1 comment
Closed

Templates for defining data types/etc #138

solemnwarning opened this issue Dec 6, 2021 · 1 comment
Labels
feature A new feature
Milestone

Comments

@solemnwarning
Copy link
Owner

Something akin to 010 Editor's Binary Templates... maybe even use the same format if it isn't unreachable.

Also a visual editor for the templates might be interesting... along with extra features like setting comments from the template.

@solemnwarning solemnwarning added the feature A new feature label Dec 6, 2021
@solemnwarning solemnwarning added this to the 0.5.0 milestone Jan 8, 2022
@solemnwarning
Copy link
Owner Author

solemnwarning commented Jan 10, 2022

WIP support for 010-style Binary Templates is now working on the binary-template branch.

Still missing lots of functionality, but any relatively simple template will probably work.

Things that still need doing:

  • Implement distinct number types (int/double, signed/unsigned, clamping values to type limits)
  • Make string and char[] interchangable
  • Reference types as function parameters
  • Increment (++) and decrement (--) operators
  • do-thing-and-assign shorthand operators (+=, -=, *=, etc)
  • Write a manual...
  • Integration tests for preprocessor/parser/executor
  • Clean up error reporting in executor
  • Don't cross struct boundaries when resolving variables (and types?)
  • Add to CI coverage report
  • Scope variables/types within blocks
  • Don't allow function declarations inside other blocks
  • Tidy up UI
  • Allow operating on a range/selection rather than the whole file
  • Run template in a transaction
  • Yield when reading huge amounts of file data
  • Ternary operator
  • Parse x-1 as (x) (-) (1) rather than (x) (-1)
  • Hex and octal numbers
  • Populate array from a loop syntax
  • Declare anonymous enum variables
  • Fix random failures in parser...
  • Make array_extend() on empty file arrays work (don't depend on data_range)
  • Add template output window
  • Remember templates selected by "Browse" button

Things I'm probably not going to support in the first version:

  • Bitfields
  • Unions
  • Variable attributes (comments, disasm, etc)
  • Add checker for program structure, names/types/etc before passing to executor
  • Lexical variable scoping across function/struct boundaries

Things I'm not going to support:

  • DLL functions

Expect all of the above lists to grow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature
Projects
None yet
Development

No branches or pull requests

1 participant