June 17, 2025
i just finished adding parsing for: sizeof
and nameof
, and got codegen functions working for: sizeof
, nameof
, VariableExpressionAST
(fixed), VariableDeclarationAST
(kinda fixed), BinaryExpressionAST
(only partially)
Added staticCast
and constCast
parsing and lexing.
I'm still working on fixing the codegen for binops and function calls and adding the rest of the codegen functions
added codegen for while statements and fixed cmake for arch linux
i got help from a friend and i completetly remade the schematics and pcb, i've also added a very basic firmware for it (i can't make a good firmware until i get my hands on the board and on the servomotors). the board is now ready to ship and i'm happy about how it came out
the schematic is probably done, i don't think i have to add anything else, maybe a gps chip in the future but rn i don't think there are any errors and it should work
i'm still working on the schematic but i'm at a good point where i'll start working on the PCB very soon (hopefully)
this is my version of the hermes YSWS where i'm making a device that checks the lean angle of my bike and adjusts the winglets accordingly
i just finished making a vscode extension for tungsten, it supports syntax highlighting, compiling and running tungsten code (it still doesnt compile cause of the actual compiler not working)
i've started implementing the codegen functions and i got some of them working to the point i can actually generate some pretty simple programs, here's a list of all the nodes i made the codegen function work for:
NumberExpression, StringExpression, BinaryExpression(only some operators), IfStatement, ReturnStatement, ExitStatement, BuiltinFile, BuiltinFunction(only the codegen, the actual function part is still not done), BuiltinLine, BuiltinColumn, Function, FunctionPrototype, BlockStatement, CallExpression, VariableExpression, VariableDeclaration
rework of the tpkg progress bar
i started working on workflows to automate builds and releases but building on windows is revealing to be a living hell, im successfully building on ubuntu but i'll probably stop working on the window workflow for a bit
finally parsing class members correctly
added almost full support for classes during parsing, now i just have to add support for referencing classes members like this class.member
and add inheritance and all the rest of the good stuff
added support for some builtin core functions
i restructured the project's structure and started working a bit on the package manager
stated adding some buggy codegen functions
the virus is done
i just pushed a new build of the compiler to the repo to keep up with the current state of the compiler
I'm done with parsing, i just need to implement unary operators and support for extern functions and module/import/export stuff and type modifiers like pointers, references and arrays but other than that im done.
Now i can finally start working on codegen with llvm
finshed adding a working version of the function to parse if and else statements, still need to work on the condition parsing
i've added a lot of parsing functions and the parser actually kinda works.
now i only need to add parsing for binary operations and conditional statements
added better error messages including filename, line and column
added base of _parseBlock function, still need to add the line parsing part
added some of the necessary parsing functions, still working on the rest.
I'm still working on them and they are not the final version, I still need to add a panic mode for when i find an error so that the parser won't give me multiple errors when parsing something with a single error. I also added a symbol table for identifiers
I just finished adding some of the necessary AST nodes to the language, i'm now working on the recursive descent parser to make sure it can actually parse those nodes
I reworked the project's structure and i began working on the parsing.
I also started working on the language core and stdlib
fixed CTRL + Z not working after pressing enter or tab
Added support for Unicode chars highlighting, still need implementing Unicode support in the compiler
Fixed syntax highlighting for operators not working and begun testing constants
I've added an horrible implementation of syntax highlighting but it works so I'm happy with it, now i jut have to keep updating the compiler itself and compiling it to webasm to update the project
fixed the site UI, still need to add syntax highlighting and fix some backend errors
modified the CMakeLists to also compile with emscripten
started making the online compiler to try tungsten, i still need to fix some things and add syntax hilighting but thanks to copilot the html part of the site is kinda ok
an online compiler to try the tungsten programming language
i started studying parsing algorithms to see which one would be better to implement for my parser and I'll probably go with a recursive descent parser
Refactoring of the token module so instead of following the snake_case convention they now follow the PascalCase convention
Fixed an error in the lexer during the parsing phase and added new token types
Updated a bit the README to make it a little better
Fixed the handling of fixed size tokens so instead of entering an infinite loop it will push an invalid token in the token vector, it's still a bad way to handle errors but i want to focus on the parsing
Started adding the first parsing functions and started refatoring the lexing function
Added basic AST nodes to (hopefully) begin parsing the tokens already generated by the lexer
separated the Token class from the Lexer and made into a module of its own
a statically-typed multi-paradigm compiled programming language made with the LLVM framework and inspired by C++ and Java
This was widely regarded as a great move by everyone.