[1]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/co...
[2]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/comp/o...
[1]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/co...
[2]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/comp/o...
I still can't really understand everything just from reading the code, but I had assumed it would be some kind of explicitly stack-based state machine precedence parser, like this article describes: https://h14s.p5r.org/2014/10/shiftreduce-expression-parsing-...
Kind of looks like you did that in expr.fs? Not completely sure, though.
Infix notation parsing happens in ast.fs[1]. It parses tokens left to right and builds a tree (the structure is Lisp-like cons) describe the expression in such a way that expr.fs[2] then just has to recursively process the top tree node to have proper codegen.
In other words, operator precedence, prefix/postfix operators, etc. are all considered in ast.fs. Once in expr.fs is reached, all those things have been processed.
AST tests[3] give a good example of what ast.fs does.
I'm not sure I'd say that Forth being stack-based particularly help there. This logic is more "recursive-based" than anything. Lots of recursion all around.
[1]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/comp/o...
[2]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/comp/o...
[3]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/tests/...
Yeah, I just think parsers are really cool, and have read enough about different parsing algorithms that I'm used to vocab like that.
As for Dusk OS: are there release tarballs/.zips or such anywhere available for download? (like for Collapse OS)
All I'm seeing is a reference to "target a release", which (I'm assuming) refers to some git function? Hoping to bypass the need for using git just to download & check archive's contents.
Yes, compare that to the smallest possible, ISO-compliant burst laughing C++ compiler implementation in any language...
Complicated means "likely full of errors that are hard to identify"...
To borrow your words, yes it's going to be frickin' cool.
[1]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/ob...
I was planning on not having a Desktop Environment at all and just have graphical applications use the whole screen, but I was intrigued by Viewers and Texts architecture. Their fundamental simplicity is rather elegant and I feel that mixing this with Forth's own radically simple elements, there's something quite powerful to be had. I'm not sure yet how it will materialize, but I still have that feeling.
I'm not really looking to write new graphical applications for Dusk, so I'm not planning on ever needing a Oberon-based gadget framework. The idea behind Dusk is to port existing applications onto a radically simpler platform (compared to your typical POSIX) with a minimal effort, not to write new software.
Your Forth implementation is fascinating.