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.