OMKgenericKernelGrammar.cpp

Go to the documentation of this file.
00001 /*
00002  * A n t l r  T r a n s l a t i o n  H e a d e r
00003  *
00004  * Terence Parr, Will Cohen, and Hank Dietz: 1989-2001
00005  * Purdue University Electrical Engineering
00006  * With AHPCRC, University of Minnesota
00007  * ANTLR Version 1.33MR33
00008  *
00009  *   /local/pccts/bin/antlr -CC -gl -mrhoist off genericKernelGrammar.g
00010  *
00011  */
00012 
00013 #define ANTLR_VERSION   13333
00014 #include "pcctscfg.h"
00015 #include "pccts_stdio.h"
00016 #line 1 "genericKernelGrammar.g"
00017 
00018 #include "OMKtokens.h"
00019 #include <assert.h>
00020 //correct a big PCCTS bug in c++ mode with return value that are classes
00021 #define PCCTS_PURIFY(r,s)
00022 
00023 #include <string>
00024 #include <OMKConfigurationParameterDescriptor.h>
00025 #include <OMKMultipleConfigurationParameter.h>
00026 #include <OMKUniqueConfigurationParameter.h>
00027 
00028 #include "OMKtokens.h"
00029 #include "stdio.h"
00030 #include "OMKDLGLexer.h"
00031 #include "ATokenBuffer.h"
00032 #include "ATokPtr.h"
00033 
00034 typedef ANTLRCommonToken ANTLRToken;
00035 
00036   
00037 #include "AParser.h"
00038 #include "OMKgenericKernelParser.h"
00039 #include "DLexerBase.h"
00040 #include "ATokPtr.h"
00041 
00042 /* MR23 In order to remove calls to PURIFY use the antlr -nopurify option */
00043 
00044 #ifndef PCCTS_PURIFY
00045 #define PCCTS_PURIFY(r,s) memset((char *) &(r),'\0',(s));
00046 #endif
00047 
00048 
00049 void
00050 genericKernelParser::multipleValue(OMK::MultipleConfigurationParameter * existingDescriptor)
00051 {
00052 #line 66 "genericKernelGrammar.g"
00053   zzRULE;
00054   if ( (LA(1)==21) ) {
00055 #line 67 "genericKernelGrammar.g"
00056     {
00057 #line 67 "genericKernelGrammar.g"
00058       zzmatch(21); consume();
00059 #line 67 "genericKernelGrammar.g"
00060       listValues( existingDescriptor );
00061 #line 67 "genericKernelGrammar.g"
00062       zzmatch(22); consume();
00063     }
00064   }
00065   else {
00066     if ( (LA(1)==23) ) {
00067 #line 69 "genericKernelGrammar.g"
00068       {
00069 #line 69 "genericKernelGrammar.g"
00070         zzmatch(23); consume();
00071 #line 69 "genericKernelGrammar.g"
00072         listAnonymousValues( existingDescriptor );
00073 #line 69 "genericKernelGrammar.g"
00074         zzmatch(24); consume();
00075       }
00076     }
00077     else {FAIL(1,err1,&zzMissSet,&zzMissText,&zzBadTok,&zzBadText,&zzErrk); goto fail;}
00078   }
00079   return;
00080 fail:
00081   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00082   resynch(setwd1, 0x1);
00083 }
00084 
00085 void
00086 genericKernelParser::listValues(OMK::MultipleConfigurationParameter * existingDescriptor)
00087 {
00088 #line 72 "genericKernelGrammar.g"
00089   zzRULE;
00090 #line 77 "genericKernelGrammar.g"
00091   {
00092     for (;;) {
00093       if ( !((setwd1[LA(1)]&0x2))) break;
00094       if ( (LA(1)==23) ) {
00095 #line 74 "genericKernelGrammar.g"
00096         {
00097 #line 74 "genericKernelGrammar.g"
00098           zzmatch(23); consume();
00099 #line 74 "genericKernelGrammar.g"
00100           listAnonymousValues( existingDescriptor );
00101 #line 74 "genericKernelGrammar.g"
00102           zzmatch(24); consume();
00103         }
00104       }
00105       else {
00106         if ( (LA(1)==ID) ) {
00107 #line 76 "genericKernelGrammar.g"
00108           namedValue( existingDescriptor );
00109         }
00110         else break; /* MR6 code for exiting loop "for sure" */
00111       }
00112     }
00113   }
00114   return;
00115 fail:
00116   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00117   resynch(setwd1, 0x4);
00118 }
00119 
00120 void
00121 genericKernelParser::listAnonymousValues(OMK::MultipleConfigurationParameter * existingDescriptor)
00122 {
00123 #line 80 "genericKernelGrammar.g"
00124   zzRULE;
00125 #line 81 "genericKernelGrammar.g"
00126   
00127   OMK::ConfigurationParameterDescriptor * anAnonymousValue ;
00128 #line 89 "genericKernelGrammar.g"
00129   {
00130     while ( (setwd1[LA(1)]&0x8) ) {
00131 #line 85 "genericKernelGrammar.g"
00132        anAnonymousValue  = anonymousValue();
00133 
00134 #line 86 "genericKernelGrammar.g"
00135       
00136       existingDescriptor->appendSubDescriptor(anAnonymousValue) ;
00137     }
00138   }
00139   return;
00140 fail:
00141   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00142   resynch(setwd1, 0x10);
00143 }
00144 
00145 void
00146 genericKernelParser::namedValue(OMK::MultipleConfigurationParameter * currentParameterDescriptor)
00147 {
00148 #line 92 "genericKernelGrammar.g"
00149   zzRULE;
00150 #line 93 "genericKernelGrammar.g"
00151   
00152   std::string keyName ;
00153   OMK::ConfigurationParameterDescriptor * associatedParameters ;
00154 #line 97 "genericKernelGrammar.g"
00155   key( keyName );
00156 #line 97 "genericKernelGrammar.g"
00157    associatedParameters  = anonymousValue();
00158 
00159 #line 98 "genericKernelGrammar.g"
00160   
00161   currentParameterDescriptor->appendSubDescriptorNamed ( keyName, associatedParameters ) ;
00162   return;
00163 fail:
00164   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00165   resynch(setwd1, 0x20);
00166 }
00167 
00168 OMK::ConfigurationParameterDescriptor *
00169 genericKernelParser::anonymousValue(void)
00170 {
00171   OMK::ConfigurationParameterDescriptor *   _retv( NULL) ;
00172 #line 103 "genericKernelGrammar.g"
00173   zzRULE;
00174   PCCTS_PURIFY(_retv,sizeof(OMK::ConfigurationParameterDescriptor *  ))
00175 #line 104 "genericKernelGrammar.g"
00176   
00177   std::string nextValue ;
00178   if ( (setwd1[LA(1)]&0x40) ) {
00179 #line 107 "genericKernelGrammar.g"
00180     concreteValue( nextValue );
00181 #line 108 "genericKernelGrammar.g"
00182     
00183     _retv = new OMK::UniqueConfigurationParameter ( nextValue ) ;
00184   }
00185   else {
00186     if ( (setwd1[LA(1)]&0x80) ) {
00187 #line 112 "genericKernelGrammar.g"
00188       
00189       OMK::MultipleConfigurationParameter * realResult ;
00190       realResult = new OMK::MultipleConfigurationParameter () ;
00191       _retv = realResult ;
00192 #line 117 "genericKernelGrammar.g"
00193       multipleValue( realResult );
00194     }
00195     else {FAIL(1,err2,&zzMissSet,&zzMissText,&zzBadTok,&zzBadText,&zzErrk); goto fail;}
00196   }
00197   return _retv;
00198 fail:
00199   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00200   resynch(setwd2, 0x1);
00201   return _retv;
00202 }
00203 
00204 void
00205 genericKernelParser::concreteValue(std::string & value)
00206 {
00207 #line 120 "genericKernelGrammar.g"
00208   zzRULE;
00209 #line 122 "genericKernelGrammar.g"
00210   {
00211     if ( (LA(1)==_INT) ) {
00212 #line 122 "genericKernelGrammar.g"
00213       zzmatch(_INT);
00214 #line 122 "genericKernelGrammar.g"
00215       value = LT(1)->getText() ;
00216  consume();
00217     }
00218     else {
00219       if ( (LA(1)==_FLOAT) ) {
00220 #line 124 "genericKernelGrammar.g"
00221         zzmatch(_FLOAT);
00222 #line 124 "genericKernelGrammar.g"
00223         value = LT(1)->getText() ;
00224  consume();
00225       }
00226       else {
00227         if ( (LA(1)==STRINGVAL) ) {
00228 #line 126 "genericKernelGrammar.g"
00229           string( value );
00230         }
00231         else {
00232           if ( (LA(1)==ID) ) {
00233 #line 128 "genericKernelGrammar.g"
00234             zzmatch(ID);
00235 #line 128 "genericKernelGrammar.g"
00236             value = LT(1)->getText() ;
00237  consume();
00238           }
00239           else {FAIL(1,err3,&zzMissSet,&zzMissText,&zzBadTok,&zzBadText,&zzErrk); goto fail;}
00240         }
00241       }
00242     }
00243   }
00244   return;
00245 fail:
00246   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00247   resynch(setwd2, 0x2);
00248 }
00249 
00250 void
00251 genericKernelParser::string(std::string & value)
00252 {
00253 #line 132 "genericKernelGrammar.g"
00254   zzRULE;
00255   ANTLRTokenPtr _t11=NULL;
00256 #line 132 "genericKernelGrammar.g"
00257   zzmatch(STRINGVAL); _t11 = (ANTLRTokenPtr)LT(1);
00258 #line 133 "genericKernelGrammar.g"
00259   
00260   //cerr<<"_"<<$1->getText()<<"_"<<endl;
00261   char * textwithQuotes ;
00262   int textlength ;
00263   textwithQuotes = _t11->getText() ;
00264   textlength = strlen ( textwithQuotes ) ;
00265   if (textlength > 2)
00266   { 
00267     assert ( textwithQuotes[textlength-1] == '"' ) ;
00268     textwithQuotes[textlength-1] = '\0' ;
00269     value = &(textwithQuotes[1]);
00270     textwithQuotes[textlength-1] = '"' ;
00271   }
00272  consume();
00273   return;
00274 fail:
00275   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00276   resynch(setwd2, 0x4);
00277 }
00278 
00279 void
00280 genericKernelParser::key(std::string & value)
00281 {
00282 #line 149 "genericKernelGrammar.g"
00283   zzRULE;
00284 #line 150 "genericKernelGrammar.g"
00285   zzmatch(ID);
00286 #line 151 "genericKernelGrammar.g"
00287   
00288   value = LT(1)->getText() ;
00289  consume();
00290   return;
00291 fail:
00292   syn(zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk);
00293   resynch(setwd2, 0x8);
00294 }

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007