Re: handling basic Makefile as domain specific language
Jeremy Tregunna <[email protected]> Wed, 18 Apr 2012 19:43:40 -0600
| Newsgroups | gmane.comp.lang.io |
|---|---|
| Message-ID | <[email protected]> |
Not ideal, but an identifier with a : in its name could only be allowed if it has a valid argument list. This wouldn't break the objc bridge, since:
NSString stringWithFormat:("%@", otherObject) # is valid, while:
NSString stringWithFormat: # doesn't make sense
However, it does introduce special case identifiers into the parsing subsystem, which is less than ideal. If Io's parser were changed such that we introduced an actual macro system ala-lisp into the mix by configuring an intermediate AST which would be fed to the parser, we could make these rules runtime configurable, and scoped to particular objects. This would make the syntax have one meaning in the ObjcBridge when used in messages on objects it provides (or rather allows access to), while having no implicit semantics to other parts of the system.
I'd like to hear Steve's thoughts on this.
Regards,
Jeremy Tregunna
On Wednesday, 18 April, 2012 at 7:01 PM, Oliver Kiddle wrote:
>
> Jeremy Tregunna wrote:
>
> > Your only real option is to force a whitespace between the identifier
> > and the : to get around Io's use of it (solely for the purposes of the
> > objc bridge I might add). Alternatively, you can write an actual parser
> > and skip the DSL route.
>
> I think that's a bit of a pity. I can really see why the DSL section is
> included in the book because it is without doubt one of the things that
> makes Io fascinating. It'd perhaps be intriguing to see what might be
> possible if the definition of an identifier was configurable: something
> like the GNU m4 changeword feature. Perhaps just within the scope of
> parsing for a doString call.
>
> It's interesting just trying to work out the rules for identifiers. In
> the process I've realised that the "call argAt(1) asString" trick I had
> tried for getting the list of files without requiring quoting would
> fail for files starting with a number or containing a comma.
>
> I've done a lot of experimenting with different make-like tools recently
> and the Python/Ruby ones are really let down by needing excessive extra
> syntax and other cruft. Io would be a lot better even without being able to
> implement a subset of Unix make's syntax.
>
> > On Sunday, 15 April, 2012 at 4:08 PM, Oliver Kiddle wrote:
> > > PS. Sorry if you receive this mail twice, I tried to send it shortly
> > > after subscribing but it never arrived in the Yahoo group.
>
> I guess there must be a list moderator or something then for my message
> to have taken three days.
>
> Thanks for the answer.
>
> Oliver
>