Janne:

While it can be done using syntactic analysis, this sort of problem is almost 
invariably best addressed with semantic analysis and not with syntactic 
analysis. Semantic analysis allows the ready identification of common errors, 
e.g. if the input has dropped the whitespace between numbers, or if the creator 
of the input has lost track and repeated a number. A common problem with 
novices attempting to implement language analysis is to believe that their task 
is simplified by moving sophisticated tasks to conceptually simple tasks. They 
will try to simplify semantic analysis by creating a more detailed syntactic 
analysis and syntactic analysis by creating a more detailed lexical analysis. 
Almost invariably they discover that this attempt is fruitless and has to be 
undone, because it results in poor error reporting, runs into conflicts as the 
implementation becomes more complete, duplicates functionality in the later 
portions of the analysis, and is hard to maintain. For example 
 I suspect that your account has an underlying structure: e.g.

ACCOUNT
    : BankID BranchID AccountType UserID ...

On Aug 28, 2011, at 7:23 AM, Bart Kiers wrote:

> Hi Jonne,
> 
> No, that is not possible with a quantifier like {x}. You'll have to do it
> the "hard" way:
> 
> ACCOUNT
>  :  NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER
>  ;
> 
> Regards,
> 
> Bart.
> 
> 
> On Sun, Aug 28, 2011 at 3:20 PM, Jonne Zutt <[email protected]> wrote:
> 
>> Dear all,
>> 
>> Is it possible with antlr to match a token exactly n times?
>> Something like the following:
>> 
>> ACCOUNT : NUMBER{8};
>> 
>> NUMBER  :       ZERO
>>       |       (NONZERO DIGIT*)
>>       ;
>> ZERO    :       '0';
>> NONZERO :       '1'..'9';
>> DIGIT   :       '0'..'9';
>> 
>> Thanks,
>> Jonne.
>> 
>> 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

-- 
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to