[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Hacking the parser - function argument parentheses
- From: spir ☣ <denis.spir@...>
- Date: Sun, 18 Apr 2010 19:22:08 +0200
On Sat, 17 Apr 2010 10:12:53 -0600
HyperHacker <hyperhacker@gmail.com> wrote:
> This seems like it should be a simple hack, but I just haven't been
> able to get it to work. I've modified the parser to allow a function
> to be named simply "$" or "@". The intention is to assign them useful
> functions like tostring and tonumber, that take only one argument, to
> create something similar to the # operator but allowing them to be
> redefined if necessary.
> The problem with that idea is you can't just write $foo, only $(foo).
> You can do $"foo", so it seems like it should be simple to extend that
> behaviour to the former case (only for functions named "$" or "@").
> Surprisingly, it doesn't appear to be simple at all.
I'm presently thinking at something maybe a bit similar (not for a Lua variant, rather a custom language). It has 2 aspects:
* Extend Lua-like "funcname {...}" & "funcname '...'" to any argument, and make it standard (and only) func call syntax.
* Identifiers can be made of any non-reserved chars.
It appears to be a bit problematic because of possible ambiguity; especially the case of no arg at all is annoying. So, I ended up using '!' meaning request for execution, eg:
obj.doSomething arg!
obj.doSomething!
x : obj.makeSomething arg!
x : obj.makeSomething!
(This also gives for free a distinction between denotation of the method itself & execution:
x : obj.makeSomething <-- 'x' is bound to the method
)
Denis
________________________________
vit esse estrany ☣
spir.wikidot.com