On Friday, 17 February 2012 at 20:52:56 UTC, F i L wrote:
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 :)
http://en.wikipedia.org/wiki/Forth_%28programming_language%29