Fri May 23 16:11:41 CEST 2008
Why are parsing words necessary? Because modified semantics are
allowed for symbol definition (':')
What about a Forth syntax for substitution macros?
parser variable name == create name 1 allot ;
This would solve virtuall all problems, since it gives access to named
subsititions, but it adds a level of inelegance to the language. Well,
sort of: they are already there, so why not make them
available.. These would make sense in interactive commands too.
(What about ditching all this crap and creating a flexible
alternative s-expression based syntax i think..)
So, considering that I don't want to loose the good things about Forth
syntax (prefix syntax to eliminate parenthesis) I guess I have to
learn to live with the bad things about Forth syntax (necessity for an
extra composition mechanism due to prefix syntax). It's not all bad,
just some trade-offs..
So, prefix substitutions. They are not like parsing words, but can be
used to emulate them. They are the 'last resort' composition
mechanism which are used to capture prefix patterns.
If I'm going to embrace them as one of the features of Forth syntax,
it might be wise to make ':' not a primitive. More general, it might
be wise to have this as a layer on top of a simpler, single assignment