[antlr-interest] How to tell the lexer to stop?(C runtime target )

chain one chainone at gmail.com
Thu Jan 15 16:33:58 PST 2009


Thanks JIm
You suggestion is very useful to me.
Here is my another concern to the method you provided:
If the file is very large, would it lead the lexer to read though the
whole file? If it is, I think it would be slower than the method of
just telling the lexer to stop.

On 1/16/09, Jim Idle <jimi at temporal-wave.com> wrote:
> chain one wrote:
>>
>> I want to only parse the beginning of a file. And I don't want the
>> recognizer to beak the whole file into huge number of tokens which will
>> make the memory consuming very high.
>> So after the lexer having recognized one specified TOKEN such as ";", I
>> want to tell the lexer to stop, and pass the tokens to the parser.
>> Is it possible in C runtime target? If it is, could you tell me how?
>>
>>
>> SEMI: ';'  { // throw the EOF token?}
>> ;
>>
> If the trigger point is as simple as this, then why not just:
>
> SEMI : ';' .* ;
>
> Remember that the text is not copied into the token, it is just a pointer to
> the start and end of the text and so does not take up any memory.
>
> Jim
>>
>>
>> Thanks
>>
>> ________________________________
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>>
>
>
>

-- 
Sent from my mobile device


More information about the antlr-interest mailing list