lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


In my case there should be no issue of ambiguity, as any function
called this way must have exactly one argument. It looks pretty clear
how to do this in the code, but I always ended up breaking it in some
way. It'd think the statement was incomplete, or just crash, and I
couldn't figure out why.

2010/4/18 spir ☣ <denis.spir@gmail.com>:
> 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
>



-- 
Sent from my toaster.