H. S. Teoh wrote:
Are you referring to:

        int x = 10;

vs.

        x = 10;

?

In that case I would still prefer :=, since the first can be thought of
as shorthand for "int x; x := 10".

I'm not sure what you're asking/saying here. What I mean is that there needs to be some distinction between variable declarations and variable assignment.

    Foo: class
    {
        x: int

        // lots of code

        bar: void()
        {
            x := 0 // set Foo.x or create a local 'x' variable?
        }
    }


I don't think lines need ending marks at all.

This leads to ambiguity problems if it's unclear whether two adjacent lines are a single statement or two. It also makes the grammar much harder to implement in a parser, because it can't easily tell between the end of a statement and a wrapped line. Having a statement separator
is a good thing.

I don't think this leads to ambiguity problems, I've thought about this before and can't come up with any that aren't easily addressed. Also, I don't think is much harder to parse at all, just when the statement is determined to stop needs to be slightly more intelligent. If we can understand the code without ending-marks, a compiler should be able to understand it as well. This is something I'm experimenting with at the moment with LLVM.


Wait, you're trying to reimplement D syntax??

Nothing so robust. Mostly I'm playing around with compiler design while refreshing my C++ abilities (which it's been awhile). My main focus is to try and build a simplistic compiler around the concept of having an AST designed to stay in memory and be dynamically submitted changes and on-demand compilation (like NRefactory, or MS Roslyn). Kinda like and interrupter only designed with the goal of 1) Non-text forms of manipulation and logic construction, and 2) modularized AST libraries as development reflection tools (think objects overview, code-completion, etc).

I'm thinking of textual syntax as more of "commands" to submit AST nodes, so there's no real "syntax" beyond what's saved in a file, which isn't really suppose to be humanly read/written though a traditional text editor. I think "standard tools" (+ modularized to used by other tools) are as important as standard libraries.

Just a hobby :)

Reply via email to