1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-01-11 20:30:08 +00:00

2178 Commits

Author SHA1 Message Date
jespergravgaard
61c5914f73 Added support for \xnn as escape in strings. However only characters defined in the current encoding works. Refactored handling of escapes and encodings. Closes #383 2020-04-10 11:24:20 +02:00
jespergravgaard
b36a8b087c Fixed import parsing by introducing another lexer mode. 2020-04-10 01:25:08 +02:00
jespergravgaard
8c5500822c Nuw using #include<> in test files where possible. 2020-04-10 01:10:18 +02:00
jespergravgaard
5ff8fce61d Added support for #include <> syntax. Closes #381 2020-04-09 23:56:43 +02:00
jespergravgaard
8dac19aca0 Added caching of global symbols. Results in faster compilation. 2020-04-09 22:38:30 +02:00
jespergravgaard
096d7c0640 Cleaned up scope getters. Might have caused a slow-down of compilation. 2020-04-09 22:17:33 +02:00
jespergravgaard
ab10bd59b4 Added a few more c's to test. 2020-04-09 09:36:09 +02:00
jespergravgaard
23ae5cf5f5 Variable extern declarations are now supported. Closes #196 2020-04-09 09:21:43 +02:00
jespergravgaard
8bdc927694 Fixed test for missing function definition. #196 2020-04-09 08:13:44 +02:00
jespergravgaard
ebdce3b2a7 Added test for missing function definition. #196 2020-04-08 23:52:49 +02:00
jespergravgaard
273819d2a4 Added test for two error cases. #196 2020-04-08 23:44:40 +02:00
jespergravgaard
db92daf4bf Added initial support for function declarations without a body. #196 2020-04-08 23:40:27 +02:00
jespergravgaard
433fcd3dd4 Added support for macro parameters with proper pre-expansion allowing nested macro calls. Closes #169 2020-04-07 14:12:25 +02:00
jespergravgaard
682757b10c Renamed import to #include. #169 2020-04-07 12:43:31 +02:00
jespergravgaard
d8138615ac Implemented #elif. #169 2020-04-07 12:06:42 +02:00
Jesper Gravgaard
4352874305 Added support for #if reusing the expression parser. Added support for the special defined operator. Now using the base parser for the preprocessor test. #169 2020-04-06 14:34:42 +02:00
jespergravgaard
0a11eefda0 Syntax changes. 2020-04-06 08:06:00 +02:00
jespergravgaard
263987f059 Added an expression parser to use for #if. #169 2020-04-06 08:00:55 +02:00
jespergravgaard
88b2cd86c2 Added test for #define containing inline ASM/KickAsm. Fixed problem with ASM. #169 2020-04-05 22:54:00 +02:00
jespergravgaard
ba1ecac84b Added test for recursive #define. #169 2020-04-05 20:34:33 +02:00
jespergravgaard
7c9c2955b4 Added test for multi-line #define. #169 2020-04-05 20:13:40 +02:00
jespergravgaard
9fea02e7ad Added support for #ifdef #ifndef #else #endif. #169 2020-04-05 20:09:34 +02:00
jespergravgaard
524d789805 Added test for #defines inside imported file. #169 2020-04-05 18:28:32 +02:00
jespergravgaard
a01c6b5680 Added support for #undef. #169 2020-04-05 18:06:06 +02:00
jespergravgaard
c4550b5aec Added test of defines with complex body. #169 2020-04-05 14:45:32 +02:00
jespergravgaard
30e35bee41 Added simple preprocessor to the KickC compiler (only supports #define without parameters). #169 2020-04-05 14:32:07 +02:00
jespergravgaard
375578e7df Added #define to KickC lexer. #169 2020-04-05 09:32:10 +02:00
jespergravgaard
ea49dc910a Now supports multi-line #defines, nested #defines and ends recursive #defines correctly. #169 2020-04-04 17:39:41 +02:00
jespergravgaard
a2de5faf47 Added peeking iterator. 2020-04-03 08:21:27 +02:00
jespergravgaard
b2466df1e4 Moved simple macro expander to main source. 2020-04-02 08:33:32 +02:00
Jesper Gravgaard
3bb6efb92d Updated test data. 2020-04-01 14:53:02 +02:00
Jesper Gravgaard
b7851e7305 Proof of Concept macro expansion working. #169 2020-04-01 14:51:16 +02:00
jespergravgaard
9eb17e7ed1 Working on a C preprocessor proof-of-concept at the lexer level. #169 2020-04-01 12:56:28 +02:00
jespergravgaard
bc4dd9ea47 Working on a proof-of-concept preprocessor lexer. #169 2020-04-01 01:35:46 +02:00
jespergravgaard
244f329ab0 Default runner is now x64sc. Closes #348 2020-03-31 22:55:58 +02:00
jespergravgaard
b8a2e10fd8 The sprite scroller is now working with the sine-dampened X-movement. 2020-03-31 20:22:08 +02:00
Jesper Gravgaard
96779a5f24 Working on sprite scroller. 2020-03-31 19:20:33 +02:00
Jesper Gravgaard
a977e6d9f0 Updated multiplexer.kc to allow usage in IRQ's. Eliminated multiplexer-irq.kc. 2020-03-31 12:47:21 +02:00
jespergravgaard
90fccdebef Working on font 2x2 to sprite converter. 2020-03-31 09:55:49 +02:00
jespergravgaard
91da76e087 Created font 2x2 to sprite converter. Improved a few bitwise operators. 2020-03-30 22:39:39 +02:00
jespergravgaard
beb30de7d1 Fixed ASM re-labelling error. #369 2020-03-30 20:33:26 +02:00
jespergravgaard
7ff1a0ec9a Fixed test! 2020-03-30 18:49:00 +02:00
Jesper Gravgaard
5c49f2356e Added support for const/volatile directives inside & outside structs. Closes #377 2020-03-30 13:48:55 +02:00
Jesper Gravgaard
607f740f8b Added support for typedefs with const/volatile directives. Closes #375 2020-03-30 13:25:52 +02:00
jespergravgaard
e3b54f34d7 Fixed typedef arrays (still no array of array). Closes #376 2020-03-30 08:35:22 +02:00
jespergravgaard
5a8654b0e7 Working towards typedef with const/volatile directive handling and typedef arrays by introducing a varDecl stack in the parser. #375 #376 #377 2020-03-30 00:12:03 +02:00
jespergravgaard
db6f8b5a36 Added variable nomodify/volatile information to log. 2020-03-29 21:00:25 +02:00
jespergravgaard
a579ab491a Changed pointer and directive parsing to distinguish directives applied to pointers and directives applied to variables. Fixed all example-code to reflect this. Closes #271 2020-03-29 20:22:16 +02:00
jespergravgaard
838b8f4d26 Added support for typedef arrays. 2020-03-27 22:23:04 +01:00
jespergravgaard
d6c60d9466 Pointer type rewritten to bind to variables instead of type allowing a declaration like char *a, b, **c;. Closes #265 2020-03-27 21:08:18 +01:00