[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Question regarding code generation
- From: Roberto Ierusalimschy <roberto@...>
- Date: Thu, 17 Dec 2015 15:59:05 -0200
> Now I have a more involved question.
>
> Using type assertion I want to be able to do following:
>
> @number[] { 1,2,3 }
>
> I would like to change the OP_NEWTABLE instruction generated above to
> a specialized opcode that creates number[] instead. The problem is
> that when the parser sees the expression @number[] exp - the exp is
> already VNONRELOC, so the information regarding the OP_NEWTABLE
> instruction is no longer present. To solve this I would like to add a
> new field in the exp structure to hold the last u.info value when
> exp.k was VRELOCABLE. Because then I can get back to the OP_NEWTABLE
> instruction and change it.
>
> I have implemented this and it appears to work but I am wondering if
> there is a gotcha somewhere in this approach?
It seems more complicated than necessary. Can't the @number[] handler
just grab the next 'pc' before calling 'constructor'? (There is where
the OP_NEWTABLE will be.) Or couldn't 'constructor' return that
position?
-- Roberto