Commit Graph

130 Commits

Author SHA1 Message Date
Benedikt Peetz d27eea711a
tests(error_derive): Init 2024-05-20 15:31:01 +02:00
Benedikt Peetz 4feae61a76
fix(parser/unchecked/attributes): Correctly enforce an identifier in `derive`
The ebnf grammar specifies an identifier (namely “Error” in the
`derive` attribute.), while the parser expected a string literal there.
2024-05-20 15:30:58 +02:00
Benedikt Peetz 9d14d2e061
refactor(example/main/.cargo/config): Add a `.toml` extension
Cargo is deprecating the old name (i.e. without the `.toml` extension).
2024-05-20 15:30:54 +02:00
Benedikt Peetz ecb8d4d2f0
build(treewide): Update 2024-05-20 15:30:54 +02:00
Benedikt Peetz 6a4c224c64
tests(results): Add a test for results 2024-05-20 15:30:53 +02:00
Benedikt Peetz 5dbc5e676d
docs(c_test): Add a poc regarding results in c 2024-05-20 15:30:51 +02:00
Benedikt Peetz 31493968b5 tests(src/types/newtypes): Test if a full round-trip works 2024-05-04 21:10:35 +02:00
Benedikt Peetz c2ef7d0a59 tests(tests): Update to new String wrapper 2024-05-04 10:40:17 +02:00
Benedikt Peetz df146b3fa6 chore(version): v0.1.1 2024-05-04 10:26:23 +02:00
Benedikt Peetz b750bb8495 chore(version): v0.1.0 2024-05-04 10:24:33 +02:00
Benedikt Peetz d57beeebd4 build(cog): Avoid building the project with nix, as this fails 2024-05-04 10:23:59 +02:00
Benedikt Peetz ec11a129bd fix(gitignore): Don't ignore the `Cargo.lock` file 2024-05-04 10:22:46 +02:00
Benedikt Peetz ddd9255c2e build(cog): Remove wrong toml header 2024-05-04 10:22:03 +02:00
Benedikt Peetz 07c38468ce chore(treewide): Renew copyright headers 2024-05-04 10:20:25 +02:00
Benedikt Peetz c7b8fb3f86 build(cog): Use new `renew_copyright_header` script 2024-05-04 10:19:57 +02:00
Benedikt Peetz 0a60c894d2 feat!(src/macros): Store allocation location in all strings
This makes it possible to automatically free the string in the correct
way expected by both c and rust.
Rust strings can now just be freed by the rust allocator, whilst c
strings are forgotten, so that the c allocator may free them.

BREAKING CHANGE: All usage of explicit mentions `std::string::String`
                 in your `handle_cmd` function will need to be replaced
                 by `trixy::types::newtypes::String`. Otherwise these
                 types should provide the same methods.
