1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 15:04:59 +00:00
Commit graph

10 commits

Author SHA1 Message Date
Dan Klishch
990e30f458 JSSpecCompiler: Parse enumerators in xspec mode 2024-02-24 15:03:08 -07:00
Dan Klishch
483e195e48 JSSpecCompiler: Store arguments in declaration instead of definition
And create a struct encapsulating argument name in the preparation for
argument types and optional arguments.
2024-01-21 14:57:10 -07:00
Dan Klishch
3aec6952a2 JSSpecCompiler: Make TranslationUnit fields private
For some reason I was afraid to add trivial accessors to classes
in earlier PRs, so we now have dozens of classes with public fields. I'm
not exactly looking forward to refactoring them all at once but I'll
do so gradually.
2024-01-21 14:57:10 -07:00
Dan Klishch
5825eaa264 JSSpecCompiler: Save references to return value and function arguments 2024-01-14 16:05:51 -07:00
Dan Klishch
7f47340c82 JSSpecCompiler: Create FunctionDeclarations for all external functions 2024-01-14 16:05:51 -07:00
Dan Klishch
0aeb7a26e9 JSSpecCompiler: Prepare for building SSA
This commit introduces NamedVariableDeclaration and
SSAVariableDeclaration and allows storing both of them in Variable node.
Also, it adds additional structures in FunctionDefinition and
BasicBlock, which will be used to store SSA form related information.
2024-01-04 12:06:56 -07:00
Dan Klishch
ff44aea917 JSSpecCompiler: Add control flow building pass 2023-12-14 09:06:05 -07:00
Dan Klishch
567b1f6e7c JSSpecCompiler: Adopt more C++ terminology
Let's not use strange names like `ExecutionContext`, which nobody will
understand in the future.
2023-10-02 21:15:08 +02:00
Dan Klishch
81519975c5 JSSpecCompiler: Add reference resolving pass
It replaces UnresolvedReference with Variable, FunctionPointer, or
SlotName nodes. Also, it gathers all variable names from their
declarations.
2023-09-17 16:04:42 -06:00
Dan Klishch
cd8f4aaa7d JSSpecCompiler: Introduce Function and ExecutionContext classes
Currently, they are not extremely useful, but the plan is to store
all function-local state in JSSpecCompiler::Function and all
"translation unit" state in ExecutionContext.
2023-09-02 19:57:06 +02:00