Commit Graph

13 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks a9f4fd9d47 code_compiler: Include character for TokenUnknown 2017-11-13 02:31:44 +01:00
Michael Fabian 'Xaymar' Dirks 9aefa56214 code_compiler: Use isspace, iscntrl and isprint for tests 2017-11-13 02:31:23 +01:00
Michael Fabian 'Xaymar' Dirks c39d9c5815 code_compiler: Add simple testing code to main loop. 2017-11-13 02:16:33 +01:00
Michael Fabian 'Xaymar' Dirks dcd8950260 code_compiler: Add initial Compiler and Parser
These don't do much yet and are just here so the class structure exists.
2017-11-13 02:16:17 +01:00
Michael Fabian 'Xaymar' Dirks 34a227d2ff tests: Update samples for better testing 2017-11-13 02:15:17 +01:00
Michael Fabian 'Xaymar' Dirks d5945e8c39 code_compiler: Implement Lexer for Blitz
The Lexer should now be able to parse all existing Blitz code into easily identified Tokens. With this information, a Parser can now verify that the syntax was kept correctly, warn about possible dangerous or wrong use and convert the Tokens into actual LLVM code for compiling.
2017-11-13 02:14:57 +01:00
Michael Fabian 'Xaymar' Dirks 89b98c6925 project: Remove LLVM submodule 2017-11-12 01:39:43 +01:00
Michael Fabian 'Xaymar' Dirks e59022b9f0 cmake: Actually name the project 2017-11-12 01:39:22 +01:00
Michael Fabian 'Xaymar' Dirks 00b37f0d05 code_compiler: Add LLVM, Boost, licensing and help
Boost is used to parse program arguments into a usable format, print help and so on. This makes it far easier to quickly get off the ground and is also reasonably fast with relatively small impact. Since Boost provides prebuilt versions with all recent compilers, it shouldn't impact newer people.

LLVM will be used for compiling the actual code, as of right now there is no Tokenizer, Parser or Compiler implemented. This will be the biggest task as it requires careful planning in order to not end up like Mark Sibly did with BlitzBasic and all the programming languages that ended up being created by it.

Additionally removed the VERSION_BUILD from the template so that version updates work better.
2017-11-12 01:38:50 +01:00
Michael Fabian 'Xaymar' Dirks c0556b3b16 test: Basic sample 2017-11-11 22:32:42 +01:00
Michael Fabian 'Xaymar' Dirks 2be7f85158 project: Split into separate projects 2017-11-11 22:32:30 +01:00
Michael Fabian Dirks f6cf791abb project: Add LLVM submodule 2017-04-10 14:59:06 +02:00
Michael Fabian Dirks 46c626fa7b Initial Commit
BlitzLLVM is licensed under the LGPL to hopefully discourage people from claiming this works as their own and selling it.
2017-04-10 14:58:19 +02:00