Please sign in to access this page
A custom programming language built from scratch, includes full tokenizer, parser, and interpeter in Python. The language supports strings, ints, operators, variables, repeat statements, functions, if statements, comments and more. It already got attention and stars on github. The project's whole concept is educational, and the primary goal is to learn more about language design, compilers, tokenizer, and interpreter development
JacobL
Check their project out: FIXAPL
Pookstir
Check their projects out: Mycor, Wolf Interpreter, Surface Circuits
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
I finished functions, with defining functions and calling them. I also removed the video from the docs and hosted it on hackclub cnd. I think we can say the custom programming language is finished. The concept of this is to learn how languages work and gain some more advanced coding experience. I also worked on the docs.
Restructured code, worked on error logging + part of functions. I also added some new token types that include ID,EQ,NEQ,GTE (for if statements)
Added if statements, which can include ==, =<, >=, <, > for statements. Also updated the docs & readme.
Restrucured code, added environment.py, ast_nodes.py with classes, tokens.py, added the ability to run source code from arguments. made all commands ast nodes classifiers in classes, + working on a repeat <times> {content} block + if block
Made an html for docs, examples, and demo, currently https://jimmydin7.github.io/custom-programming-language/docs
Changes the whole directory structure , basically restructured everything... Also made helpers, lang/interpreter, /parser, /tokenizer + more
added the ability to put a raw string inside say(), like say(hello, world!) instead of just variables + changed variable handling on a class on environment.py. Also renamed main to run and now you can put the source code path as an argument
Added tests for: lexer, parser, interpreter. They all have a 'correct' output which is checked to see if it is the same with the output they returned. I also wrote a README for github. Took me a long time because I couldn't figure out the importing on tests, and after some stackoverflow I figured to use sys.