[antlr-interest] Suppress Warning Message
Vivek Kumbhojkar
vkumbhojkar at gmail.com
Wed Sep 15 22:21:47 PDT 2004
Hi Priya ,
Instead of supressing message check for grammar rules you may be doing
it in wronge way....
Vivek
On Wed, 15 Sep 2004 11:11:07 -0000, Priya Suresh
<meetvijaysuresh at rediffmail.com> wrote:
> Hi,
>
> When i execute my grammer file. I got WARNING MESSAGE LIKE
>
> "warning message nondeterminism". I want to suppress this warning
> messae throught the process.
>
> "I don't want to see this warning message". Is there any other option
> present for that.. I have tried to use "warnWhenFollowAmbig option"
>
> I don't know how and where to use this option.
>
> Code which I have
>
> Error I am getting
>
> CdFa.g: warning:lexical nondeterminism between rules CD and ALPHANUM
> upon
> CdFa.g: k==1:'c'
> CdFa.g: k==2:'d'
> CdFa.g: k==3:<end-of-token>
> CdFa.g: k==4:<end-of-token>
> CdFa.g: k==5:<end-of-token>
> CdFa.g: k==6:<end-of-token>
> CdFa.g: warning:lexical nondeterminism between rules FA and ALPHANUM
>
> class CdFaParser extends Parser;
> options
> {
> k = 2;
> buildAST = true; // uses CommonAST by default
> defaultErrorHandler = false;
> }
>
> // Define some variables to be used in the parser
> {
>
> /**
> * To track the # of times the directory name arg is
> entered
> */
>
> int directoryCount;
>
> /**
> *max length of the arg entered
> */
>
> int maxLength = 100;
>
> HashMap hmap = null;
> }
>
> /**
> * The Command entered by the user is checked for its validity.
> *
> * @param nil
> * @returns the hash map containing the command and its params.
> * @exception IndigoException
> */
>
> startRule returns[HashMap hmapRet = null] throws IndigoException
> {
> hmapRet = new HashMap();
> hmap = hmapRet;
> }
> :
> (changeDirectory
> )EOF
> ;
>
> /**
> * The Command syntax for Change directory and its corresponding
> actions
> *
> * @param nil
> * @return nil.
> * @exception IndigoException
> */
>
> changeDirectory throws IndigoException
> :
> CD WS FA (WS cdParams)* NEWLINE
> {
> hmap.put("verb", "Cd");
> hmap.put("object","Fa");
>
> if (directoryCount == 0)
> {
> throw new MissingParameterException("directorypath");
> }
>
> }
> ;
> /**
> * The syntax for Change directory command arguments and its
> corresponding actions
> *
> * @param nil
> * @return nil.
> * @exception IndigoException
> */
>
> cdParams throws IndigoException
> : setDirectorypath
> | setError
> ;
>
> setDirectorypath throws IndigoException
> :
> DIRECTORYPATH (WS)? a:ALPHANUM
> {
> if (directoryCount == 1)
> {
> throw new ParameterRepeatedException("Directorypath");
> }
>
> String directorypath = a.getText().trim();
>
> if ((directorypath.equals("="))||((directorypath.equals
> (""))))
> {
> throw new MissingParameterValueException
> ("Directorypath");
> }
>
> if (!isStringValid(directorypath))
> {
> throw new InvalidParameterValueException("Directorypath");
> }
>
> hmap.put("Directorypath", directorypath);
> directoryCount++;
> }
>
> exception
> catch [NoViableAltException nvae]
> {
> throw new MissingParameterValueException("Directorypath");
> }
> ;
>
> setError throws IndigoException
> :
> unknownParam:ALPHANUM
> {
> if (true)
> {
> throw new UnknownParameterException(unknownParam.getText
> ());
> }
> }
> ;
>
> /**
> * Checks whether the entered param is a valid string
> *
> * @param string containing the input param
> * @return boolean true/false.
> * @exception nil.
> */
>
> isStringValid[String inputStr] returns [boolean bRetVal = true]
> :
> {
>
> String patternMatch = "['\'\\a-zA-Z\\d#$\\-\\_\\.]*";
>
> if (inputStr.matches(patternMatch))
> {
> if (inputStr.length() > maxLength)
> {
> bRetVal = false;
> }
> }
> else
> {
> bRetVal = false;
> }
> }
> ;
>
> /**
> * A CdFaLexer class representing
> * lexer for Make directory.
> *
> * @author padmaja
> * @version 1
> */
>
> // Lexer framework (rule contents are missing here)
> class CdFaLexer extends Lexer;
> options
> {
> k = 6;
> caseSensitiveLiterals = false;
> caseSensitive = false;
> charVocabulary = ' '..'~' ;
>
> }
>
> // Definitions of verbs
> CD : "cd";
>
> // Definitions of objects
> FA : "fa";
>
> // Definitions of the parameters
> DIRECTORYPATH:"dirpath";
>
> WS : (' ' | '\t')+;
>
> NEWLINE : '\n';
>
> ALPHANUM
>
> options { testLiterals = true; }
> : ('=') => '='! (WS!)? (~(' ' | '\n' | '\t'))+
> | (~(' ' | '\n' | '\t'))+
> ;
>
> " Give me solution for that AEAP. "
>
>
> Yahoo! Groups Links
>
>
>
>
>
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/antlr-interest/
<*> To unsubscribe from this group, send an email to:
antlr-interest-unsubscribe at yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list