mirror of https://github.com/tbklang/tlang.git
Official Tristan Language project compiler
https://deavmi.assigned.network/projects/tlang
Tristan B. Velloza Kildaire
ce995ba5d4
- Fixed import for `Token` class - Removed the token management fields such as `tokens`, `currentToken` and `tokenPtr` as these are now replaced by our `LexerInterface`, `lexer` field which manages this all for us - Removed constructor which accepts a `Token[]`, now onyl accept a `LexerInterface` - Removed `nextToken()`, `hasTokens()`, `getCurrentToken()`, `previousToken()`, `setCursor(ulong)` and `getCursor()`. - The above now are called via the `lexer` instance Parser (unit tests) - Migrated to new `LexerInterface`+`BasicLexer` system - Hoisted out common imports for unit tests into a `version(unittest)` TypeChecker (unittests) - Hoisted out common imports for unit tests into a `version(unittest)` - Migrated to new `LexerInterface`+`BasicLexer` system LexerInterface - Moved to new `lexer.core` package - Documented module and class Commands - Fixed imports for the (now) `BasicLexer` - Fixed imports for the (now) `lexer.core` package Compiler - Fixed imports for the (now) `BasicLexer` - Use `LexerInterface` instead of `Lexer` - The `doLex()` method now uses an instance of `BasicLexer` and then downcasts to quickly call `performLex()` in order to tokenize and make them available - The `doParse()` method now takes in an instance of `LexerInterface` rather than `Token[]` BasicLexer (previously Lexer) - Moved to the `lexer.kinds` package - Now implements `LexerInterface` - Documented module and class - Documented the `LexerInterface` methods Exceptions - Moved to the `lexer.core` package - Fixed import of `Token` class - Now uses `LexerInterface` Core.Lexer.Package - Documented package module Tokens - Moved to the `lexer.core` package - Documented module and class Check - Fixed import for `Token` - Fixed import for `BasicLexer` |
||
---|---|---|
.github/workflows | ||
branding | ||
rando | ||
source/tlang | ||
.gitignore | ||
README.md | ||
dub.json | ||
extern_test.sh | ||
macro_ast_replacemenet.png | ||
macro_ast_replacemenet.xcf | ||
macro_ast_replacement_sizeof_example.png | ||
macro_ast_replacement_sizeof_example.xcf | ||
malloc_test.sh | ||
tets.d | ||
texterned.c | ||
todo1.md | ||
wip.txt |
README.md
tlang
Official Tristan Language project compiler
Documentation
Docs are available here.
Building
To build you will need dmd
and dub
installed. You can then run the following:
dub test --coverage
dub build
The first command is optional but you want to make sure the compiler is working so you may as well run all the unit tests - it won't take too long.
Usage
A list of all commands can be found by typing in the following:
./tlang