Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								6ed069ea8d 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Provide an adequate command line interface  
							
							
							
						 
						
							2023-10-26 15:45:31 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								867ce0df52 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Move passes to Passes subdirectory of Compiler/  
							
							
							
						 
						
							2023-10-26 15:45:31 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								61fa00d46c 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Refactor CompilerPass to accept TranslationUnitRef  
							
							
							
						 
						
							2023-10-26 15:45:31 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								c2c37de201 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Support Cpp::StringLiteral in C++ AST converter  
							
							
							
						 
						
							2023-10-26 10:57:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								d7b4dc2a6a 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Support Cpp::BinaryExpression in C++ AST converter  
							
							
							
						 
						
							2023-10-26 10:57:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								75fd28014c 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add converter from LibCpp's AST  
							
							... 
							
							
							
							This will effectively allow us to use C++ code as an input for the
compiler. This would be useful for testing, since otherwise we would
have had to specify tests as a spec-like XML, which is not exactly the
most developer-friendly experience. 
							
						 
						
							2023-10-02 21:15:08 +02: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 
								
							 
						 
						
							
							
							
							
								
							
							
								4578004ad6 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Do not frame nodes with < and > when dumping AST  
							
							... 
							
							
							
							Let's not pretend we are outputting some invalid HTML. 
							
						 
						
							2023-10-02 21:15:08 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								14a86c8fd6 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Elide nested TreeList nodes  
							
							
							
						 
						
							2023-10-02 21:15:08 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								67e07fa4e2 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Introduce ControlFlowOperator nodes  
							
							
							
						 
						
							2023-09-17 16:04:42 -06: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 
								
							 
						 
						
							
							
							
							
								
							
							
								326bac19d9 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Make nodes inherit from Statement or Expression  
							
							... 
							
							
							
							The distinction between them will become important during CFG building. 
							
						 
						
							2023-09-17 16:04:42 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								ed5ef4da6d 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Make clang-tidy happier, no functional changes  
							
							
							
						 
						
							2023-09-17 16:04:42 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								4c4e1e1aed 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add if branch merging pass  
							
							... 
							
							
							
							It merges standalone IfBranch/ElseIfBranch nodes into IfElseIfChain
nodes. This will ease CFG generation later. 
							
						 
						
							2023-09-09 11:20:43 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								092ed1cc8a 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Allow storing NullableTrees in nodes  
							
							... 
							
							
							
							And use this in ElseIfBranch node. 
							
						 
						
							2023-09-09 11:20:43 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								4eede5282c 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Allow storing error text in ErrorNode  
							
							... 
							
							
							
							This will be the main way to communicate errors from compilation passes. 
							
						 
						
							2023-09-09 11:20:43 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								72794e7843 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add function call canonicalization pass  
							
							... 
							
							
							
							It simplifies ladders of BinaryOperators nodes in the function call
arguments into nice and neat FunctionCall node. Ladders initially appear
since I do not want to complicate expression parser, so it interprets
`f(a, b, c, d)` as `f "function_call_operator" (a, (b, (c, d))))`. 
							
						 
						
							2023-09-09 11:20:43 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								1c4cd34320 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Restrict usage of NodeSubtreePointer  
							
							... 
							
							
							
							This class stores a non-owning raw pointer to a member of `Node`, so
extra care is needed to ensure that referenced `Node`s will be alive
by the time `NodeSubtreePointer` is used. Since we only need to use this
class while traversing AST in `RecursiveASTVisitor`, access to class
methods can be restricted using `Badge<RecursiveASTVisitor>`. 
							
						 
						
							2023-09-09 11:20:43 -06:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								198591cc20 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add infrastructure to run compiler passes on AST  
							
							
							
						 
						
							2023-09-02 19:57:06 +02: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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								66f4cdba85 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Make it compile and dump AST created from stdin input  
							
							
							
						 
						
							2023-08-31 11:00:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								db0a03d1fb 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add infrastructure to parse <emu-clause> into AST  
							
							
							
						 
						
							2023-08-31 11:00:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								f70e39d501 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add TextParser for converting algorithm steps into AST  
							
							
							
						 
						
							2023-08-31 11:00:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								9f29e04897 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add functions for splitting node contents into tokens  
							
							
							
						 
						
							2023-08-31 11:00:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								8342361481 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add Token type  
							
							
							
						 
						
							2023-08-31 11:00:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dan Klishch 
								
							 
						 
						
							
							
							
							
								
							
							
								5846470a5f 
								
							 
						 
						
							
							
								
								JSSpecCompiler: Add stubs for AST types  
							
							
							
						 
						
							2023-08-31 11:00:31 +02:00