Commit Graph

83 Commits

Author SHA1 Message Date
6fd1bda112 Add an else to the case statement 2025-04-11 15:28:43 +02:00
f68667d5e5 Implement case statements 2025-04-11 11:17:17 +02:00
18c4e79012 Implement enumeration type 2025-04-09 00:32:34 +02:00
50970f3289 Add the unreachable builtin function 2025-04-02 21:08:15 +02:00
a7b5e32d09 Allow calling procedures defined later 2025-04-01 13:04:14 +02:00
013bf91fbd Save procedure info in the symbol table 2025-03-31 12:48:30 +02:00
f2e2da4a34 Detect type aliasing cycles 2025-03-30 17:09:22 +02:00
413f23af4d Fix alias resolution with type declarations 2025-03-28 14:11:20 +01:00
d359056354 Type check the return statement 2025-03-28 01:11:16 +01:00
c022805c53 Make array ptr and length properties constant 2025-03-24 11:11:18 +01:00
6ccb195c09 Check only a pointer can be dereferenced 2025-03-23 10:14:04 +01:00
07ed40cc24 Restrict cast types 2025-03-22 13:09:29 +01:00
5e8555b4f4 Skip parameter names in procedure type expressions 2025-03-20 21:41:03 +01:00
f6e0ead4fb Check for duplicate fields in the declaration visitor 2025-03-16 03:28:51 +01:00
fa73f14070 Forbid redefenition of builtin types 2025-03-15 00:05:39 +01:00
ac084be7f5 Randomize type declaration order 2025-03-12 23:56:54 +01:00
c9a8ecdc0a Create a generic type for types with an error list 2025-03-12 00:23:51 +01:00
f739194e06 Add a symbol table with type info 2025-03-10 01:17:32 +01:00
868db6e0bf Add array_type 2025-03-08 13:55:42 +01:00
dc5760394b Unify the build_type function 2025-03-08 00:10:55 +01:00
dbeaca7cbf Add forward type declaration representation 2025-03-06 03:46:10 +01:00
8dc02047df Add second GENERIC visitor 2025-03-05 23:24:27 +01:00
c5930285bf Rename AST types to type expressions 2025-03-03 23:16:31 +01:00
09f204bd16 Revert "Allow only one return"
This reverts commit 18602d00a1.
2025-03-02 10:45:54 +01:00
75561fd18a Replace build_type with visitor functions 2025-03-02 10:05:47 +01:00
18602d00a1 Allow only one return 2025-03-01 00:00:36 +01:00
f091344cce Replace type expression with traits 2025-02-28 00:22:50 +01:00
85b6843ecf Implement procedure pointers 2025-02-24 00:24:36 +01:00
18857e1a88 Add procedure type expression 2025-02-22 02:43:58 +01:00
0b835abfa9 Implement noreturn procedure declarations 2025-02-19 01:36:04 +01:00
39750f4656 Implement elsif do 2025-02-17 19:36:57 +01:00
b358f8ba27 Allow multiple variable declarations with a single type 2025-02-15 23:55:24 +01:00
82b3806fd2 Implement shift operators 2025-02-15 00:38:46 +01:00
ee4ebf64b9 Use colon instead of as to cast 2025-02-14 22:47:09 +01:00
c564847c6b Provide record initialization syntax 2025-02-13 23:56:03 +01:00
62d9398772 Index strings 2025-02-12 23:18:39 +01:00
f991686330 Use -> arrow for the return types 2025-02-12 13:32:59 +01:00
cd949c4be7 Implement string comparison 2025-02-12 00:56:21 +01:00
33aca4cc07 Fix diagnostic for primitive types 2025-02-11 01:37:55 +01:00
4bf88a92e8 Replace main_fndecl with current_function_decl 2025-02-09 23:49:57 +01:00
207ae0fa0a Change the bootstrap compiler license to GPL3 2025-02-09 12:30:31 +01:00
d88bd652a4 Make string and char pointers comparable 2025-02-08 23:02:27 +01:00
8a0f282714 Implement defer 2025-02-08 06:47:42 +01:00
077de53c74 Allow expressions in designators 2025-02-07 01:21:26 +01:00
5e9b4259ca Add multiple of the pointer target size 2025-02-05 22:51:48 +01:00
8b654ed138 Allow assigning nil to any pointer 2025-02-04 19:39:41 +01:00
aab16e4941 Allow comparing all pointer types to nil 2025-02-03 23:04:00 +01:00
607bf09434 Read the input filename from the command line 2025-02-02 23:34:31 +01:00
5108016d39 Move byte for unyped pointers 2025-02-01 09:21:29 +01:00
4011adbe2b Rename elna::source to elna:boot 2025-01-31 23:31:36 +01:00