-
-
Notifications
You must be signed in to change notification settings - Fork 371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DRAFT] Make an interpreter for this abomination #74
base: main
Are you sure you want to change the base?
Conversation
FUTUREEEEE
it bothers me that it says im behind
The idea with the whole Compinterpreter is to do things in the most convoluted way possible- I want to have it interpret some parts of the code and transpile other parts to another language (maybe multiple based on situation?). I'm kinda indecisive as to what language it should transpile to, I think Javascript is cursed enough to fit the bill but I'm not sure yet |
tokenizer go in box (🇦) ->📦 👍
Also strings can't have lines now
Best of luck to you! Please be careful out there |
thanks, so far it hasn't been too crazy, though now that I'm getting to parsing it's gonna be interesting. Is it okay if I make a video on the whole process? |
I'm curious to see how you're going to deal with that: AI |
@Bytestorm5 Of course! You should go for it, I'd love to see it :) |
I'm glad my time travel implementation is actually going to (sorta) become real
|
Universal Currency symbol courtesy of @MaxenceDC
Just had a horrible idea inspired by #76 - we store |
we do a small quantity of trolling const const const delete Date()! |
^, any unknown identifier is assumed to be a string |
Btw @8ightfold do you want to be added to the GC for this or do you wanna do your own fully separate thing? |
fyi all, i've created the following discussion thread to track all efforts to implement DreamBerd: |
@Bytestorm5 I'm down to join the GC, assuming it's disc my tag is 8ightfold |
Sent a friend req |
fix(compiler): variable declaration statements?
more merges from upstream
@Bytestorm5 Checking before make another PR to do it, would it be useful to add docstrings to everything? |
I mean it never hurts but rn the code is rather nebulous and a lot of things are subject to change, so I'd hate for you to make detailed docs only for them to be obsolete the next day (obv exaggerating the timeframe) |
I only recently learned refactoring doesn't mean renaming a variable and having that change propagate through the whole project, I think it means splitting off parts of the project into different modules but I honestly have no clue rn why do we need so many words anyway |
That is correct, refactoring is meant for attempting to fragment your code into different modules |
It just came to my mind, that if you would waste enough time on this, until it actually works, you can scream reverse! and get all the time back, that you put in this thing... DisclaimerI don't actually think this is a waste of time. I would love to see this thing work. |
While true I wouldn't be able to go back to non-reversed time so I'd be sealing my fate to be turned back into an embryo in due time. It's always important to exercise time-safety when using Speaking of, I can at least safely recoup any time past this point: var var recoup_flag<Infinity> = 0!
if (recoup_flag !== 0) {
reverse!!
}
io recoup_time() => {
recoup_flag = 1!!
reverse!
} |
feat: use filepath from args
Add code formatting
Kinda thinking of trying this as well in Rust |
Nevermind, gave up |
I didn't even finish writing the parser and realized it's fucked. |
Lol I would imagine that the parser would be the critical point of failure here... |
i'm gonna make my own dreamberd interpreter as an university project |
putting this here so there's a thread for it, it's not nearly done but if anyone wants to mess with it there's something
the current plan is to write the compiler in python and from there rewrite it in C or Rust, whichever is funnier at the moment
or maybe I'll leave it as python that might be cursed enough, idk
For the time travel the way I'm thinking things should work is that execution follows a "cursor", regardless of what timeline that cursor is in. This allows for somewhat deterministic time travel which is pretty cool
Cool git stuff:
Resolves #14