| 
							
							
								 Irmen de Jong | cf3523f49f | Merge branch 'codegen-on-new-ast' | 2023-02-14 22:48:11 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | bceaebe856 | fix crash on sort/reverse unused arrays fixes #95 | 2023-02-14 00:26:29 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 6aabbffc62 | some cleanups | 2023-02-09 02:34:18 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | f117805129 | order | 2023-02-05 12:36:32 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 81bd5c784e | don't remove consecutive assigns to IO space location | 2022-12-24 18:01:54 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 88cbb6913d | tweak bool type handling | 2022-07-11 14:55:50 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 24d13dd120 | fix problematic optimizations to logical expressions | 2022-07-02 00:56:24 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 965340ff90 | logical and/or/xor/not all replaced by bitwise &,|,^,~ (ast, codegens) this also fixed some invalid outcomes of logical expressions! | 2022-07-02 00:38:17 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 2eb41a8caf | temporary workaround for code problem around 'not' | 2022-07-01 00:38:19 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 97cb0cbd08 | tweak "not" removal/rewriting | 2022-06-30 02:16:30 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | dc82a0fc16 | better not(x) replacement by x==0 | 2022-06-28 23:50:23 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 435d6f6f3f | vm: and/or/xor/not are all bitwise operations again | 2022-06-28 03:17:51 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | ef92451d1a | fix logical expressions on arbitrary values, for now with boolean() around the operands | 2022-06-28 01:18:36 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | c75bd97537 | update kotest | 2022-06-26 18:51:03 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | bf9d120081 | logical operators now always return a boolean byte result, instead of sometimes word type as well (preparing for codegen simplifications for these) | 2022-06-13 01:37:16 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 031f647952 | allow casting negative numbers to unsigned, result = 2's complement | 2022-06-05 14:21:10 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | c40cfaa388 | preparing optimizing pointer indexing | 2022-06-04 14:23:02 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | dad5b17ac8 | fix regression compiler crash in string comparison | 2022-05-08 13:47:24 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | fef52c0112 | automatically convert multi-compare expression (if X==1 or X==2..) to contaiment check if X in [1,2,..] | 2022-05-08 13:21:34 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 6f2fdbe447 | added %option merge, also fixed problem with unit test building in newer IntelliJ version | 2022-04-15 22:38:32 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 220246278a | removed sum(), max(), min().   abs() now always returns uword type. This greatly simplifies internal handling of builtin functions by always having one fixed return type. | 2022-04-14 00:21:16 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | ab1766a559 | moved all *integer* builtin trig functions (sin8u, cos8u etc) as regular asmsubs in math module | 2022-04-13 00:27:35 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 036d9dbe59 | got rid of unnecessary cast of boolean expressions by making their type dynamically adjust to byte or word | 2022-04-04 23:43:55 +02:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 92737bb695 | better handling of loadAddress | 2022-03-13 16:21:02 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 3961f26635 | consolidating modules | 2022-03-11 20:45:39 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | e51c274a18 | reducing dependencies | 2022-03-11 20:32:35 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | e75d0c58a9 | reducing dependencies | 2022-03-10 23:46:43 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 9a798360f4 | introduced codeAst and codeCore modules to reduce dependencies | 2022-03-10 22:38:16 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 251b6fcf70 | reducing dependencies | 2022-03-10 02:09:34 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | ab1fffb721 | reducing dependencies | 2022-03-10 01:41:42 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | db7ae028b2 | simplified CompilationResult a bit | 2022-03-07 21:41:12 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | f7aa0c45df | optimize imports | 2022-03-05 15:54:42 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 067283834a | got rid of old IVariablesAndConsts object | 2022-03-05 14:40:41 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 496245c801 | working on symboltable | 2022-03-05 12:10:20 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 859ab36347 | variables extraction moved to the very end, so no need anymore to change the table after the fact | 2022-03-04 23:12:24 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | df35dfe3bf | added atari XEX output format with default $2000 load address | 2022-02-26 15:36:22 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | eeb3c968d6 | streamline handling of launcher type and program load address. %address is now required if not using a basic-launcher. | 2022-02-22 22:43:14 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | b47fc1c020 | renames of some Ast node classes | 2022-02-11 00:34:36 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 08bacdd090 | temp vars are now dynamically added to AST as needed | 2022-02-10 02:52:47 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 98b2855b9c | cleanups | 2022-02-09 16:35:52 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 101fb0b8aa | some naming changes and cleanups | 2022-02-06 23:14:44 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 10de7dc1f9 | fixed the concurrent modification issue on zeropage when running unit tests in parallel, by not having machine targets be static objects | 2022-02-06 21:29:06 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 6bdd81623f | cleaning up AsmGen interface | 2022-02-06 17:07:03 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 312949f336 | added experimental codegen backend option | 2022-02-05 21:42:03 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | a170506356 | simplify IdentifierReference equality check back to default (name+pos) | 2022-01-27 23:32:55 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 7bb41a30ed | fixed compiler crash when assigning number larger than 65535 | 2022-01-23 01:44:16 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 056ec986c2 | use var initializer assignments in a clearer way | 2022-01-11 00:34:44 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | de3b2fb95b | slightly optimized certain list iterations into sequences | 2022-01-10 23:15:24 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 895534f32b | don't remove dead variable assignments if they are a function call | 2022-01-09 18:41:01 +01:00 |  | 
			
				
					| 
							
							
								 Irmen de Jong | 6fa3f0b6cd | small refactor | 2022-01-08 18:02:38 +01:00 |  |