FFI syntax (was: Re: [Vm-dev] Re: testing MT and reentrant)
Igor Stasenko
siguctua at gmail.com
Thu Mar 24 20:03:47 UTC 2011
On 24 March 2011 20:58, Igor Stasenko <siguctua at gmail.com> wrote:
> On 24 March 2011 20:56, Igor Stasenko <siguctua at gmail.com> wrote:
>> On 24 March 2011 20:47, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>>>
>>>>
>>>> You can always put a string literal inside literal array.. it will
>>>> cost you just extra quotes and extra parsing effort..
>>>
>>> Yes, but that would be a failure. If yu ever need a string literal I'd
>>> argue you're better off just using a string literal. But I think you could
>>> be OK. I think your hack could work for everything. I just want a proof.
>>
>> it won't parse only following declarations:
>>
>> #( int foo( int arg[] ) )
>>
> but we could modify compiler to treat [ and ] inside a literal array as
> #'['
> and
> #']'
>
> :)
>
oops, sorry, my bad..
it actually works...
#( int foo ( int arg[] ) ) ->
#(#int #foo #(#int #arg #'[' #']'))
#( int foo ( int arg[10] ) ) ->
#(#int #foo #(#int #arg #'[' 10 #']'))
There is a bug in parser, which fails to parse literal arrays if you
don't put space between function name and its arguments.
#( int foo( int arg[] ) )
- fails
#( int foo ( int arg[] ) )
- works
>> which of course could be turned into just:
>>
>> #( int foo( int * arg ) )
>>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
--
Best regards,
Igor Stasenko AKA sig.
More information about the Vm-dev
mailing list