Compare commits

..

98 Commits

Author SHA1 Message Date
Moritz Hölting edea6d9db1 allow function calls in template strings, update changelog 2025-10-14 13:41:53 +02:00
Moritz Hölting 93baeb6ed0 implement comptime while loops 2025-10-08 15:04:57 +02:00
Moritz Hölting 1b2413fb5c transpile comptime value to data location 2025-09-17 15:39:57 +02:00
Moritz Hölting d7d165ffdc check that assignments to comptime variables are only done in comptime conditionals 2025-09-16 23:31:13 +02:00
Moritz Hölting 22d7ec9707 implement basic while loop 2025-09-11 16:08:56 +02:00
Moritz Hölting e99b32f624 list alternative identifiers using oxford_join 2025-09-07 12:58:35 +02:00
Moritz Hölting 0918f33721 add handling for template strings everywhere 2025-09-02 22:47:37 +02:00
Moritz Hölting 47dc9f0f6b basic transpilation of template string working 2025-09-02 18:05:21 +02:00
Moritz Hölting 9cc77ce2a9 use strsim to suggest similar identifiers in UnknownIdentifier error 2025-08-27 17:05:21 +02:00
Moritz Hölting 1ed2919ab0 fix compile error without "shulkerbox" feature 2025-08-27 11:45:30 +02:00
Moritz Hölting 41700fd783 fix parse error panicing in function args 2025-08-27 10:08:41 +02:00
Moritz Hölting 8980a0b21d allow escaping of $ in macro string 2025-08-26 21:15:41 +02:00
Moritz Hölting 72ed16893d implement new tokenizer & parser for TemplateStringLiteral 2025-08-25 19:12:20 +02:00
Moritz Hölting 598158d0d4 rename MacroString to TemplateString 2025-08-25 15:51:21 +02:00
Moritz Hölting 528b4edac6 implement compile-time function arguments 2025-08-19 15:14:12 +02:00
Moritz Hölting 8564f4b0bf fix semantic analysis to allow assignment to indexed identifier 2025-08-13 18:55:47 +02:00
Moritz Hölting bd20af0f3d fix comptime variable errors 2025-08-13 18:24:48 +02:00
Moritz Hölting 8e5f453988 only use function arg storage if required 2025-08-13 18:05:15 +02:00
Moritz Hölting 0f553a0234 apply clippy lints from version 0.1.89 2025-08-13 15:26:36 +02:00
Moritz Hölting 50c836d4f0 change syntax of array declaration: move brackets from after name to after type 2025-08-13 12:58:35 +02:00
Moritz Hölting 1b181057e5 add script for extracting EBNF grammar from doccomments 2025-08-13 09:51:46 +02:00
Moritz Hölting 008468621e implement rest of member access transpilation 2025-08-06 15:28:03 +02:00
Moritz Hölting b81f47bde3 implement first parts of member access 2025-06-18 11:44:26 +02:00
Moritz Hölting fe2934f120 run as expression, implement return statement 2025-04-07 18:01:35 +02:00
Moritz Hölting 8fe8813a51 implement uninstall annotation 2025-04-07 14:05:54 +02:00
Moritz Hölting 8c29d83665 allow importing global variables, get rid of functions and aliases field of transpiler 2025-04-07 01:09:34 +02:00
Moritz Hölting c3aaca6abf implement global variables (without imports) 2025-04-01 15:19:22 +02:00
Moritz Hölting ab1ca8ee37 implement first version of compiler variables 2025-04-01 01:00:36 +02:00
Moritz Hölting 232409a55c change the syntax to set the type of tags 2025-03-31 23:01:27 +02:00
Moritz Hölting b4f7fe1cb6 fix compile errors without shulkerbox feature 2025-03-31 22:47:16 +02:00
Moritz Hölting 84d55977e7 reimplement semantic checking 2025-03-31 21:40:59 +02:00
Moritz Hölting 992b6ca300 implement integer and boolean function arguments 2025-03-30 19:38:08 +02:00
Moritz Hölting 7650224aac improve compiler-internal function print 2025-03-28 13:54:25 +01:00
Moritz Hölting 07cacde886 first version of print internal function for easier displaying variable values 2025-03-16 23:26:20 +01:00
Moritz Hölting d10ae975f5 implement tag and array variables 2025-03-16 20:46:18 +01:00
Moritz Hölting 22e42809b9 implement todos in scoreboard variable 2025-03-16 19:25:25 +01:00
Moritz Hölting 72a2121b61 implement score variable declarations 2025-03-15 20:28:26 +01:00
Moritz Hölting 941bb6f868 introduce shulkerscript module in lua 2025-03-15 17:53:20 +01:00
Moritz Hölting 6224b00d17 path other variable types to lua (except functions) 2025-03-15 15:55:57 +01:00
Moritz Hölting 8313c3abef fix error in macro string parsing from string 2025-03-15 09:31:08 +01:00
Moritz Hölting 20edfdb0ea allow marking return value from lua as containing macro 2025-03-15 00:22:33 +01:00
Moritz Hölting 2e6ca8a54e fix recursive function calls leading to stack overflow 2025-03-15 00:20:40 +01:00
Moritz Hölting 5c2f73e994 fix compile error when compiling without shulkerbox feature 2025-03-14 13:20:24 +01:00
Moritz Hölting d123d2c0ed allow passing some variables into lua 2025-03-14 12:51:17 +01:00
Moritz Hölting 2e141de6b3 remove duplicate function, optimize function calls with mixed static and dynamic parameters 2025-03-13 14:35:59 +01:00
Moritz Hölting bae7e9e0ea implement dynamic (scoreboard, storages) values passed in as macro parameters
- does not compile without the 'shulkerbox' feature enabled
2025-03-12 23:37:32 +01:00
Moritz Hölting bde7fc3b5e implement more missing functionality marked with todo! 2025-03-12 13:38:27 +01:00
Moritz Hölting 31e45a57cb shortcut when using literal booleans 2025-03-11 21:43:44 +01:00
Moritz Hölting e1f1c35513 remove possibility of using same transpiler twice 2025-03-11 21:00:50 +01:00
Moritz Hölting 43f0af6435 change conditional to use expression instead of individual condition 2025-03-11 19:43:26 +01:00
Moritz Hölting 97587f79b4 implement expressions as conditions 2025-03-11 18:54:29 +01:00
Moritz Hölting 769402591f implement scoreboard operations for variables 2025-03-11 13:38:21 +01:00
Moritz Hölting 2621713733 implement more primary expressions (identifier, parenthesized, prefixed) 2025-03-10 15:57:38 +01:00
Moritz Hölting 096e637a77 implement binary expression parsing and transpiling if possible at compile time
- many TODOs
- transpilation for runtime evaluation missing
2025-03-08 13:23:59 +01:00
Moritz Hölting 8dfd1e053b implement variable assignments 2025-03-07 17:36:25 +01:00
Moritz Hölting b1301b3e8c fix generating same data location for shadowed variables 2025-03-07 17:35:31 +01:00
Moritz Hölting 8f241d6fcf implement boolean storage variable 2025-03-07 16:47:48 +01:00
Moritz Hölting c3c476ad94 implement basic assignment transpilation 2025-03-06 14:40:26 +01:00
Moritz Hölting b2075f0504 improve debug formatting for Scope and FunctionData 2025-03-05 14:43:10 +01:00
Moritz Hölting 23b14d7667 rework annotations & transpile single int declarations without assignment 2025-02-27 22:03:45 +01:00
Moritz Hölting 9e652e7c85 change function transpilation to use scope instead of separate map 2025-02-26 13:05:59 +01:00
Moritz Hölting 9899b9add1 prepare transpiling variables 2025-02-25 22:52:39 +01:00
Moritz Hölting 4f31f08875 fix variable declaration parsing 2025-02-25 20:45:27 +01:00
Moritz Hölting 9d5c40f150 implement variable declaration parsing 2025-02-25 20:45:27 +01:00
Moritz Hölting fe293b2dc4 make serialization of source file thread local 2025-02-19 09:32:47 +01:00
Moritz Hölting 0bf9625620 Change development branch name in github action workflow 2025-02-18 10:18:16 +01:00
Moritz Hölting 52ee83e0da add example compiler to demonstrate basic functionality and usage 2025-02-17 23:05:51 +01:00
Moritz Hölting f3f69faace Merge branch 'feature/macro-functions' into develop 2025-02-17 13:58:58 +01:00
Moritz Hölting c30bcc3018 remove dependency on feature "rc" of serde 2025-02-16 20:41:20 +01:00
Moritz Hölting 4a5f34a07b change back to derive (de-)serialize for Span 2025-02-16 20:41:20 +01:00
Moritz Hölting 9ee888f996 update changelog and make flexbuffers dependency optional 2025-02-16 20:41:20 +01:00
Moritz Hölting 572c68ca10 change order of serialization of Span by serializing to temporary buffer 2025-02-16 20:41:20 +01:00
Moritz Hölting b11f4d1caf implement custom deserialize
- requires opposite order of data and source_files than what is serialized
2025-02-16 20:41:20 +01:00
Moritz Hölting 5fbe40c41f implement custom serialize for Span 2025-02-16 20:41:20 +01:00
Moritz Hölting 346b97a58a update dependencies 2025-02-15 14:40:58 +01:00
Moritz Hölting a99a155d76 fix compilation errors depending on feature selection and update dependency version 2025-01-17 12:27:25 +01:00
Moritz Hölting 3a423e1de5 remove unnecessary RwLocks in Transpiler 2024-11-15 10:42:52 +01:00
Moritz Hölting 95153f2912 unescape macro string contents 2024-11-15 10:33:55 +01:00
Moritz Hölting c0b266caca allow passing in parameters to functions that will be used as macros 2024-11-12 14:40:40 +01:00
Moritz Hölting 134f181635 show multiple errors and mark tick/load annotation incompatible with parameters 2024-11-11 23:19:36 +01:00
Moritz Hölting c880b58f64 require macros to be present in function parameters 2024-11-11 22:54:24 +01:00
Moritz Hölting 550459922d implement first version of macros 2024-11-10 16:04:10 +01:00
Moritz Hölting 09400afa13 remove debug statement in lua handling 2024-11-09 15:24:58 +01:00
Moritz Hölting 320eef8ed7 update mlua to 0.10.0 2024-10-30 20:44:05 +01:00
Moritz Hölting 1f36650b50 prepare release of version 0.1.0 2024-10-01 12:01:20 +02:00
Moritz Hölting 5e6f158993 change to dual license, add code of conduct, contributing 2024-09-30 16:55:43 +02:00
Moritz Hölting f7414ad23f use full hash length as name, improve docs 2024-09-27 16:26:24 +02:00
Moritz Hölting 4d57e5ac61 update shulkerbox dependency for VFolder fix 2024-09-22 22:48:49 +02:00
Moritz Hölting 973e6c2c1f update shulkerbox dependency 2024-09-22 13:33:00 +02:00
Moritz Hölting 1f4cad5634 implement tag declaration 2024-09-21 22:45:05 +02:00
Moritz Hölting 536c8479aa implement error on conflicting function names and deterministic function generation order 2024-09-20 16:50:40 +02:00
Moritz Hölting 01a2d66503 improve lua integration by allowing more flexible return types and introducing globals 2024-09-20 14:55:48 +02:00
Moritz Hölting 9581da3c04 change return type of parse_* functions from Option to Result 2024-09-19 20:54:39 +02:00
Moritz Hölting 301ceb3efa improve error display 2024-09-19 00:12:24 +02:00
Moritz Hölting a2de2d7338 add source code display to UnexpectedExpression, LuaRuntimeError errors 2024-09-03 22:21:03 +02:00
Moritz Hölting 6094fc0df3 extend file provider with read_bytes method and return cow 2024-09-01 22:41:43 +02:00
Moritz Hölting 4efcb55d7c suggest similarly named functions if invoked function does not exist 2024-08-29 00:57:11 +02:00
Moritz Hölting befdc2bfd4 fix error on literal command directly after comment 2024-08-28 13:09:19 +02:00

Diff Content Not Available