[antlr-interest] Rewriting a list of tokens to a list of custom tokens

Christian chwchw at gmx.de
Thu Oct 20 11:11:56 PDT 2011


Yes sure, I know, although I meant the rule name, not the token name. I
just wanted to mention it.

Am 20.10.2011 17:46, schrieb Jim Idle:
> You have to rename the token is all...
>
> KVOID: 'void' ;
>
> Jim
>
>> -----Original Message-----
>> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
>> bounces at antlr.org] On Behalf Of Christian
>> Sent: Thursday, October 20, 2011 3:50 AM
>> To: antlr-interest at antlr.org
>> Subject: Re: [antlr-interest] Rewriting a list of tokens to a list of
>> custom tokens
>>
>> Works fine. Thanks, Jim !
>>
>> I solely did not have to use keywords for the rule name, because 'void'
>> is a keyword in Java.
>>
>> Many greetings,
>> Christian
>>
>> Am 19.10.2011 23:38, schrieb Jim Idle:
>>> Sorry, I did not see that list thing, but I was trying to get you on
>>> the right track.
>>>
>>> First, don't use literals
>>> Put the tokens in subrules
>>> Change the token type in subrule (I usually just set the type field
>> in
>>> the token, but that is a bit of a cheat) I don't have time to test
>>> every code snippet that I post here
>>>
>>>
>>> x: t1+=void (t2+=star)* -> ^(LIST $t1 $t2*) ;
>>>
>>> void: t=VOID -> TYPE[$t];
>>> stat: t=STAR -> TYPE[$t];
>>>
>>> VOID: 'void';
>>> STAR: '*';
>>>
>>> Jim
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
>>>> bounces at antlr.org] On Behalf Of Christian
>>>> Sent: Wednesday, October 19, 2011 2:24 PM
>>>> To: antlr-interest at antlr.org
>>>> Subject: Re: [antlr-interest] Rewriting a list of tokens to a list
>> of
>>>> custom tokens
>>>>
>>>> No, your solution still generates invalid java code for me. Did you
>>>> test your solution? The TYPE token does not accept a list as
>> parameter.
>>>> It is a simple token defined within the token block at the top of
>> the
>>>> grammar.
>>>> It seems that the construction of an implicit list is only possible
>>>> for rules and read token within the rule, but not for imaginary
>>>> tokens. I hope I am wrong.
>>>>
>>>> Please make more solution suggestions.
>>>>
>>>> Am 19.10.2011 17:40, schrieb Jim Idle:
>>>>> t1+='void' (t2+='*')* -> ^(LIST TYPE[$t1]+ TYPE[$t2]+)
>>>>>
>>>>> By interpolating from your question. At least, that should get you
>>>>> on the right track.
>>>>>
>>>>>
>>>>> Jim
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
>>>>>> bounces at antlr.org] On Behalf Of Christian
>>>>>> Sent: Wednesday, October 19, 2011 5:40 AM
>>>>>> To: antlr-interest at antlr.org
>>>>>> Subject: [antlr-interest] Rewriting a list of tokens to a list of
>>>>>> custom tokens
>>>>>>
>>>>>> Hello ANTLR community,
>>>>>>
>>>>>> I want to get
>>>>>>
>>>>>>     t+='void' (t+='*')*
>>>>>>
>>>>>> to a list of a custom token type, say TYPE. That is, each
>>>>>> element/token of the list should change its original type to the
>>>> type TYPE.
>>>>>> The following approach does not work because invalid java code is
>>>>>> generated:
>>>>>>
>>>>>>     t+='void' (t+='*')* -> ^(TYPE[$t]+)
>>>>>>
>>>>>> The following implicit list generation works fine, however each
>>>>>> element retains its original type:
>>>>>>
>>>>>>     t+='void' (t+='*')* -> ^($t+)
>>>>>>
>>>>>> Can anyone tell me, whether and how this could be done?
>>>>>>
>>>>>> Thanks in advance,
>>>>>> Christian
>>>>>>
>>>>>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>>>>>> Unsubscribe:
>>>>>> http://www.antlr.org/mailman/options/antlr-interest/your-
>>>>>> email-address
>>>>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>>>>> Unsubscribe:
>>>>> http://www.antlr.org/mailman/options/antlr-interest/your-email-
>>>> address
>>>>
>>>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>>>> Unsubscribe:
>>>> http://www.antlr.org/mailman/options/antlr-interest/your-
>>>> email-address
>>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>>> Unsubscribe:
>>> http://www.antlr.org/mailman/options/antlr-interest/your-email-
>> address
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
>> email-address
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>



More information about the antlr-interest mailing list