Compare commits
	
		
			2 Commits
		
	
	
		
			acc9b94c1f
			...
			34d35d6039
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					34d35d6039 | ||
| 
						 | 
					a476d1b9e9 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1,3 @@
 | 
				
			|||||||
build/*
 | 
					build/*
 | 
				
			||||||
.cache
 | 
					.cache
 | 
				
			||||||
 | 
					compile_commands.json
 | 
				
			||||||
							
								
								
									
										24
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								README.md
									
									
									
									
									
								
							@@ -1,9 +1,11 @@
 | 
				
			|||||||
# Lispy stuff
 | 
					# Lispy stuff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[](https://ci.emin.software/repos/2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Simple lisp-ish language compiler written in C++.
 | 
					Simple lisp-ish language compiler written in C++.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Right now it doesn't compile much - it's just a parser.
 | 
					Right now it doesn't compile much - it's just a parser.
 | 
				
			||||||
The goal is to emit bytecode. The bytecode format is not decided yet.
 | 
					The end goal is to emit bytecode. The bytecode format is not decided yet.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Build
 | 
					## Build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,11 +18,14 @@ cmake ..
 | 
				
			|||||||
make
 | 
					make
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This will build two executables, `main` and `test`. `test` runs all tests
 | 
				
			||||||
 | 
					on the compiler itself
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Development
 | 
					## Development
 | 
				
			||||||
 | 
					
 | 
				
			||||||
I use clangd as the language server. Appropriate `compile_commands.json`
 | 
					I use clangd as the language server. If you want your include files to be handled
 | 
				
			||||||
(required for clangd, otherwise it can not find include files) is provided.
 | 
					correctly, you'll need to generate `compile_commands.json` yourself. You can
 | 
				
			||||||
If you'd like to generate them yourself, just use cmake:
 | 
					do this using cmake:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
cd build
 | 
					cd build
 | 
				
			||||||
@@ -28,4 +33,15 @@ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
 | 
				
			|||||||
cp compile_commands.json ../
 | 
					cp compile_commands.json ../
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After this, clangd should not give you errors on every included header.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Progress
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Woodpecker CI/CD system is integrated.
 | 
				
			||||||
 | 
					Currently using Catch2 for unit testing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Lexing - complete, more token types may be added as necessary
 | 
				
			||||||
 | 
					Parsing - This is the next step.
 | 
				
			||||||
 | 
					Optimizations - 
 | 
				
			||||||
 | 
					Emitting Bytecode - the goal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
[
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "directory": "/home/haxala1r/Desktop/Programming/C++/lispy-stuff/build",
 | 
					 | 
				
			||||||
  "command": "/usr/bin/c++  -I/home/haxala1r/Desktop/Programming/C++/lispy-stuff/src/include  -o CMakeFiles/main.dir/src/main.cpp.o -c /home/haxala1r/Desktop/Programming/C++/lispy-stuff/src/main.cpp",
 | 
					 | 
				
			||||||
  "file": "/home/haxala1r/Desktop/Programming/C++/lispy-stuff/src/main.cpp",
 | 
					 | 
				
			||||||
  "output": "CMakeFiles/main.dir/src/main.cpp.o"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user