
/*************************************************************************/
/*                                                                       */
/*        Produced by MetaGen version 2.0  -    1989-1995                 */
/*       Syntaxic Analyzer Meta Generator developped by                  */
/*                  Eric Lavillonniere                                   */
/*                                                                       */
/*************************************************************************/

#include "token.h"
#include "config.h"


#line 18 "config.met"
PPTREE config::langage ( int error_free)
#line 18 "config.met"
{
#line 18 "config.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 18 "config.met"
    int _value,_nbPre = 0 ;
#line 18 "config.met"
    PCOMM_ELEM _ptPreComm = (1,listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 18 "config.met"
    int _Debug = TRACE_RULE("langage",TRACE_ENTER,(PPTREE)0);
#line 18 "config.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 18 "config.met"
#line 19 "config.met"
    while ((tokenAhead && tokenAhead != -1)|| (c != EOF)) { 
#line 19 "config.met"
#line 20 "config.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 20 "config.met"
        switch( lexEl.Value) {
#line 20 "config.met"
#line 21 "config.met"
            case META : 
#line 21 "config.met"
            case FOO_LOW : 
#line 21 "config.met"
                tokenAhead = 0 ;
#line 21 "config.met"
                CommTerm();
#line 21 "config.met"
#line 21 "config.met"
                write(1,theLanguage,strlen(theLanguage));
#line 21 "config.met"
                break;
#line 21 "config.met"
#line 22 "config.met"
            case FOO_UPP : 
#line 22 "config.met"
                tokenAhead = 0 ;
#line 22 "config.met"
                CommTerm();
#line 22 "config.met"
#line 23 "config.met"
                 {
#line 23 "config.met"
                					char string [80];
#line 23 "config.met"
                					char *point = string ;
#line 23 "config.met"
                					strcpy(string,theLanguage);
#line 23 "config.met"
                					while ( *point) {
#line 23 "config.met"
                						*point = toupper (*point);
#line 23 "config.met"
                						point++;
#line 23 "config.met"
                					}
#line 23 "config.met"
                					write(1,string,strlen(string)); }
#line 23 "config.met"
                				
#line 23 "config.met"
                break;
#line 23 "config.met"
#line 33 "config.met"
            case CHARACTER : 
#line 33 "config.met"
                tokenAhead = 0 ;
#line 33 "config.met"
                CommTerm();
#line 33 "config.met"
#line 33 "config.met"
                write(1,lexEl.string,1);
#line 33 "config.met"
                break;
#line 33 "config.met"
            default :
#line 33 "config.met"
                CASE_EXIT(langage_exit,"either FOO_LOW or FOO_UPP or CHARACTER")
#line 33 "config.met"
                break;
#line 33 "config.met"
        }
#line 33 "config.met"
    } 
#line 33 "config.met"
#line 33 "config.met"
#line 34 "config.met"
1;
#line 34 "config.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 34 "config.met"
return((PPTREE) 0);
#line 34 "config.met"

#line 34 "config.met"
langage_exit :
#line 34 "config.met"

#line 34 "config.met"
    _Debug = TRACE_RULE("langage",TRACE_EXIT,(PPTREE)0);
#line 34 "config.met"
    _funcLevel--;
#line 34 "config.met"
    return((PPTREE) -1) ;
#line 34 "config.met"

#line 34 "config.met"
langage_ret :
#line 34 "config.met"
    
#line 34 "config.met"
    _Debug = TRACE_RULE("langage",TRACE_RETURN,_retValue);
#line 34 "config.met"
    1;
#line 34 "config.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 34 "config.met"
    return _retValue ;
#line 34 "config.met"
}
#line 34 "config.met"

#line 34 "config.met"
#line 37 "config.met"
PPTREE config::parse_entry ( int error_free)
#line 37 "config.met"
{
#line 37 "config.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 37 "config.met"
    int _value,_nbPre = 0 ;
#line 37 "config.met"
    PCOMM_ELEM _ptPreComm = (1,listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 37 "config.met"
    int _Debug = TRACE_RULE("parse_entry",TRACE_ENTER,(PPTREE)0);
#line 37 "config.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 37 "config.met"
#line 38 "config.met"
     goto parse_entry_exit;
#line 38 "config.met"
#line 38 "config.met"
#line 38 "config.met"

#line 39 "config.met"
1;
#line 39 "config.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 39 "config.met"
return((PPTREE) 0);
#line 39 "config.met"

#line 39 "config.met"
parse_entry_exit :
#line 39 "config.met"

#line 39 "config.met"
    _Debug = TRACE_RULE("parse_entry",TRACE_EXIT,(PPTREE)0);
#line 39 "config.met"
    _funcLevel--;
#line 39 "config.met"
    return((PPTREE) -1) ;
#line 39 "config.met"

#line 39 "config.met"
parse_entry_ret :
#line 39 "config.met"
    
#line 39 "config.met"
    _Debug = TRACE_RULE("parse_entry",TRACE_RETURN,_retValue);
#line 39 "config.met"
    1;
#line 39 "config.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 39 "config.met"
    return _retValue ;
#line 39 "config.met"
}
#line 39 "config.met"

#line 39 "config.met"