2024-05-04 10:12:20 +02:00
Benedikt Peetz 86427b0c1a refactor(src/macros/generate/host): Merge host generation in one module 2024-05-04 08:23:36 +02:00
Benedikt Peetz 0774ac2124 chore(Cargo.toml): Add further required metadata 2024-05-03 20:02:17 +02:00
Benedikt Peetz 475e7edadf chore(Cargo.toml): Add required metadata 2024-05-03 19:32:44 +02:00
Benedikt Peetz 366efd8331
docs(README): Mention the binary 2024-03-27 23:04:14 +01:00
Benedikt Peetz 1e078fa46d
tests(types): Update to represent a minimal change in the library 2024-03-27 23:03:45 +01:00
Benedikt Peetz 06c61ade54
docs(README): Add 2024-03-27 22:53:08 +01:00
Benedikt Peetz 6bed2a843a
fix(example/main): Ignore generated api.rs debugging file 2024-03-27 22:36:26 +01:00
Benedikt Peetz bd0b3c7dcf
fix(generate/convert/host/rust/derive/structure): Ignore `ptr` arg on todo 2024-03-27 22:36:24 +01:00
Benedikt Peetz 5a9de1ac0a
test(tests): Update `expected.md` files 2024-03-27 22:36:22 +01:00
Benedikt Peetz a766149521
style(treewide): Format 2024-03-27 22:36:19 +01:00
Benedikt Peetz 7f6c76a6a6
docs(example/main): Update to include newly added callbacks 2024-03-27 22:36:17 +01:00
Benedikt Peetz c69c00e1e9
feat(types/try_from_impl): Add a trixy::String from &str impl
This makes it more convenient to use the api.
2024-03-27 22:36:15 +01:00
Benedikt Peetz db5cd1a29b
fix(macros): Mark the main generate function as must_use
The generated FileTree should be used, calling the function without
using it is useless.
2024-03-27 22:36:12 +01:00
Benedikt Peetz 73416da73c
docs(macros/generate): Improve error output 2024-03-27 22:36:10 +01:00
Benedikt Peetz febb2deae3
fix(types/types_list): Add the supported primitive types
Otherwise, the generated type paths lead nowhere.
2024-03-27 22:36:09 +01:00
Benedikt Peetz a58030ce7e
fix(macros/generate/host/host/type): The function type is a c pointer 2024-03-27 22:36:05 +01:00
Benedikt Peetz 645b8d58f6
fix(macros/generate/host/c/function): Actually call the callback function
Previously, the generated c wrapper function did not call the callback
correctly.
2024-03-27 22:36:03 +01:00
Benedikt Peetz b5f5ae8b03
fix(macros/generate/host): Add unified support for conversions
These include from the c type to rust, vice versa.
2024-03-27 22:36:01 +01:00
Benedikt Peetz 3d35d395f3
fix(macros/generate/auxiliary/c/function): Also add inputs when no output 2024-03-27 22:35:59 +01:00
Benedikt Peetz 475dde282c
test(tests): Update 2024-03-27 22:35:57 +01:00
Benedikt Peetz 2e2028da31
build(update.sh): Include the main example in the updates 2024-03-27 22:35:54 +01:00
Benedikt Peetz bfeb62033a
fix(macros/generate/convert/auxiliary/c/arguments): Accept newlines
Multiple lines in one comment were not checked for, which resulted in
only one `*` before instead of a new one after every `\n`.
2024-03-27 22:35:52 +01:00
Benedikt Peetz a66c687421
fix(macros/generate/convert/auxiliary/c): Correctly generate function types 2024-03-27 10:54:01 +01:00
Benedikt Peetz 055cf2d5ce
test: Add new multiline display for c auxiliary code 2024-03-27 10:51:39 +01:00
Benedikt Peetz b1d47de7e3
test(multiple): Ignore, as it's not a important feature 2024-03-27 10:22:48 +01:00
Benedikt Peetz 9a0720e5e9
fix(docs/generate_docs): Cd into the correct directory to make ebnf2pdf work 2024-03-27 10:21:50 +01:00
Benedikt Peetz 838181c116
docs(grammar.ebnf): Don't reimplement already specified rules 2024-03-27 10:21:06 +01:00
Benedikt Peetz bb101c14fb
feat(macros/generate/convert/auxiliary): Merge comments in c
```c
/**
  comment one
  */
/**
  comment two
  */
/**
  comment three
  */
```
is just not as readable as:
```c
/**
  * comment one
  * comment two
  * comment three
  */
```
2024-03-27 10:17:38 +01:00
Benedikt Peetz 37ba451362
fix(types): Remove top-level support for generic types
These would still parse and would generate _stuff_, but the generated
stuff is just not ideal yet. So better not accept them, until their
internal support has matured.
2024-03-27 10:01:51 +01:00
Benedikt Peetz 9a8ccc9cc2
fix(macros/generate): Correctly generate function types 2024-03-27 10:01:07 +01:00
Benedikt Peetz 7a8dc66876
fix(parser/unchecked/parse_structure): Accept attributes on fields 2024-03-27 09:59:35 +01:00
Benedikt Peetz fae3de8b49
fix(parser/lexing/take_until_sucessive_match): Add utf8 support 2024-03-27 09:58:08 +01:00
Benedikt Peetz 9233a136ee
build(.envrc): Add `./target/debug` to PATH 2024-03-27 08:11:44 +01:00
Benedikt Peetz 4e3bdf273e
fix(binary/parse): Actually only perform the other steps, if asked for it
Otherwise, the lexing functionality becomes useless, if the Trixy file
can't be parsed and processed.
2024-03-27 08:10:33 +01:00