Thanks a ton Dave. That surely helped solve the problem.
I have a new problem now. My application's .g is as follows:

    CMD_CD : 'cd';
    CMD_SHOW: 'show';
    CMD_RESET: 'reset';
    CMD_SET: 'set';
    CMD_OPTION: (' -all' | ' -help' | ' -version' | ' -display')*;
    TSEP: ' ' { SKIP(); };

The parser is defined as:
cmd_validate: (cmd)(CMD_OPTION) EOF;

cmd: CMD_CD | CMD_SHOW | CMD_RESET | CMD_SET;

A valid input to my application is "cd -help -version -display". I can achieve 
this with the " " (space) prefixed for each of the CMD_OPTION value.
However, if I enter "cd-help", then my application hangs on ANTLRWorks and even 
my C code hangs.

I would want to ensure that there is a space between the "cmd" and the 
"cmd_option" (if there is a cmd_option value).

So, my application takes values as follows:
1. cd -help -version -display
2. cd -version
3. cd
4. show -help -version -display....... et al

What should I do so that it throws an exception when I enter "cd-help" or 
"show-version"?

Could you please help me on this too?

Regards,
Swift



________________________________
From: David Peckham <dave.peck...@me.com>
To: Meena Vinod <spprtmai...@yahoo.com>
Cc: antlr-inter...@antlr.org
Sent: Tuesday, January 27, 2009 11:04:44 AM
Subject: Re: [antlr-interest] The behavior.....


Try:


cmd_validate
:cmd CMD_OPTION EOF
;

ANTLR will report errors if you have extra input.

Dave


On Jan 26, 2009, at 8:03 PM, Meena Vinod wrote:

Hello,
This pet project of mine requires that I can validate a command. The command is 
of the form <command_name><command options>

My lexer consists of all the command names and options:

Ex: 
    
    CMD_CD : 'cd';
    CMD_SHOW: 'show';
    CMD_RESET: 'reset';
    CMD_SET: 'set';
    CMD_OPTION: '-all' | '-help';
    TSEP: ' ' { SKIP(); };

The parser is defined as:
cmd_validate: (cmd)(CMD_OPTION);

cmd: CMD_CD | CMD_SHOW | CMD_RESET | CMD_SET;

For all valid inputs, the cmd_validate behaves properly.

On the ANTLRWorks, when I give a junk input say 'zee zee', the ANTLRWorks does 
not generate any proper output and does not evn throw an exception.
Also, the C code generated hangs when given this input.

Can someone help me out on this?

Many thanks,
Swift. 



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 il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

Reply via email to