4781 lines
141 KiB
C++
4781 lines
141 KiB
C++
|
|
|
|
#define YY_CHAR char
|
|
/* added by Xavier Billault */
|
|
|
|
#include "Defines.hpp"
|
|
|
|
#ifdef D_ED_IR_ACTIVE
|
|
|
|
/* end added by Xavier Billault*/
|
|
|
|
/* A lexical scanner generated by flex */
|
|
/* scanner skeleton version:
|
|
* $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.16 90/08/03 14:09:36 vern Exp $
|
|
*/
|
|
/* MODIFIED FOR C++ CLASS BY Alain Coetmeur: coetmeur(at)icdc.fr */
|
|
/* Note that (at) mean the 'at' symbol that I cannot write */
|
|
/* because it is expanded to the class name */
|
|
/* made at Informatique-CDC, Research&development department */
|
|
/* company from the Caisse Des Depots et Consignations */
|
|
/* institutional financial group (say 'Cat Doc Cad') */
|
|
|
|
/* theses symbols are added before this file */
|
|
/* #define YY_CHAR 'unsigned char' if 8bit or 'char' if 7bit */
|
|
/* #define FLEX_DEBUG if debug mode */
|
|
#define FLEX_SCANNER
|
|
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
|
|
#ifdef c_plusplus
|
|
#ifndef __cplusplus
|
|
#define __cplusplus
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus /*added by Xavier Billault*/
|
|
#ifndef YY_USE_CLASS /*added by Xavier Billault*/
|
|
#define YY_USE_CLASS /*added by Xavier Billault*/
|
|
#endif /*added by Xavier Billault*/
|
|
#endif /*added by Xavier Billault*/
|
|
|
|
/* Old MSC, before c7 */
|
|
#ifdef MSDOS
|
|
#ifndef _MSDOS
|
|
#define _MSDOS
|
|
#endif
|
|
#endif
|
|
/* turboc */
|
|
#ifdef __MSDOS__
|
|
#ifndef _MSDOS
|
|
#define _MSDOS
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#include <stdlib.h>
|
|
#define YY_USE_CONST
|
|
#define YY_USE_PROTOS
|
|
#ifndef _MSDOS
|
|
//#include <osfcn.h>
|
|
#endif
|
|
#else /* ! __cplusplus */
|
|
#ifdef __STDC__
|
|
#ifdef __GNUC__
|
|
#include <stddef.h>
|
|
void *malloc( size_t );
|
|
void free( void* );
|
|
int read();
|
|
#else
|
|
#include <stdlib.h>
|
|
#endif /* __GNUC__ */
|
|
#define YY_USE_PROTOS
|
|
#define YY_USE_CONST
|
|
#endif /* __STDC__ */
|
|
#endif /* ! __cplusplus */
|
|
#ifdef __TURBOC__
|
|
#define YY_USE_CONST
|
|
#endif
|
|
#include <stdio.h>
|
|
|
|
|
|
/*********************************************/
|
|
/* COMPILER DEPENDENT MACROS */
|
|
/*********************************************/
|
|
/* use prototypes in function declarations */
|
|
/* the "const" storage-class-modifier is valid */
|
|
#ifndef YY_USE_CONST
|
|
#define const
|
|
#endif
|
|
/* use prototypes in function declarations */
|
|
#ifndef YY_PROTO
|
|
#ifdef YY_USE_PROTOS
|
|
#define YY_PROTO(proto) proto
|
|
#else
|
|
#define YY_PROTO(proto) ()
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/*********************/
|
|
/* parameters */
|
|
|
|
/* amount of stuff to slurp up with each read */
|
|
#ifndef YY_READ_BUF_SIZE
|
|
#define YY_READ_BUF_SIZE 8192
|
|
#endif
|
|
/* size of default input buffer */
|
|
#ifndef YY_BUF_SIZE
|
|
#define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2)
|
|
#endif
|
|
|
|
/***********************************/
|
|
/* to be redefined for application */
|
|
|
|
/* returned upon end-of-file */
|
|
#define YY_END_TOK 0
|
|
/* no semi-colon after return; correct usage is to write "yyterminate();" -
|
|
* we don't want an extra ';' after the "return" because that will cause
|
|
* some compilers to complain about unreachable statements.
|
|
*/
|
|
#define yyterminate() return ( YY_NULL )
|
|
|
|
/* code executed at the end of each rule */
|
|
#define YY_BREAK break;
|
|
|
|
/* #define YY_USER_ACTION */
|
|
/* #define YY_USER_INIT */
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
/* copy whatever the last rule matched to the standard output */
|
|
/* cast to (char *) is because for 8-bit chars, yy___text is (unsigned char *) */
|
|
/* this used to be an fputs(), but since the string might contain NUL's,
|
|
* we now use fwrite()
|
|
*/
|
|
#define ECHO (void) fwrite( (char *) yy___text, yy___leng, 1, yy___out )
|
|
|
|
/* gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
|
* is returned in "result".
|
|
*/
|
|
#ifdef _MSDOS
|
|
#define YY_INPUT(buf,result,max_size) \
|
|
if ( (result = fread(buf,1,max_size,yy___in)) < 0 ) \
|
|
YY_FATAL_ERROR( "fread() in flex scanner failed" );
|
|
#else
|
|
#define YY_INPUT(buf,result,max_size) \
|
|
if ( (result = read( fileno(yy___in), (char *) buf, max_size )) < 0 ) \
|
|
YY_FATAL_ERROR( "read() in flex scanner failed" );
|
|
|
|
#endif
|
|
/* report a fatal error */
|
|
|
|
/* The funky do-while is used to turn this macro definition into
|
|
* a single C statement (which needs a semi-colon terminator).
|
|
* This avoids problems with code like:
|
|
*
|
|
* if ( something_happens )
|
|
* YY_FATAL_ERROR( "oops, the something happened" );
|
|
* else
|
|
* everything_okay();
|
|
*
|
|
* Prior to using the do-while the compiler would get upset at the
|
|
* "else" because it interpreted the "if" statement as being all
|
|
* done when it reached the ';' after the YY_FATAL_ERROR() call.
|
|
*/
|
|
|
|
#define YY_FATAL_ERROR(msg) \
|
|
do \
|
|
{ \
|
|
(void) fputs( msg, stderr ); \
|
|
(void) putc( '\n', stderr ); \
|
|
exit( 1 ); \
|
|
} \
|
|
while ( 0 )
|
|
|
|
/* default yywrap function - always treat EOF as an EOF */
|
|
#define yywrap() 1
|
|
|
|
|
|
/* default declaration of generated scanner - a define so the user can
|
|
* easily add parameters
|
|
*/
|
|
#define YY_DECL int yylex YY_PROTO(( void ))
|
|
#else
|
|
/* c++ */
|
|
#define ECHO yy___echo()
|
|
#define YY_INPUT(buf,result,max_size) \
|
|
if ( yy___input((char *)buf, result,max_size) < 0 ) \
|
|
YY_FATAL_ERROR( "YY_INPUT() in flex scanner failed" );
|
|
|
|
#define YY_FATAL_ERROR(msg) yy___fatal_error(msg)
|
|
#define yywrap() yy___wrap()
|
|
|
|
#endif
|
|
/***********************************/
|
|
/* not to be changed */
|
|
#define YY_NULL 0
|
|
#define YY_END_OF_BUFFER_CHAR 0
|
|
/* special action meaning "start processing a new file" */
|
|
#define YY_NEW_FILE yy___newfile
|
|
/* enter a start condition. This macro really ought to take a parameter,
|
|
* but we do it the disgusting crufty way forced on us by the ()-less
|
|
* definition of BEGIN
|
|
*/
|
|
#define BEGIN yy_start = 1 + 2 *
|
|
|
|
/* action number for EOF rule of a given start state */
|
|
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
|
|
|
|
|
|
|
|
/* % section 1 definitions go here */
|
|
#define INITIAL 0
|
|
#include <io.h> //for read()
|
|
|
|
#include "EdIRbis.hpp"
|
|
|
|
#include "EdIRDVLs.hpp"
|
|
#include "EdIRMacL.hpp"
|
|
#include "EdIRFrm.hpp"
|
|
#include "EdIRIRD.hpp"
|
|
#include "EdIRBeEn.hpp"
|
|
#include "EdIRBeha.hpp"
|
|
#include "EdIR2Eng.hpp"
|
|
#include "EdIRGlob.hpp"
|
|
#include "EdIRDict.hpp"
|
|
#include "EdIRIAWd.hpp"
|
|
#include "EdIRStrg.hpp"
|
|
|
|
#include "ai_intf.hpp" //for g_pclAIInterface
|
|
|
|
#include "CPA_NLL.hpp"
|
|
|
|
#include "EDACModl.hpp"
|
|
|
|
extern long gl_MacroAddress;
|
|
|
|
#include "GAM.h"
|
|
#if 0
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//TEMPORAIRE A ENLEVER LE PLUS RAPIDEMENT POSSIBLE
|
|
//#include "GAM\GamInven.h"
|
|
#endif //0
|
|
|
|
#include "IPT.h"
|
|
|
|
#include "x:\cpa\main\inc\_EditID.h"
|
|
#include "TLS/LPSconst.hpp"
|
|
|
|
#include "GMT.h"
|
|
|
|
#include "TFA.h"
|
|
|
|
#include "incAI.h"
|
|
|
|
#include "_Actors.hpp"
|
|
|
|
#define YY_USE_CLASS
|
|
|
|
//ANNECY CB
|
|
CString gcsGlob;
|
|
//END
|
|
//ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
CString cs_params;
|
|
int iCount;
|
|
long l_id;
|
|
//END ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
|
|
/**********/
|
|
/* Macros */
|
|
/**********/
|
|
|
|
#define M_COMPUTE_POSITION() if(!m_bIsInMacro && !m_bIsInDefine) \
|
|
{ \
|
|
m_lOldIndex=m_lIndexWithoutSpaceAndTab; \
|
|
m_lIndex+=yyleng; \
|
|
m_lIndexWithoutSpaceAndTab=m_lIndex; \
|
|
}
|
|
|
|
#define M_COMPUTE_ALL() M_COMPUTE_POSITION(); \
|
|
g_clParse.yylval.csInitial=yytext
|
|
|
|
#define M_COMPUTE_ALL_4_KW() M_COMPUTE_ALL(); \
|
|
long lIndex=fn_lGetKeyWordIdFromEditorName(yytext); \
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eKeyWord,lIndex); \
|
|
if(M_ID_IS_INVALID(lIndex)) \
|
|
{ \
|
|
g_clParse.m_csMsgError="Unknown KeyWord"; \
|
|
return CParse::SYNTAXERROR; \
|
|
}
|
|
|
|
#define M_COMPUTE_ALL_4_OP() M_COMPUTE_ALL(); \
|
|
long lIndex=fn_lGetOperatorIdFromEditorName(yytext); \
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eOperator,lIndex); \
|
|
if(M_ID_IS_INVALID(lIndex)) \
|
|
{ \
|
|
g_clParse.m_csMsgError="Unknown Operator"; \
|
|
return CParse::SYNTAXERROR; \
|
|
}
|
|
|
|
#define M_COMPUTE_ALL_4_OPC() M_COMPUTE_ALL(); \
|
|
long lIndex=fn_lGetConditionIdFromEditorName(yytext); \
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eCondition,lIndex); \
|
|
if(M_ID_IS_INVALID(lIndex)) \
|
|
{ \
|
|
g_clParse.m_csMsgError="Unknown Condition"; \
|
|
return CParse::SYNTAXERROR; \
|
|
}
|
|
|
|
#define M_COMPUTE_ALL_4_BOOL(a) M_COMPUTE_ALL(); \
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eConstant,(long)(a))
|
|
|
|
#define M_COMPUTE_ALL_4_COND() M_COMPUTE_ALL(); \
|
|
if(!fn_bIsCondition(yytext,&(g_clParse.yylval))) \
|
|
{ \
|
|
g_clParse.m_csMsgError="Unknown Condition"; \
|
|
return CParse::SYNTAXERROR; \
|
|
}
|
|
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
#define M_EXPAND_DEFINE() CString csDefineText; \
|
|
if (m_clDefineList . Lookup (yytext, csDefineText)) \
|
|
{ \
|
|
m_bIsInDefine = TRUE; \
|
|
m_fn_vEnterContext ((char *) (LPCSTR) (csDefineText)); \
|
|
return yylex (); \
|
|
}
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
|
|
/*************/
|
|
/* Functions */
|
|
/*************/
|
|
|
|
//MetaAction
|
|
//ANNECY CB
|
|
BOOL fn_bIsMetaAction(CString&,stReturn *);
|
|
//BOOL fn_bIsMetaAction(CString,stReturn *);
|
|
BOOL fn_bIsMetaAction(char *,stReturn *);
|
|
//END
|
|
|
|
//Condition
|
|
//ANNECY CB
|
|
BOOL fn_bIsCondition(CString&,stReturn *);
|
|
//BOOL fn_bIsCondition(CString,stReturn *);
|
|
BOOL fn_bIsCondition(char *,stReturn *);
|
|
//END
|
|
|
|
//Designer Variable
|
|
//ANNECY CB
|
|
BOOL fn_bIsDesignerVariable(CString&,stReturn *);
|
|
//BOOL fn_bIsDesignerVariable(CString,stReturn *);
|
|
BOOL fn_bIsDesignerVariable(char *,stReturn *);
|
|
//END
|
|
|
|
//ConstantInt
|
|
//ANNECY CB
|
|
BOOL fn_bIsAConstantInt(CString&,stReturn *);
|
|
//BOOL fn_bIsAConstantInt(CString,stReturn *);
|
|
BOOL fn_bIsAConstantInt(char *,stReturn *);
|
|
//END
|
|
|
|
//ConstantReal
|
|
//ANNECY CB
|
|
BOOL fn_bIsAConstantReal(CString&,stReturn *);
|
|
//BOOL fn_bIsAConstantReal(CString,stReturn *);
|
|
BOOL fn_bIsAConstantReal(char *,stReturn *);
|
|
//END
|
|
|
|
//Type
|
|
//ANNECY CB
|
|
BOOL fn_bIsAType(CString&,stReturn *);
|
|
//BOOL fn_bIsAType(CString,stReturn *);
|
|
BOOL fn_bIsAType(char *,stReturn *);
|
|
//END
|
|
|
|
//Function
|
|
//ANNECY CB
|
|
BOOL fn_bIsFunction(CString&,stReturn *);
|
|
//BOOL fn_bIsFunction(CString,stReturn *);
|
|
BOOL fn_bIsFunction(char *,stReturn *);
|
|
//END
|
|
|
|
//Procedure
|
|
//ANNECY CB
|
|
BOOL fn_bIsProcedure(CString&,stReturn *);
|
|
//BOOL fn_bIsProcedure(CString,stReturn *);
|
|
BOOL fn_bIsProcedure(char *,stReturn *);
|
|
//END
|
|
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Subr
|
|
BOOL fn_bIsSubr(CString&,stReturn *);
|
|
BOOL fn_bIsSubr(char *,stReturn *);
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
|
|
//Field
|
|
//ANNECY CB
|
|
BOOL fn_bIsField(CString&,stReturn *);
|
|
//BOOL fn_bIsField(CString,stReturn *);
|
|
BOOL fn_bIsField(char *,stReturn *);
|
|
//END
|
|
|
|
//Perso (and Always)
|
|
//ANNECY CB
|
|
BOOL fn_bIsAPerso(CString&,stReturn *);
|
|
//BOOL fn_bIsAPerso(CString,stReturn *);
|
|
BOOL fn_bIsAPerso(char *,stReturn *);
|
|
//END
|
|
|
|
//ZDD
|
|
//ANNECY CB
|
|
long fn_lIsAZdd(CString&,stReturn *);
|
|
//long fn_lIsAZdd(CString,stReturn *);
|
|
long fn_lIsAZdd(char *,stReturn *);
|
|
//END
|
|
|
|
//ZDE
|
|
//ANNECY CB
|
|
long fn_lIsAZde(CString&,stReturn *);
|
|
//long fn_lIsAZde(CString,stReturn *);
|
|
long fn_lIsAZde(char *,stReturn *);
|
|
//END
|
|
|
|
//ZDM
|
|
//ANNECY CB
|
|
long fn_lIsAZdm(CString&,stReturn *);
|
|
//long fn_lIsAZdm(CString,stReturn *);
|
|
long fn_lIsAZdm(char *,stReturn *);
|
|
//END
|
|
|
|
//ZDR
|
|
//ANNECY CB
|
|
long fn_lIsAZdr(CString&,stReturn *);
|
|
//long fn_lIsAZdr(CString,stReturn *);
|
|
long fn_lIsAZdr(char *,stReturn *);
|
|
//END
|
|
|
|
//Action
|
|
//ANNECY CB
|
|
BOOL fn_bIsAnAction(CString&,stReturn *);
|
|
//BOOL fn_bIsAnAction(CString,stReturn *);
|
|
BOOL fn_bIsAnAction(char *,stReturn *);
|
|
//END
|
|
|
|
//WayPoint
|
|
//ANNECY CB
|
|
BOOL fn_bIsAWayPoint(CString&,stReturn *);
|
|
//BOOL fn_bIsAWayPoint(CString,stReturn *);
|
|
BOOL fn_bIsAWayPoint(char *,stReturn *);
|
|
//END
|
|
|
|
//Channel
|
|
//ANNECY CB
|
|
BOOL fn_bIsAChannel(CString&,stReturn *);
|
|
//BOOL fn_bIsAChannel(CString,stReturn *);
|
|
BOOL fn_bIsAChannel(char *,stReturn *);
|
|
//END
|
|
|
|
//Surface
|
|
//ANNECY CB
|
|
BOOL fn_bIsASurface(CString&,stReturn *);
|
|
//BOOL fn_bIsASurface(CString,stReturn *);
|
|
BOOL fn_bIsASurface(char *,stReturn *);
|
|
//END
|
|
|
|
//Environment
|
|
//ANNECY CB
|
|
BOOL fn_bIsAEnvironment(CString&,stReturn *);
|
|
//BOOL fn_bIsAEnvironment(CString,stReturn *);
|
|
BOOL fn_bIsAEnvironment(char *,stReturn *);
|
|
//END
|
|
|
|
//LipSynchro
|
|
//ANNECY CB
|
|
BOOL fn_bIsALipSynchro(CString&,stReturn *);
|
|
//BOOL fn_bIsALipSynchro(CString,stReturn *);
|
|
BOOL fn_bIsALipSynchro(char *,stReturn *);
|
|
//END
|
|
|
|
//Sector
|
|
//ANNECY CB
|
|
BOOL fn_bIsASector(CString&,stReturn *);
|
|
//BOOL fn_bIsASector(CString,stReturn *);
|
|
BOOL fn_bIsASector(char *,stReturn *);
|
|
//END
|
|
|
|
//SuperObject
|
|
//ANNECY CB
|
|
BOOL fn_bIsASuperObject(CString&,stReturn *);
|
|
//BOOL fn_bIsASuperObject(CString,stReturn *);
|
|
BOOL fn_bIsASuperObject(char *,stReturn *);
|
|
//END
|
|
|
|
//ObjectTable
|
|
//ANNECY CB
|
|
BOOL fn_bIsAObjectTable(CString&,stReturn *);
|
|
//BOOL fn_bIsAObjectTable(CString,stReturn *);
|
|
BOOL fn_bIsAObjectTable(char *,stReturn *);
|
|
//END
|
|
|
|
//Family
|
|
//ANNECY CB
|
|
BOOL fn_bIsAFamily(CString&,stReturn *);
|
|
//BOOL fn_bIsAFamily(CString,stReturn *);
|
|
BOOL fn_bIsAFamily(char *,stReturn *);
|
|
//END
|
|
|
|
//Model
|
|
//ANNECY CB
|
|
BOOL fn_bIsAModel(CString&,stReturn *);
|
|
//BOOL fn_bIsAModel(CString,stReturn *);
|
|
BOOL fn_bIsAModel(char *,stReturn *);
|
|
//END
|
|
|
|
//SoundEvent
|
|
//ANNECY CB
|
|
BOOL fn_bIsASoundEvent(CString&,stReturn *);
|
|
//BOOL fn_bIsASoundEvent(CString,stReturn *);
|
|
BOOL fn_bIsASoundEvent(char *,stReturn *);
|
|
//END
|
|
|
|
//GameMaterial
|
|
//ANNECY CB
|
|
BOOL fn_bIsAGameMaterial(CString&,stReturn *);
|
|
//BOOL fn_bIsAGameMaterial(CString,stReturn *);
|
|
BOOL fn_bIsAGameMaterial(char *,stReturn *);
|
|
//END
|
|
|
|
//Light
|
|
//ANNECY CB
|
|
BOOL fn_bIsALight(CString&,stReturn *);
|
|
//BOOL fn_bIsALight(CString,stReturn *);
|
|
BOOL fn_bIsALight(char *,stReturn *);
|
|
//END
|
|
|
|
//Capabilities
|
|
//ANNECY CB
|
|
BOOL fn_bIsACaps(CString&,stReturn *);
|
|
//BOOL fn_bIsACaps(CString,stReturn *);
|
|
BOOL fn_bIsACaps(char *,stReturn *);
|
|
//END
|
|
//Graph
|
|
//ANNECY CB
|
|
BOOL fn_bIsAGraph(CString&,stReturn *);
|
|
//BOOL fn_bIsAGraph(CString,stReturn *);
|
|
BOOL fn_bIsAGraph(char *,stReturn *);
|
|
//END
|
|
|
|
//Reflex Behaviour
|
|
//ANNECY CB
|
|
BOOL fn_bIsAReflexBehaviour(CString&,stReturn *);
|
|
//BOOL fn_bIsAReflexBehaviour(CString,stReturn *);
|
|
BOOL fn_bIsAReflexBehaviour(char *,stReturn *);
|
|
//END
|
|
|
|
//Intelligence Behaviour
|
|
//ANNECY CB
|
|
BOOL fn_bIsAIntelligenceBehaviour(CString&,stReturn *);
|
|
//BOOL fn_bIsAIntelligenceBehaviour(CString,stReturn *);
|
|
BOOL fn_bIsAIntelligenceBehaviour(char *,stReturn *);
|
|
//END
|
|
|
|
//Reflex Behaviour (for me)
|
|
//ANNECY CB
|
|
BOOL fn_bIsMyReflexBehaviour(CString&,stReturn *);
|
|
//BOOL fn_bIsMyReflexBehaviour(CString,stReturn *);
|
|
BOOL fn_bIsMyReflexBehaviour(char *,stReturn *);
|
|
//END
|
|
|
|
//Intelligence Behaviour (for me)
|
|
//ANNECY CB
|
|
BOOL fn_bIsMyIntelligenceBehaviour(CString&,stReturn *);
|
|
//BOOL fn_bIsMyIntelligenceBehaviour(CString,stReturn *);
|
|
BOOL fn_bIsMyIntelligenceBehaviour(char *,stReturn *);
|
|
//END
|
|
|
|
//KeyButton
|
|
//ANNECY CB
|
|
BOOL fn_bIsAKeyButton(CString&,stReturn *);
|
|
//BOOL fn_bIsAKeyButton(CString,stReturn *);
|
|
BOOL fn_bIsAKeyButton(char *,stReturn *);
|
|
//END
|
|
|
|
//Mask Type
|
|
//ANNECY CB
|
|
BOOL fn_bIsAMaskType(CString&,stReturn *);
|
|
//BOOL fn_bIsAMaskType(CString,stReturn *);
|
|
BOOL fn_bIsAMaskType(char *,stReturn *);
|
|
//END
|
|
|
|
#if 0
|
|
//Power
|
|
//ANNECY CB
|
|
BOOL fn_bIsAPower(CString&,stReturn *);
|
|
//BOOL fn_bIsAPower(CString,stReturn *);
|
|
BOOL fn_bIsAPower(char *,stReturn *);
|
|
//END
|
|
#endif //0 car inutilise dans RM 2
|
|
|
|
//Text
|
|
//ANNECY CB
|
|
BOOL fn_bIsAText(CString&,stReturn *);
|
|
//BOOL fn_bIsAText(CString,stReturn *);
|
|
BOOL fn_bIsAText(char *,stReturn *);
|
|
//END
|
|
|
|
//ParticleGenerator
|
|
//ANNECY CB
|
|
BOOL fn_bIsAParticleGenerator(CString&,stReturn *);
|
|
//BOOL fn_bIsAParticleGenerator(CString,stReturn *);
|
|
BOOL fn_bIsAParticleGenerator(char *,stReturn *);
|
|
//END
|
|
|
|
//State
|
|
//ANNECY CB
|
|
BOOL fn_bIsAState(CString&,stReturn *);
|
|
//BOOL fn_bIsAState(CString,stReturn *);
|
|
BOOL fn_bIsAState(char *,stReturn *);
|
|
//END
|
|
|
|
//Init IntermediateCode Node
|
|
void fn_vInitNode(stReturn *,long,tdeNodeType,long,CPA_Actor *pclModel=NULL);
|
|
void fn_vInitNode(stReturn *,long,tdeNodeType,double);
|
|
void fn_vInitNode(stReturn *,long,tdeNodeType,CString);
|
|
|
|
#define YY_CLex_FLEX_SCANNER
|
|
#define ENGLISH 1
|
|
#define FRENCH 2
|
|
#define DECL_DSG_VAR 3
|
|
#define DEFINE 4
|
|
#define DEFINE_TEXT 5
|
|
/*<ENGLISH>world {M_COMPUTE_ALL_4_KW();return CParse::WORLD;}*/
|
|
/*<FRENCH>monde {M_COMPUTE_ALL_4_KW();return CParse::WORLD;}*/
|
|
#include "..\Inc\EdIRflx.hpp"
|
|
|
|
#define yy___text YY_CLex_TEXT
|
|
#define yy___leng YY_CLex_LENG
|
|
#define yy___in YY_CLex_IN
|
|
#define yy___out YY_CLex_OUT
|
|
#define yy___newfile \
|
|
do \
|
|
{ \
|
|
YY_CLex_INIT_BUFFER( yy_current_buffer, yy___in ); \
|
|
YY_CLex_LOAD_BUFFER_STATE(); \
|
|
} \
|
|
while ( 0 )
|
|
#if YY_CLex_DEBUG != 0
|
|
#define yy___flex_debug YY_CLex_DEBUG_FLAG
|
|
#endif
|
|
|
|
|
|
#ifdef YY_USE_CLASS
|
|
|
|
#define yy___echo YY_CLex_ECHO
|
|
#define yy___input YY_CLex_INPUT
|
|
#define yy___fatal_error YY_CLex_FATAL_ERROR
|
|
#define yy___wrap YY_CLex_WRAP
|
|
|
|
#endif
|
|
|
|
/* done after the current pattern has been matched and before the
|
|
* corresponding action - sets up yy___text
|
|
*/
|
|
#define YY_DO_BEFORE_ACTION \
|
|
yy___text = yy_bp; \
|
|
/* % code to fiddle yy___text and yy___leng for yymore() goes here */ \
|
|
yy___leng = yy_cp - yy_bp; \
|
|
yy_hold_char = *yy_cp; \
|
|
*yy_cp = '\0'; \
|
|
yy_c_buf_p = yy_cp;
|
|
|
|
#define EOB_ACT_CONTINUE_SCAN 0
|
|
#define EOB_ACT_END_OF_FILE 1
|
|
#define EOB_ACT_LAST_MATCH 2
|
|
|
|
/* return all but the first 'n' matched characters back to the input stream */
|
|
#define yyless(n) \
|
|
do \
|
|
{ \
|
|
/* undo effects of setting up yy___text */ \
|
|
*yy_cp = yy_hold_char; \
|
|
yy_c_buf_p = yy_cp = yy_bp + n; \
|
|
YY_DO_BEFORE_ACTION; /* set up yy___text again */ \
|
|
} \
|
|
while ( 0 )
|
|
|
|
#define unput(c) yyunput( c, yy___text )
|
|
|
|
|
|
|
|
struct yy_buffer_state
|
|
{
|
|
FILE *yy_input_file;
|
|
|
|
YY_CLex_CHAR *yy_ch_buf; /* input buffer */
|
|
YY_CLex_CHAR *yy_buf_pos; /* current position in input buffer */
|
|
|
|
/* size of input buffer in bytes, not including room for EOB characters */
|
|
int yy_buf_size;
|
|
|
|
/* number of characters read into yy_ch_buf, not including EOB characters */
|
|
int yy_n_chars;
|
|
|
|
int yy_eof_status; /* whether we've seen an EOF on this buffer */
|
|
#define EOF_NOT_SEEN 0
|
|
/* "pending" happens when the EOF has been seen but there's still
|
|
* some text process
|
|
*/
|
|
#define EOF_PENDING 1
|
|
#define EOF_DONE 2
|
|
};
|
|
|
|
/* we provide macros for accessing buffer states in case in the
|
|
* future we want to put the buffer states in a more general
|
|
* "scanner state"
|
|
*/
|
|
|
|
#ifndef YY_USE_CLASS
|
|
|
|
#if YY_CLex_DEBUG != 0
|
|
int YY_CLex_DEBUG_FLAG=YY_CLex_DEBUG_INIT;
|
|
#endif
|
|
#define YY_CURRENT_BUFFER yy_current_buffer
|
|
static YY_BUFFER_STATE yy_current_buffer;
|
|
/* yy_hold_char holds the character lost when yy___text is formed */
|
|
static YY_CLex_CHAR yy_hold_char;
|
|
|
|
static int yy_n_chars; /* number of characters read into yy_ch_buf */
|
|
|
|
/* GLOBAL */
|
|
YY_CLex_CHAR *yy___text;
|
|
int yy___leng;
|
|
|
|
FILE *yy___in = (FILE *) 0, *yy___out = (FILE *) 0;
|
|
|
|
#ifdef __cplusplus
|
|
static int yyinput YY_PROTO(( void ));
|
|
#else
|
|
static int input YY_PROTO(( void ));
|
|
#endif
|
|
/* these variables are all declared out here so that section 3 code can
|
|
* manipulate them
|
|
*/
|
|
/* points to current character in buffer */
|
|
static YY_CLex_CHAR *yy_c_buf_p = (YY_CLex_CHAR *) 0;
|
|
static int yy_init = 1; /* whether we need to initialize */
|
|
static int yy_start = 0; /* start state number */
|
|
|
|
/* flag which is used to allow yywrap()'s to do buffer switches
|
|
* instead of setting up a fresh yy___in. A bit of a hack ...
|
|
*/
|
|
static int yy_did_buffer_switch_on_eof;
|
|
|
|
static int yy_get_next_buffer YY_PROTO(( void ));
|
|
static void yyunput YY_PROTO(( YY_CLex_CHAR c, YY_CLex_CHAR *buf_ptr ));
|
|
|
|
#else
|
|
/* c++ */
|
|
#ifndef YY_CLex_ECHO_NOCODE
|
|
void YY_CLex_CLASS::yy___echo()
|
|
{YY_CLex_ECHO_CODE
|
|
}
|
|
#endif
|
|
#ifndef YY_CLex_INPUT_NOCODE
|
|
int YY_CLex_CLASS::yy___input(char * buffer,int &result,int max_size)
|
|
{YY_CLex_INPUT_CODE
|
|
}
|
|
#endif
|
|
#ifndef YY_CLex_FATAL_ERROR_NOCODE
|
|
void YY_CLex_CLASS::yy___fatal_error(char *msg)
|
|
{YY_CLex_FATAL_ERROR_CODE
|
|
}
|
|
#endif
|
|
#ifndef YY_CLex_WRAP_NOCODE
|
|
int YY_CLex_CLASS::yy___wrap()
|
|
{YY_CLex_WRAP_CODE
|
|
}
|
|
#endif
|
|
void YY_CLex_CLASS::yy_initialize()
|
|
{
|
|
yy___in=0;yy___out=0;yy_init = 1;
|
|
yy_start=0;
|
|
yy___text=0;yy___leng=0;
|
|
yy_current_buffer=0;
|
|
yy_did_buffer_switch_on_eof=0;
|
|
yy_c_buf_p=0;yy_hold_char=0;yy_n_chars=0;
|
|
#if YY_CLex_DEBUG != 0
|
|
YY_CLex_DEBUG_FLAG=YY_CLex_DEBUG_INIT;
|
|
#endif
|
|
}
|
|
|
|
YY_CLex_CLASS::YY_CLex_CLASS(YY_CLex_CONSTRUCTOR_PARAM) YY_CLex_CONSTRUCTOR_INIT
|
|
{yy_initialize();
|
|
YY_CLex_CONSTRUCTOR_CODE;
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
#ifndef YY_USER_ACTION
|
|
#define YY_USER_ACTION
|
|
#endif
|
|
|
|
#ifndef YY_USER_INIT
|
|
#define YY_USER_INIT
|
|
#endif
|
|
|
|
/* % data tables for the DFA go here */
|
|
#define YY_END_OF_BUFFER 116
|
|
typedef int yy_state_type;
|
|
static const short int yy_accept[718] =
|
|
{ 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 116, 115, 115, 115, 115, 115, 115, 115,
|
|
115, 79, 82, 78, 99, 99, 99, 105, 106, 106,
|
|
105, 105, 105, 105, 105, 105, 103, 105, 1, 79,
|
|
82, 78, 99, 105, 99, 99, 99, 99, 99, 99,
|
|
99, 99, 99, 99, 99, 99, 99, 105, 105, 99,
|
|
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
|
|
99, 105, 105, 105, 100, 100, 100, 100, 100, 100,
|
|
100, 100, 100, 105, 114, 111, 112, 112, 113, 0,
|
|
101, 87, 92, 85, 93, 86, 0, 0, 0, 88,
|
|
|
|
94, 84, 81, 83, 80, 99, 0, 99, 99, 103,
|
|
104, 0, 0, 99, 99, 99, 99, 99, 99, 99,
|
|
18, 99, 99, 2, 99, 12, 99, 99, 99, 99,
|
|
99, 99, 0, 0, 0, 99, 99, 99, 99, 50,
|
|
99, 99, 99, 99, 99, 99, 48, 99, 99, 99,
|
|
54, 99, 99, 99, 99, 0, 0, 102, 100, 100,
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
|
|
100, 100, 100, 0, 111, 112, 95, 0, 96, 0,
|
|
97, 0, 98, 99, 99, 104, 0, 0, 14, 99,
|
|
99, 99, 99, 99, 99, 99, 19, 20, 21, 99,
|
|
|
|
99, 99, 99, 99, 99, 99, 99, 99, 99, 15,
|
|
99, 99, 99, 99, 99, 99, 13, 0, 0, 0,
|
|
99, 99, 99, 99, 99, 99, 99, 38, 51, 99,
|
|
99, 99, 99, 99, 99, 55, 56, 57, 99, 99,
|
|
99, 99, 99, 99, 99, 0, 100, 100, 100, 100,
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
|
|
100, 100, 100, 100, 100, 100, 0, 89, 90, 91,
|
|
99, 99, 0, 0, 99, 99, 27, 99, 99, 99,
|
|
22, 99, 99, 99, 99, 99, 99, 99, 99, 99,
|
|
99, 99, 99, 99, 26, 16, 99, 0, 0, 0,
|
|
|
|
99, 99, 99, 99, 53, 99, 99, 99, 99, 99,
|
|
99, 99, 58, 99, 99, 99, 99, 99, 99, 52,
|
|
0, 100, 100, 100, 100, 53, 100, 100, 100, 100,
|
|
100, 100, 100, 100, 100, 100, 100, 100, 16, 100,
|
|
52, 0, 99, 99, 0, 0, 99, 99, 99, 28,
|
|
17, 99, 25, 99, 31, 99, 99, 99, 99, 99,
|
|
99, 99, 99, 99, 99, 0, 0, 0, 99, 62,
|
|
99, 99, 64, 67, 99, 99, 99, 99, 99, 99,
|
|
99, 99, 99, 63, 61, 99, 99, 99, 0, 100,
|
|
100, 100, 100, 17, 100, 100, 100, 100, 100, 100,
|
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
|
|
0, 99, 99, 0, 0, 0, 99, 99, 99, 99,
|
|
99, 99, 99, 99, 4, 99, 99, 99, 99, 99,
|
|
99, 33, 0, 0, 0, 99, 99, 99, 99, 99,
|
|
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
|
|
99, 0, 100, 100, 100, 100, 100, 4, 100, 100,
|
|
100, 100, 100, 100, 100, 77, 100, 100, 100, 100,
|
|
100, 100, 0, 99, 99, 0, 0, 0, 99, 99,
|
|
99, 23, 99, 99, 99, 99, 99, 11, 99, 7,
|
|
99, 99, 109, 0, 0, 99, 99, 99, 99, 99,
|
|
|
|
99, 99, 99, 99, 99, 99, 59, 99, 99, 99,
|
|
69, 108, 100, 100, 100, 100, 100, 100, 11, 100,
|
|
7, 100, 100, 76, 100, 100, 100, 100, 100, 100,
|
|
110, 99, 75, 0, 0, 0, 10, 99, 99, 24,
|
|
99, 99, 9, 99, 99, 29, 99, 0, 0, 99,
|
|
46, 99, 99, 99, 40, 99, 99, 99, 99, 99,
|
|
60, 99, 99, 99, 10, 46, 100, 100, 9, 100,
|
|
100, 100, 40, 100, 100, 100, 100, 100, 100, 99,
|
|
37, 0, 0, 99, 6, 99, 3, 8, 99, 99,
|
|
0, 0, 99, 99, 43, 99, 99, 99, 99, 47,
|
|
|
|
99, 99, 42, 99, 100, 6, 8, 100, 43, 100,
|
|
100, 47, 100, 42, 100, 74, 0, 36, 99, 99,
|
|
99, 32, 0, 0, 0, 99, 99, 49, 99, 45,
|
|
99, 99, 68, 99, 100, 100, 45, 100, 100, 100,
|
|
0, 99, 99, 99, 0, 0, 0, 99, 65, 99,
|
|
99, 99, 99, 100, 100, 100, 100, 100, 35, 99,
|
|
99, 99, 0, 0, 0, 99, 99, 99, 99, 99,
|
|
100, 100, 100, 100, 100, 99, 30, 5, 0, 0,
|
|
73, 99, 99, 99, 99, 99, 100, 5, 100, 100,
|
|
100, 34, 0, 0, 99, 99, 99, 41, 99, 34,
|
|
|
|
100, 41, 100, 0, 72, 39, 99, 99, 70, 100,
|
|
70, 71, 99, 44, 44, 66, 0
|
|
} ;
|
|
|
|
static const YY_CHAR yy_ec[128] =
|
|
{ 0,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
|
|
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 2, 1, 4, 5, 1, 1, 1, 1, 1,
|
|
1, 6, 7, 1, 8, 9, 10, 11, 12, 13,
|
|
11, 14, 11, 15, 11, 16, 11, 17, 18, 19,
|
|
20, 21, 1, 1, 22, 22, 22, 22, 22, 22,
|
|
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
|
|
22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
|
|
23, 1, 24, 1, 25, 1, 26, 27, 28, 29,
|
|
|
|
30, 31, 32, 33, 34, 35, 22, 36, 37, 38,
|
|
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
|
|
49, 50, 1, 1, 1, 1, 1
|
|
} ;
|
|
|
|
static const YY_CHAR yy_meta[51] =
|
|
{ 0,
|
|
1, 1, 2, 1, 1, 1, 1, 3, 1, 1,
|
|
4, 4, 4, 4, 4, 4, 5, 1, 1, 3,
|
|
1, 6, 1, 1, 7, 6, 6, 6, 6, 6,
|
|
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
|
6, 6, 6, 6, 6, 6, 6, 6, 6, 6
|
|
} ;
|
|
|
|
static const short int yy_base[729] =
|
|
{ 0,
|
|
0, 0, 50, 1319, 78, 1318, 126, 1317, 176, 0,
|
|
100, 108, 1321, 1325, 1316, 1299, 220, 99, 180, 1298,
|
|
214, 93, 1325, 1297, 1299, 215, 216, 1325, 1325, 1325,
|
|
1311, 1294, 228, 229, 193, 1293, 244, 219, 1325, 226,
|
|
1325, 1292, 1294, 223, 227, 221, 245, 250, 246, 247,
|
|
251, 235, 233, 252, 256, 253, 262, 1281, 255, 274,
|
|
273, 275, 277, 278, 279, 283, 290, 291, 288, 299,
|
|
306, 1280, 1304, 326, 0, 304, 1270, 1280, 270, 302,
|
|
1279, 304, 315, 1275, 1325, 0, 0, 0, 1325, 1299,
|
|
1325, 1325, 1325, 1325, 1325, 1325, 1285, 1284, 1283, 1325,
|
|
|
|
1325, 1325, 1325, 1325, 1325, 1282, 1281, 318, 332, 351,
|
|
340, 1258, 1252, 341, 342, 289, 351, 352, 354, 355,
|
|
361, 359, 367, 1278, 387, 1277, 363, 362, 368, 364,
|
|
369, 370, 1263, 1256, 1252, 376, 371, 383, 385, 1273,
|
|
388, 389, 390, 394, 391, 399, 407, 400, 404, 405,
|
|
432, 422, 409, 423, 415, 1259, 1284, 1325, 0, 1247,
|
|
1248, 1245, 402, 426, 1248, 1241, 1248, 1254, 1242, 1231,
|
|
1233, 1249, 1250, 1245, 0, 0, 1325, 1254, 1325, 1253,
|
|
1325, 1252, 1325, 433, 88, 463, 1233, 1231, 1252, 438,
|
|
439, 451, 442, 446, 445, 470, 1251, 1250, 1249, 454,
|
|
|
|
472, 473, 449, 475, 476, 477, 478, 479, 480, 1248,
|
|
481, 482, 484, 485, 488, 483, 1247, 1232, 1223, 1223,
|
|
489, 490, 498, 492, 491, 493, 503, 1243, 1242, 505,
|
|
512, 513, 514, 516, 520, 1241, 1240, 1239, 517, 523,
|
|
525, 521, 526, 527, 531, 1224, 1228, 1210, 1208, 1208,
|
|
1202, 1221, 1209, 1208, 1204, 1200, 1211, 1207, 1199, 1195,
|
|
1204, 1196, 1194, 1207, 1192, 1201, 1203, 1325, 1325, 1325,
|
|
529, 532, 1190, 1192, 535, 536, 1214, 537, 538, 544,
|
|
1213, 549, 540, 547, 551, 555, 558, 562, 560, 561,
|
|
565, 566, 571, 568, 1212, 1211, 575, 1193, 1185, 1198,
|
|
|
|
576, 577, 578, 584, 1207, 581, 586, 582, 589, 587,
|
|
592, 601, 1206, 607, 593, 594, 591, 602, 618, 1205,
|
|
1187, 600, 1176, 1170, 1188, 0, 1173, 1187, 1178, 1188,
|
|
1173, 1182, 1181, 1171, 1183, 1174, 613, 1177, 0, 1176,
|
|
0, 1171, 599, 623, 1160, 612, 626, 629, 630, 1186,
|
|
1185, 632, 635, 636, 1184, 640, 641, 642, 643, 644,
|
|
646, 645, 647, 648, 652, 1162, 1154, 1162, 653, 1180,
|
|
649, 655, 1179, 1178, 650, 664, 665, 668, 669, 671,
|
|
656, 679, 682, 1177, 684, 687, 688, 690, 1155, 1147,
|
|
1161, 1164, 1145, 0, 1154, 1138, 1146, 1145, 1154, 1141,
|
|
|
|
1142, 1143, 1136, 1151, 1150, 1138, 1134, 1130, 1128, 1128,
|
|
1134, 689, 691, 1132, 1132, 1124, 692, 699, 695, 694,
|
|
702, 696, 701, 697, 1151, 703, 705, 704, 713, 714,
|
|
722, 1150, 1136, 1139, 1125, 723, 706, 727, 730, 732,
|
|
734, 735, 736, 737, 738, 741, 743, 742, 744, 745,
|
|
748, 1133, 1126, 1119, 1122, 1129, 1119, 0, 1118, 1123,
|
|
1113, 1124, 1127, 1114, 1121, 0, 1106, 1112, 1122, 1107,
|
|
1112, 1103, 1114, 750, 752, 1103, 1110, 1105, 751, 753,
|
|
759, 1123, 768, 766, 769, 767, 772, 1122, 776, 1121,
|
|
779, 777, 1325, 1099, 1095, 775, 781, 782, 783, 778,
|
|
|
|
786, 784, 785, 787, 793, 796, 1118, 815, 801, 805,
|
|
813, 1325, 1098, 1094, 1088, 1083, 1092, 1087, 0, 1089,
|
|
0, 1085, 1096, 0, 1091, 1084, 1083, 1092, 1092, 1092,
|
|
1325, 806, 1102, 1094, 1083, 1086, 1098, 807, 814, 1097,
|
|
819, 820, 1096, 821, 822, 1095, 823, 1067, 1065, 825,
|
|
1092, 827, 826, 833, 1091, 830, 829, 834, 838, 835,
|
|
1090, 828, 839, 837, 0, 0, 1060, 1061, 0, 1060,
|
|
1076, 1058, 0, 1062, 1061, 1066, 1056, 1067, 1057, 840,
|
|
1325, 1057, 1070, 855, 1076, 857, 1075, 1074, 858, 861,
|
|
289, 1064, 863, 864, 1072, 865, 866, 867, 869, 1071,
|
|
|
|
870, 872, 1070, 875, 1056, 0, 0, 1050, 0, 1046,
|
|
1041, 0, 1043, 0, 1043, 1063, 1049, 1325, 878, 871,
|
|
873, 1061, 1038, 1046, 1037, 890, 877, 1057, 880, 1056,
|
|
881, 883, 1055, 895, 1043, 1040, 0, 1025, 1041, 1024,
|
|
1042, 897, 898, 900, 1021, 1032, 1019, 902, 1045, 904,
|
|
907, 909, 906, 1017, 1032, 1029, 1023, 1013, 1325, 912,
|
|
910, 913, 1025, 1012, 1017, 914, 915, 916, 918, 926,
|
|
991, 982, 985, 962, 965, 922, 972, 969, 940, 954,
|
|
1325, 930, 925, 928, 929, 942, 940, 0, 951, 933,
|
|
938, 958, 932, 948, 943, 944, 945, 954, 946, 0,
|
|
|
|
932, 0, 924, 589, 1325, 448, 948, 949, 443, 281,
|
|
0, 1325, 950, 259, 0, 106, 1325, 993, 1000, 1004,
|
|
1009, 1013, 1017, 1021, 1028, 1035, 1042, 1049
|
|
} ;
|
|
|
|
static const short int yy_def[729] =
|
|
{ 0,
|
|
717, 1, 717, 3, 3, 5, 717, 7, 717, 9,
|
|
718, 718, 717, 717, 719, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 720, 720, 720, 717, 717, 717,
|
|
719, 717, 717, 721, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 720, 717, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 717, 717, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 717, 722, 717, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 717, 717, 724, 725, 725, 717, 719,
|
|
717, 717, 717, 717, 717, 717, 726, 727, 728, 717,
|
|
|
|
717, 717, 717, 717, 717, 720, 717, 720, 720, 717,
|
|
717, 717, 717, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 717, 717, 717, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
121, 720, 720, 720, 720, 717, 722, 717, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 717, 724, 725, 717, 717, 717, 717,
|
|
717, 717, 717, 720, 720, 717, 717, 717, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 717, 717, 717,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 717, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 717, 717, 717, 717,
|
|
720, 720, 717, 717, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 717, 717, 717,
|
|
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
717, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 717, 720, 720, 717, 717, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 717, 717, 717, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 717, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
717, 720, 720, 717, 717, 717, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 717, 717, 717, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 717, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 717, 720, 720, 717, 717, 717, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 717, 717, 717, 720, 720, 720, 720, 720,
|
|
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 717, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
|
|
717, 720, 720, 717, 717, 717, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 717, 717, 720,
|
|
720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 723, 723, 723, 723, 720,
|
|
717, 717, 717, 720, 720, 720, 720, 720, 720, 720,
|
|
717, 717, 720, 720, 720, 720, 720, 720, 720, 720,
|
|
|
|
720, 720, 720, 720, 723, 723, 723, 723, 723, 723,
|
|
723, 723, 723, 723, 723, 720, 717, 717, 720, 720,
|
|
720, 720, 717, 717, 717, 720, 720, 720, 720, 720,
|
|
720, 720, 720, 720, 723, 723, 723, 723, 723, 723,
|
|
717, 720, 720, 720, 717, 717, 717, 720, 720, 720,
|
|
720, 720, 720, 723, 723, 723, 723, 723, 717, 720,
|
|
720, 720, 717, 717, 717, 720, 720, 720, 720, 720,
|
|
723, 723, 723, 723, 723, 720, 720, 720, 717, 717,
|
|
717, 720, 720, 720, 720, 720, 723, 723, 723, 723,
|
|
723, 720, 717, 717, 720, 720, 720, 720, 720, 723,
|
|
|
|
723, 723, 723, 717, 717, 720, 720, 720, 720, 723,
|
|
723, 717, 720, 720, 723, 720, 0, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717
|
|
} ;
|
|
|
|
static const short int yy_nxt[1376] =
|
|
{ 0,
|
|
14, 14, 14, 15, 14, 16, 17, 18, 19, 20,
|
|
14, 14, 14, 14, 14, 14, 21, 14, 22, 23,
|
|
24, 25, 14, 14, 25, 25, 26, 25, 25, 27,
|
|
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
|
|
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
|
|
28, 29, 30, 31, 28, 32, 33, 34, 35, 36,
|
|
37, 37, 37, 37, 37, 37, 38, 39, 40, 41,
|
|
42, 43, 44, 28, 43, 45, 46, 47, 43, 48,
|
|
49, 43, 43, 50, 43, 43, 51, 52, 53, 43,
|
|
43, 43, 54, 55, 43, 56, 43, 57, 43, 43,
|
|
|
|
59, 88, 89, 60, 107, 61, 95, 62, 63, 88,
|
|
89, 43, 103, 104, 64, 65, 66, 67, 96, 68,
|
|
69, 70, 107, 71, 272, 43, 28, 29, 30, 73,
|
|
28, 28, 28, 74, 28, 28, 37, 37, 37, 37,
|
|
37, 37, 28, 39, 28, 28, 28, 75, 28, 28,
|
|
75, 75, 75, 76, 75, 77, 78, 75, 75, 75,
|
|
75, 75, 75, 79, 75, 80, 75, 75, 81, 82,
|
|
75, 83, 75, 75, 75, 75, 14, 85, 85, 14,
|
|
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
|
|
14, 14, 14, 14, 14, 14, 14, 86, 14, 14,
|
|
|
|
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
|
|
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
|
|
86, 86, 86, 86, 86, 86, 93, 97, 98, 99,
|
|
101, 107, 107, 102, 93, 101, 95, 107, 102, 94,
|
|
97, 98, 99, 107, 108, 103, 104, 94, 96, 107,
|
|
108, 107, 111, 109, 110, 110, 110, 110, 110, 110,
|
|
112, 107, 107, 107, 114, 113, 107, 107, 107, 107,
|
|
115, 120, 107, 125, 126, 107, 123, 121, 107, 127,
|
|
124, 134, 131, 116, 122, 117, 118, 119, 129, 107,
|
|
107, 107, 135, 107, 107, 107, 128, 130, 138, 107,
|
|
|
|
132, 136, 141, 143, 107, 107, 107, 107, 164, 137,
|
|
142, 139, 109, 150, 165, 107, 144, 145, 140, 148,
|
|
149, 151, 107, 146, 715, 623, 191, 147, 153, 160,
|
|
624, 166, 152, 170, 107, 154, 110, 110, 110, 110,
|
|
110, 110, 161, 167, 172, 171, 168, 155, 107, 184,
|
|
186, 186, 186, 186, 186, 186, 173, 107, 107, 111,
|
|
185, 110, 110, 110, 110, 110, 110, 107, 107, 189,
|
|
107, 107, 196, 197, 198, 107, 199, 107, 107, 107,
|
|
107, 190, 194, 107, 107, 107, 107, 107, 213, 200,
|
|
195, 193, 107, 192, 203, 212, 216, 214, 201, 107,
|
|
|
|
204, 107, 202, 107, 107, 107, 107, 107, 215, 222,
|
|
107, 217, 205, 206, 207, 107, 107, 227, 208, 221,
|
|
107, 107, 223, 107, 224, 107, 226, 228, 229, 209,
|
|
210, 107, 225, 211, 230, 233, 231, 250, 107, 107,
|
|
245, 232, 234, 235, 236, 237, 251, 238, 242, 107,
|
|
244, 252, 253, 254, 107, 107, 243, 255, 107, 107,
|
|
239, 107, 107, 275, 107, 107, 271, 107, 256, 240,
|
|
107, 241, 257, 186, 186, 186, 186, 186, 186, 279,
|
|
277, 276, 272, 282, 281, 278, 107, 280, 107, 107,
|
|
285, 107, 107, 107, 107, 107, 107, 107, 107, 107,
|
|
|
|
107, 107, 284, 287, 107, 107, 107, 107, 107, 107,
|
|
283, 293, 286, 292, 107, 288, 289, 296, 301, 107,
|
|
290, 107, 295, 303, 291, 294, 297, 304, 107, 107,
|
|
107, 302, 107, 107, 313, 306, 107, 107, 305, 107,
|
|
308, 107, 107, 107, 307, 107, 314, 107, 107, 311,
|
|
316, 107, 107, 107, 107, 310, 107, 344, 312, 309,
|
|
107, 315, 317, 107, 320, 107, 343, 107, 350, 318,
|
|
319, 107, 347, 351, 107, 352, 107, 107, 107, 348,
|
|
356, 107, 107, 353, 107, 349, 360, 107, 354, 355,
|
|
358, 107, 107, 107, 107, 362, 359, 107, 107, 363,
|
|
|
|
107, 357, 107, 107, 361, 107, 364, 107, 107, 107,
|
|
107, 375, 712, 365, 373, 107, 376, 107, 107, 370,
|
|
369, 378, 372, 107, 374, 377, 379, 371, 380, 386,
|
|
384, 387, 381, 383, 107, 412, 385, 390, 405, 107,
|
|
406, 415, 107, 382, 407, 107, 107, 388, 107, 391,
|
|
413, 107, 107, 416, 418, 408, 107, 107, 107, 107,
|
|
107, 107, 107, 107, 107, 107, 107, 423, 107, 107,
|
|
417, 107, 107, 419, 424, 428, 420, 422, 437, 421,
|
|
107, 107, 426, 427, 107, 107, 429, 107, 438, 439,
|
|
425, 430, 431, 432, 436, 107, 443, 445, 107, 440,
|
|
|
|
107, 442, 441, 107, 107, 107, 107, 107, 107, 444,
|
|
107, 107, 107, 107, 474, 107, 483, 107, 107, 107,
|
|
107, 107, 107, 446, 481, 482, 447, 479, 448, 107,
|
|
107, 449, 475, 450, 451, 486, 480, 488, 107, 107,
|
|
484, 487, 490, 107, 485, 489, 107, 497, 107, 491,
|
|
107, 107, 107, 107, 107, 499, 508, 107, 107, 107,
|
|
107, 107, 496, 505, 107, 492, 107, 107, 107, 107,
|
|
498, 501, 502, 504, 507, 107, 500, 532, 510, 503,
|
|
506, 540, 107, 107, 107, 107, 537, 509, 107, 511,
|
|
533, 107, 107, 107, 107, 107, 538, 107, 107, 107,
|
|
|
|
107, 107, 107, 107, 543, 541, 539, 542, 546, 107,
|
|
547, 552, 107, 544, 545, 555, 550, 107, 557, 551,
|
|
554, 107, 107, 107, 553, 560, 558, 556, 561, 107,
|
|
107, 107, 559, 563, 562, 107, 107, 107, 107, 107,
|
|
564, 107, 107, 107, 107, 107, 107, 580, 589, 107,
|
|
107, 107, 584, 107, 107, 107, 107, 585, 593, 597,
|
|
590, 587, 586, 594, 588, 602, 596, 598, 603, 595,
|
|
600, 107, 599, 107, 107, 604, 601, 107, 616, 107,
|
|
107, 107, 107, 107, 619, 107, 107, 107, 107, 107,
|
|
622, 107, 621, 107, 107, 628, 107, 107, 620, 107,
|
|
|
|
626, 633, 644, 627, 630, 642, 107, 629, 632, 652,
|
|
631, 107, 634, 107, 107, 643, 107, 648, 107, 649,
|
|
107, 650, 107, 107, 651, 107, 107, 662, 107, 107,
|
|
107, 107, 107, 661, 107, 666, 668, 653, 107, 677,
|
|
660, 107, 107, 669, 107, 107, 107, 685, 667, 670,
|
|
676, 686, 684, 682, 683, 695, 678, 697, 107, 107,
|
|
107, 107, 107, 692, 107, 107, 107, 711, 696, 710,
|
|
107, 705, 698, 704, 107, 703, 702, 707, 706, 699,
|
|
701, 700, 708, 694, 693, 107, 713, 716, 107, 709,
|
|
691, 690, 714, 87, 87, 87, 87, 87, 87, 87,
|
|
|
|
90, 90, 90, 90, 90, 90, 90, 106, 106, 106,
|
|
106, 110, 110, 157, 157, 157, 157, 157, 157, 157,
|
|
159, 689, 159, 159, 175, 688, 175, 175, 176, 687,
|
|
176, 176, 176, 176, 176, 177, 177, 177, 177, 177,
|
|
681, 177, 179, 179, 179, 179, 179, 680, 179, 181,
|
|
181, 181, 181, 181, 679, 181, 675, 674, 673, 672,
|
|
671, 107, 665, 664, 663, 659, 658, 657, 656, 655,
|
|
654, 107, 107, 107, 647, 646, 645, 107, 641, 107,
|
|
640, 639, 638, 637, 636, 635, 107, 107, 107, 625,
|
|
107, 107, 107, 618, 617, 615, 614, 613, 612, 611,
|
|
|
|
610, 609, 608, 607, 606, 605, 107, 107, 107, 592,
|
|
591, 107, 107, 107, 107, 583, 582, 581, 107, 579,
|
|
578, 577, 576, 575, 574, 573, 572, 571, 570, 569,
|
|
568, 567, 566, 565, 107, 549, 548, 107, 107, 107,
|
|
536, 535, 534, 531, 530, 529, 528, 527, 526, 525,
|
|
524, 523, 522, 521, 520, 519, 518, 517, 516, 515,
|
|
514, 513, 512, 495, 494, 493, 107, 107, 478, 477,
|
|
476, 473, 472, 471, 470, 469, 468, 467, 466, 465,
|
|
464, 463, 462, 461, 460, 459, 458, 457, 456, 455,
|
|
454, 453, 452, 107, 107, 107, 107, 435, 434, 433,
|
|
|
|
107, 107, 107, 414, 411, 410, 409, 404, 403, 402,
|
|
401, 400, 399, 398, 397, 396, 395, 394, 393, 392,
|
|
389, 107, 107, 107, 368, 367, 366, 107, 107, 107,
|
|
107, 346, 345, 342, 341, 340, 339, 338, 337, 336,
|
|
335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
|
|
325, 324, 323, 322, 321, 107, 107, 107, 107, 107,
|
|
300, 299, 298, 107, 107, 107, 107, 107, 107, 274,
|
|
273, 270, 269, 268, 267, 266, 265, 264, 263, 262,
|
|
261, 260, 259, 258, 249, 248, 247, 158, 246, 107,
|
|
220, 219, 218, 107, 107, 188, 187, 183, 107, 182,
|
|
|
|
180, 178, 91, 174, 169, 163, 162, 158, 156, 133,
|
|
107, 105, 100, 92, 91, 107, 105, 100, 92, 91,
|
|
717, 84, 72, 58, 13, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717
|
|
} ;
|
|
|
|
static const short int yy_chk[1376] =
|
|
{ 0,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
|
|
5, 11, 11, 5, 185, 5, 18, 5, 5, 12,
|
|
12, 5, 22, 22, 5, 5, 5, 5, 18, 5,
|
|
5, 5, 716, 5, 185, 5, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
|
7, 7, 7, 7, 7, 7, 9, 9, 9, 9,
|
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
|
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
|
9, 9, 9, 9, 9, 9, 17, 19, 19, 19,
|
|
21, 26, 27, 21, 33, 38, 34, 46, 38, 17,
|
|
35, 35, 35, 45, 26, 40, 40, 33, 34, 53,
|
|
46, 52, 37, 27, 37, 37, 37, 37, 37, 37,
|
|
44, 47, 49, 50, 45, 44, 48, 51, 54, 56,
|
|
47, 49, 55, 52, 53, 714, 51, 50, 57, 54,
|
|
51, 59, 56, 47, 50, 48, 48, 48, 55, 61,
|
|
60, 62, 59, 63, 64, 65, 54, 55, 61, 66,
|
|
|
|
57, 60, 63, 64, 69, 116, 67, 68, 79, 60,
|
|
63, 62, 62, 69, 79, 70, 64, 65, 62, 67,
|
|
68, 69, 71, 65, 710, 591, 116, 66, 70, 76,
|
|
591, 80, 69, 82, 108, 71, 74, 74, 74, 74,
|
|
74, 74, 76, 80, 83, 82, 80, 71, 109, 108,
|
|
111, 111, 111, 111, 111, 111, 83, 114, 115, 110,
|
|
109, 110, 110, 110, 110, 110, 110, 117, 118, 114,
|
|
119, 120, 121, 121, 121, 122, 121, 121, 128, 127,
|
|
130, 115, 119, 123, 129, 131, 132, 137, 128, 121,
|
|
120, 118, 136, 117, 123, 127, 131, 129, 121, 138,
|
|
|
|
123, 139, 122, 125, 141, 142, 143, 145, 130, 137,
|
|
144, 132, 125, 125, 125, 146, 148, 143, 125, 136,
|
|
149, 150, 138, 147, 139, 153, 142, 144, 145, 125,
|
|
125, 155, 141, 125, 146, 149, 147, 163, 152, 154,
|
|
155, 148, 150, 151, 151, 151, 163, 151, 152, 184,
|
|
154, 164, 164, 164, 190, 191, 153, 164, 193, 709,
|
|
151, 195, 194, 190, 706, 203, 184, 192, 164, 151,
|
|
200, 151, 164, 186, 186, 186, 186, 186, 186, 194,
|
|
192, 191, 194, 200, 196, 193, 196, 195, 201, 202,
|
|
203, 204, 205, 206, 207, 208, 209, 211, 212, 216,
|
|
|
|
213, 214, 202, 205, 215, 221, 222, 225, 224, 226,
|
|
201, 212, 204, 211, 223, 206, 207, 215, 221, 227,
|
|
208, 230, 214, 223, 209, 213, 216, 224, 231, 232,
|
|
233, 222, 234, 239, 235, 226, 235, 242, 225, 240,
|
|
230, 241, 243, 244, 227, 271, 239, 245, 272, 233,
|
|
241, 275, 276, 278, 279, 232, 283, 272, 234, 231,
|
|
280, 240, 242, 284, 245, 282, 271, 285, 279, 243,
|
|
244, 286, 275, 280, 287, 282, 289, 290, 288, 276,
|
|
286, 291, 292, 283, 294, 278, 290, 293, 284, 285,
|
|
288, 297, 301, 302, 303, 292, 289, 306, 308, 293,
|
|
|
|
304, 287, 307, 310, 291, 309, 294, 317, 311, 315,
|
|
316, 308, 704, 297, 306, 343, 309, 312, 318, 302,
|
|
301, 311, 304, 314, 307, 310, 312, 303, 312, 317,
|
|
315, 318, 312, 314, 319, 343, 316, 322, 337, 344,
|
|
337, 346, 347, 312, 337, 348, 349, 319, 352, 322,
|
|
344, 353, 354, 346, 348, 337, 356, 357, 358, 359,
|
|
360, 362, 361, 363, 364, 371, 375, 356, 365, 369,
|
|
347, 372, 381, 349, 357, 361, 352, 354, 371, 353,
|
|
376, 377, 359, 360, 378, 379, 362, 380, 372, 375,
|
|
358, 363, 364, 365, 369, 382, 379, 381, 383, 376,
|
|
|
|
385, 378, 377, 386, 387, 412, 388, 413, 417, 380,
|
|
420, 419, 422, 424, 412, 418, 421, 423, 421, 426,
|
|
428, 427, 437, 382, 419, 420, 383, 417, 385, 429,
|
|
430, 386, 413, 387, 388, 424, 418, 427, 431, 436,
|
|
422, 426, 429, 438, 423, 428, 439, 437, 440, 430,
|
|
441, 442, 443, 444, 445, 439, 448, 446, 448, 447,
|
|
449, 450, 436, 445, 451, 431, 474, 479, 475, 480,
|
|
438, 441, 442, 444, 447, 481, 440, 474, 450, 443,
|
|
446, 483, 484, 486, 483, 485, 479, 449, 487, 451,
|
|
475, 496, 489, 492, 500, 491, 480, 497, 498, 499,
|
|
|
|
502, 503, 501, 504, 486, 484, 481, 485, 491, 505,
|
|
492, 498, 506, 487, 489, 501, 496, 509, 503, 497,
|
|
500, 510, 532, 538, 499, 506, 504, 502, 508, 511,
|
|
539, 508, 505, 510, 509, 541, 542, 544, 545, 547,
|
|
511, 550, 553, 552, 562, 557, 556, 532, 545, 554,
|
|
558, 560, 538, 564, 559, 563, 580, 539, 550, 556,
|
|
547, 542, 541, 552, 544, 562, 554, 557, 563, 553,
|
|
559, 584, 558, 586, 589, 564, 560, 590, 580, 593,
|
|
594, 596, 597, 598, 584, 599, 601, 620, 602, 621,
|
|
590, 604, 589, 627, 619, 596, 629, 631, 586, 632,
|
|
|
|
593, 602, 621, 594, 598, 619, 626, 597, 601, 632,
|
|
599, 634, 604, 642, 643, 620, 644, 626, 648, 627,
|
|
650, 629, 653, 651, 631, 652, 661, 644, 660, 662,
|
|
666, 667, 668, 643, 669, 648, 651, 634, 676, 661,
|
|
642, 683, 670, 652, 684, 685, 682, 669, 650, 653,
|
|
660, 670, 668, 666, 667, 682, 662, 684, 686, 695,
|
|
696, 697, 699, 676, 707, 708, 713, 703, 683, 701,
|
|
698, 694, 685, 693, 692, 691, 690, 696, 695, 686,
|
|
689, 687, 697, 680, 679, 678, 707, 713, 677, 699,
|
|
675, 674, 708, 718, 718, 718, 718, 718, 718, 718,
|
|
|
|
719, 719, 719, 719, 719, 719, 719, 720, 720, 720,
|
|
720, 721, 721, 722, 722, 722, 722, 722, 722, 722,
|
|
723, 673, 723, 723, 724, 672, 724, 724, 725, 671,
|
|
725, 725, 725, 725, 725, 726, 726, 726, 726, 726,
|
|
665, 726, 727, 727, 727, 727, 727, 664, 727, 728,
|
|
728, 728, 728, 728, 663, 728, 658, 657, 656, 655,
|
|
654, 649, 647, 646, 645, 641, 640, 639, 638, 636,
|
|
635, 633, 630, 628, 625, 624, 623, 622, 617, 616,
|
|
615, 613, 611, 610, 608, 605, 603, 600, 595, 592,
|
|
588, 587, 585, 583, 582, 579, 578, 577, 576, 575,
|
|
|
|
574, 572, 571, 570, 568, 567, 561, 555, 551, 549,
|
|
548, 546, 543, 540, 537, 536, 535, 534, 533, 530,
|
|
529, 528, 527, 526, 525, 523, 522, 520, 518, 517,
|
|
516, 515, 514, 513, 507, 495, 494, 490, 488, 482,
|
|
478, 477, 476, 473, 472, 471, 470, 469, 468, 467,
|
|
465, 464, 463, 462, 461, 460, 459, 457, 456, 455,
|
|
454, 453, 452, 435, 434, 433, 432, 425, 416, 415,
|
|
414, 411, 410, 409, 408, 407, 406, 405, 404, 403,
|
|
402, 401, 400, 399, 398, 397, 396, 395, 393, 392,
|
|
391, 390, 389, 384, 374, 373, 370, 368, 367, 366,
|
|
|
|
355, 351, 350, 345, 342, 340, 338, 336, 335, 334,
|
|
333, 332, 331, 330, 329, 328, 327, 325, 324, 323,
|
|
321, 320, 313, 305, 300, 299, 298, 296, 295, 281,
|
|
277, 274, 273, 267, 266, 265, 264, 263, 262, 261,
|
|
260, 259, 258, 257, 256, 255, 254, 253, 252, 251,
|
|
250, 249, 248, 247, 246, 238, 237, 236, 229, 228,
|
|
220, 219, 218, 217, 210, 199, 198, 197, 189, 188,
|
|
187, 182, 180, 178, 174, 173, 172, 171, 170, 169,
|
|
168, 167, 166, 165, 162, 161, 160, 157, 156, 140,
|
|
135, 134, 133, 126, 124, 113, 112, 107, 106, 99,
|
|
|
|
98, 97, 90, 84, 81, 78, 77, 73, 72, 58,
|
|
43, 42, 36, 32, 31, 25, 24, 20, 16, 15,
|
|
13, 8, 6, 4, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717, 717, 717, 717, 717, 717,
|
|
717, 717, 717, 717, 717
|
|
} ;
|
|
|
|
static yy_state_type yy_last_accepting_state;
|
|
static YY_CHAR *yy_last_accepting_cpos;
|
|
|
|
#if YY_CLex_DEBUG != 0
|
|
static const short int yy_rule_linenum[115] =
|
|
{ 0,
|
|
499, 514, 515, 516, 517, 518, 519, 520, 521, 522,
|
|
526, 531, 532, 533, 534, 535, 536, 538, 539, 540,
|
|
541, 542, 543, 544, 545, 546, 547, 548, 550, 559,
|
|
561, 562, 564, 565, 567, 574, 581, 588, 589, 590,
|
|
591, 593, 594, 595, 596, 597, 601, 606, 607, 608,
|
|
609, 610, 611, 613, 614, 615, 616, 617, 618, 619,
|
|
620, 621, 622, 623, 625, 634, 636, 637, 639, 640,
|
|
642, 649, 656, 663, 672, 687, 694, 701, 702, 703,
|
|
704, 705, 706, 707, 708, 709, 710, 711, 712, 713,
|
|
714, 715, 716, 718, 721, 725, 729, 733, 739, 840,
|
|
|
|
859, 1171, 1203, 1210, 1217, 1222, 1226, 1232, 1244, 1256,
|
|
1268, 1280, 1291, 1312
|
|
} ;
|
|
|
|
#endif
|
|
/* the intent behind this definition is that it'll catch
|
|
* any uses of REJECT which flex missed
|
|
*/
|
|
#define REJECT reject_used_but_not_detected
|
|
#define yymore() yymore_used_but_not_detected
|
|
#define YY_MORE_ADJ 0
|
|
#ifndef YY_USE_CLASS
|
|
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
|
|
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
|
|
#else
|
|
#define yy_get_previous_state() ((yy_state_type)(yy_get_previous_state_()))
|
|
#define yy_try_NUL_trans(c) ((yy_state_type)(yy_try_NUL_trans_(c)))
|
|
#endif
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_CLex_LEX_DEFINED
|
|
YY_CLex_LEX_RETURN YY_CLex_LEX ( YY_CLex_LEX_PARAM )
|
|
YY_CLex_LEX_PARAM_DEF
|
|
#else
|
|
YY_DECL
|
|
#endif
|
|
#else
|
|
YY_CLex_LEX_RETURN YY_CLex_CLASS::YY_CLex_LEX ( YY_CLex_LEX_PARAM)
|
|
|
|
#endif
|
|
{
|
|
register yy_state_type yy_current_state;
|
|
register YY_CLex_CHAR *yy_cp, *yy_bp;
|
|
register int yy_act;
|
|
|
|
/* % user's declarations go here */
|
|
|
|
|
|
/* % end of prolog */
|
|
|
|
if ( yy_init )
|
|
{
|
|
|
|
{
|
|
YY_USER_INIT;
|
|
}
|
|
if ( ! yy_start )
|
|
yy_start = 1; /* first start state */
|
|
|
|
if ( ! yy___in )
|
|
yy___in = stdin;
|
|
|
|
if ( ! yy___out )
|
|
yy___out = stdout;
|
|
|
|
if ( yy_current_buffer )
|
|
YY_CLex_INIT_BUFFER( yy_current_buffer, yy___in );
|
|
else
|
|
yy_current_buffer = YY_CLex_CREATE_BUFFER( yy___in, YY_BUF_SIZE );
|
|
|
|
YY_CLex_LOAD_BUFFER_STATE();
|
|
yy_init=0;
|
|
}
|
|
|
|
while ( 1 ) /* loops until end-of-file is reached */
|
|
{
|
|
/* % yymore()-related code goes here */
|
|
yy_cp = yy_c_buf_p;
|
|
|
|
/* support of yy___text */
|
|
*yy_cp = yy_hold_char;
|
|
|
|
/* yy_bp points to the position in yy_ch_buf of the start of the
|
|
* current run.
|
|
*/
|
|
yy_bp = yy_cp;
|
|
|
|
/* % code to set up and find next match goes here */
|
|
yy_current_state = yy_start;
|
|
if ( yy_bp[-1] == '\n' )
|
|
++yy_current_state;
|
|
yy_match:
|
|
do
|
|
{
|
|
register YY_CHAR yy_c = yy_ec[*yy_cp];
|
|
if ( yy_accept[yy_current_state] )
|
|
{
|
|
yy_last_accepting_state = yy_current_state;
|
|
yy_last_accepting_cpos = yy_cp;
|
|
}
|
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
|
{
|
|
yy_current_state = yy_def[yy_current_state];
|
|
if ( yy_current_state >= 718 )
|
|
yy_c = yy_meta[yy_c];
|
|
}
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
|
++yy_cp;
|
|
}
|
|
while ( yy_current_state != 717 );
|
|
yy_cp = yy_last_accepting_cpos;
|
|
yy_current_state = yy_last_accepting_state;
|
|
|
|
yy_find_action:
|
|
/* % code to find the action number goes here */
|
|
yy_act = yy_accept[yy_current_state];
|
|
|
|
YY_DO_BEFORE_ACTION;
|
|
YY_USER_ACTION;
|
|
|
|
do_action: /* this label is used only to access EOF actions */
|
|
#if YY_CLex_DEBUG != 0
|
|
if ( yy___flex_debug )
|
|
{
|
|
if ( yy_act == 0 )
|
|
fprintf( stderr, "--scanner backtracking\n" );
|
|
else if ( yy_act < YY_END_OF_BUFFER -1 )
|
|
fprintf( stderr,
|
|
"--accepting rule at line %d (\"%s\")\n",
|
|
yy_rule_linenum[yy_act], yy___text );
|
|
else if ( yy_act == YY_END_OF_BUFFER -1 )
|
|
fprintf( stderr,
|
|
"--accepting default rule (\"%s\")\n",
|
|
yy___text );
|
|
else if ( yy_act == YY_END_OF_BUFFER )
|
|
fprintf( stderr, "--(end of buffer or a NUL)\n" );
|
|
else
|
|
fprintf( stderr, "--EOF\n" );
|
|
}
|
|
#endif
|
|
switch ( yy_act )
|
|
{
|
|
/* % actions go here */
|
|
case 0: /* must backtrack */
|
|
/* undo the effects of YY_DO_BEFORE_ACTION */
|
|
*yy_cp = yy_hold_char;
|
|
yy_cp = yy_last_accepting_cpos;
|
|
yy_current_state = yy_last_accepting_state;
|
|
goto yy_find_action;
|
|
|
|
case 1:
|
|
{
|
|
int c;
|
|
|
|
//for ";" char
|
|
M_COMPUTE_ALL();
|
|
|
|
while((c=yyinput())!='\xd' && c!=EOF)
|
|
{
|
|
M_COMPUTE_ALL();
|
|
}
|
|
|
|
//for "enter" char
|
|
M_COMPUTE_ALL();
|
|
}
|
|
YY_BREAK
|
|
case 2:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ME;}
|
|
YY_BREAK
|
|
case 3:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::MAINACTOR;}
|
|
YY_BREAK
|
|
case 4:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOBODY;}
|
|
YY_BREAK
|
|
case 5:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOSUPEROBJECT;}
|
|
YY_BREAK
|
|
case 6:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::EMPTYTEXT;}
|
|
YY_BREAK
|
|
case 7:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOWHERE;}
|
|
YY_BREAK
|
|
case 8:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOCOMPORT;}
|
|
YY_BREAK
|
|
case 9:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOACTION;}
|
|
YY_BREAK
|
|
case 10:
|
|
{
|
|
M_COMPUTE_ALL_4_KW();
|
|
return CParse::CAPSNULL;
|
|
}
|
|
YY_BREAK
|
|
case 11:
|
|
{
|
|
M_COMPUTE_ALL_4_KW();
|
|
return CParse::NOGRAPH;
|
|
}
|
|
YY_BREAK
|
|
case 12:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::OR;}
|
|
YY_BREAK
|
|
case 13:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::XOR;}
|
|
YY_BREAK
|
|
case 14:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::AND;}
|
|
YY_BREAK
|
|
case 15:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::NOT;}
|
|
YY_BREAK
|
|
case 16:
|
|
{M_COMPUTE_ALL_4_BOOL(1);return CParse::BOOLEAN;}
|
|
YY_BREAK
|
|
case 17:
|
|
{M_COMPUTE_ALL_4_BOOL(0);return CParse::BOOLEAN;}
|
|
YY_BREAK
|
|
case 18:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF;}
|
|
YY_BREAK
|
|
case 19:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF2;}
|
|
YY_BREAK
|
|
case 20:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF4;}
|
|
YY_BREAK
|
|
case 21:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF8;}
|
|
YY_BREAK
|
|
case 22:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF16;}
|
|
YY_BREAK
|
|
case 23:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IFDEBUG;}
|
|
YY_BREAK
|
|
case 24:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IFNOTU64;}
|
|
YY_BREAK
|
|
case 25:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IFNOT;}
|
|
YY_BREAK
|
|
case 26:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::THEN;}
|
|
YY_BREAK
|
|
case 27:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ELSE;}
|
|
YY_BREAK
|
|
case 28:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ENDIF;}
|
|
YY_BREAK
|
|
case 29:
|
|
{
|
|
if(m_eTypeText!=ReflexText)
|
|
{
|
|
M_COMPUTE_ALL_4_KW();
|
|
return CParse::SCHEDULE;
|
|
}
|
|
else
|
|
return CParse::SYNTAXERROR;
|
|
}
|
|
YY_BREAK
|
|
case 30:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ITRULES;}
|
|
YY_BREAK
|
|
case 31:
|
|
{M_COMPUTE_ALL();return CParse::MACRO;}
|
|
YY_BREAK
|
|
case 32:
|
|
{M_COMPUTE_ALL();return CParse::SUBROUTINE;}
|
|
YY_BREAK
|
|
case 33:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::VECTOR;}
|
|
YY_BREAK
|
|
case 34:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::CONSTVECTOR;}
|
|
YY_BREAK
|
|
case 35:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eStopEngine,(long)C_ACTION_ENGINE_STOP);
|
|
|
|
return CParse::STOPENGINE;
|
|
}
|
|
YY_BREAK
|
|
case 36:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eStopRule,(long)C_ACTION_ENGINE_STOP_RULE);
|
|
|
|
return CParse::STOPRULE;
|
|
}
|
|
YY_BREAK
|
|
case 37:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eNonStop,(long)C_ACTION_ENGINE_CONTINUE);
|
|
|
|
return CParse::NONSTOP;
|
|
}
|
|
YY_BREAK
|
|
case 38:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ME;}
|
|
YY_BREAK
|
|
case 39:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::MAINACTOR;}
|
|
YY_BREAK
|
|
case 40:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOBODY;}
|
|
YY_BREAK
|
|
case 41:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOSUPEROBJECT;}
|
|
YY_BREAK
|
|
case 42:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::EMPTYTEXT;}
|
|
YY_BREAK
|
|
case 43:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOWHERE;}
|
|
YY_BREAK
|
|
case 44:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOCOMPORT;}
|
|
YY_BREAK
|
|
case 45:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::NOACTION;}
|
|
YY_BREAK
|
|
case 46:
|
|
{
|
|
M_COMPUTE_ALL_4_KW();
|
|
return CParse::CAPSNULL;
|
|
}
|
|
YY_BREAK
|
|
case 47:
|
|
{
|
|
M_COMPUTE_ALL_4_KW();
|
|
return CParse::NOGRAPH;
|
|
}
|
|
YY_BREAK
|
|
case 48:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::OR;}
|
|
YY_BREAK
|
|
case 49:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::XOR;}
|
|
YY_BREAK
|
|
case 50:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::AND;}
|
|
YY_BREAK
|
|
case 51:
|
|
{M_COMPUTE_ALL_4_COND();return CParse::NOT;}
|
|
YY_BREAK
|
|
case 52:
|
|
{M_COMPUTE_ALL_4_BOOL(1);return CParse::BOOLEAN;}
|
|
YY_BREAK
|
|
case 53:
|
|
{M_COMPUTE_ALL_4_BOOL(0);return CParse::BOOLEAN;}
|
|
YY_BREAK
|
|
case 54:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF;}
|
|
YY_BREAK
|
|
case 55:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF2;}
|
|
YY_BREAK
|
|
case 56:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF4;}
|
|
YY_BREAK
|
|
case 57:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF8;}
|
|
YY_BREAK
|
|
case 58:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IF16;}
|
|
YY_BREAK
|
|
case 59:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IFDEBUG;}
|
|
YY_BREAK
|
|
case 60:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IFNOTU64;}
|
|
YY_BREAK
|
|
case 61:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::IFNOT;}
|
|
YY_BREAK
|
|
case 62:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::THEN;}
|
|
YY_BREAK
|
|
case 63:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ELSE;}
|
|
YY_BREAK
|
|
case 64:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ENDIF;}
|
|
YY_BREAK
|
|
case 65:
|
|
{
|
|
if(m_eTypeText!=ReflexText)
|
|
{
|
|
M_COMPUTE_ALL_4_KW();
|
|
return CParse::SCHEDULE;
|
|
}
|
|
else
|
|
return CParse::SYNTAXERROR;
|
|
}
|
|
YY_BREAK
|
|
case 66:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::ITRULES;}
|
|
YY_BREAK
|
|
case 67:
|
|
{M_COMPUTE_ALL();return CParse::MACRO;}
|
|
YY_BREAK
|
|
case 68:
|
|
{M_COMPUTE_ALL();return CParse::SUBROUTINE;}
|
|
YY_BREAK
|
|
case 69:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::VECTOR;}
|
|
YY_BREAK
|
|
case 70:
|
|
{M_COMPUTE_ALL_4_KW();return CParse::CONSTVECTOR;}
|
|
YY_BREAK
|
|
case 71:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eStopEngine,(long)C_ACTION_ENGINE_STOP);
|
|
|
|
return CParse::STOPENGINE;
|
|
}
|
|
YY_BREAK
|
|
case 72:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eStopRule,(long)C_ACTION_ENGINE_STOP_RULE);
|
|
|
|
return CParse::STOPRULE;
|
|
}
|
|
YY_BREAK
|
|
case 73:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eNonStop,(long)C_ACTION_ENGINE_CONTINUE);
|
|
|
|
return CParse::NONSTOP;
|
|
}
|
|
YY_BREAK
|
|
case 74:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eBeginMacro,0L);
|
|
// BEGIN ROMTEAM Cristi Petrescu 98-08-
|
|
// see fn_vPostProcessIA
|
|
//m_bIsInMacro=TRUE;
|
|
// END ROMTEAM Cristi Petrescu 98-08-
|
|
return CParse::BEGINMACRO;
|
|
}
|
|
YY_BREAK
|
|
case 75:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eEndMacro,0L);
|
|
|
|
// BEGIN ROMTEAM Cristi Petrescu 98-08-
|
|
// see fn_vPostProcessIA
|
|
//m_lOldIndex=m_lOldMacroIndex;
|
|
//m_lIndexWithoutSpaceAndTab=m_lOldMacroIndex;
|
|
//m_lIndex=m_lOldMacroIndex;
|
|
//m_bIsInMacro=FALSE;
|
|
// END ROMTEAM Cristi Petrescu 98-08-
|
|
|
|
return CParse::ENDMACRO;
|
|
}
|
|
YY_BREAK
|
|
case 76:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-05-
|
|
M_COMPUTE_ALL();
|
|
return CParse::DVQUALIFIER;
|
|
//END ROMTEAM Cristi Petrescu 98-05-
|
|
}
|
|
YY_BREAK
|
|
case 77:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-05-
|
|
M_COMPUTE_ALL();
|
|
return CParse::DVQUALIFIER;
|
|
//END ROMTEAM Cristi Petrescu 98-05-
|
|
}
|
|
YY_BREAK
|
|
case 78:
|
|
{M_COMPUTE_ALL_4_OPC();return CParse::OPCOND;}
|
|
YY_BREAK
|
|
case 79:
|
|
{M_COMPUTE_ALL_4_OPC();return CParse::OPCOND;}
|
|
YY_BREAK
|
|
case 80:
|
|
{M_COMPUTE_ALL_4_OPC();return CParse::OPCOND;}
|
|
YY_BREAK
|
|
case 81:
|
|
{M_COMPUTE_ALL_4_OPC();return CParse::OPCOND;}
|
|
YY_BREAK
|
|
case 82:
|
|
{M_COMPUTE_ALL_4_OPC();return CParse::OPCOND;}
|
|
YY_BREAK
|
|
case 83:
|
|
{M_COMPUTE_ALL_4_OPC();return CParse::OPCOND;}
|
|
YY_BREAK
|
|
case 84:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 85:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 86:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 87:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 88:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 89:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 90:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 91:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH2PARMS;}
|
|
YY_BREAK
|
|
case 92:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH1PARM;}
|
|
YY_BREAK
|
|
case 93:
|
|
{M_COMPUTE_ALL_4_OP();return CParse::OPWITH1PARM;}
|
|
YY_BREAK
|
|
case 94:
|
|
{}
|
|
YY_BREAK
|
|
case 95:
|
|
{
|
|
unput(yytext[yyleng-1]);
|
|
M_COMPUTE_ALL_4_OP();
|
|
return CParse::OPGETCOMPO;}
|
|
YY_BREAK
|
|
case 96:
|
|
{
|
|
unput(yytext[yyleng-1]);
|
|
M_COMPUTE_ALL_4_OP();
|
|
return CParse::OPGETCOMPO;}
|
|
YY_BREAK
|
|
case 97:
|
|
{
|
|
unput(yytext[yyleng-1]);
|
|
M_COMPUTE_ALL_4_OP();
|
|
return CParse::OPGETCOMPO;}
|
|
YY_BREAK
|
|
case 98:
|
|
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
|
|
yy_c_buf_p = yy_cp -= 2;
|
|
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
|
{
|
|
l_id = fn_lGetProcedureIdFromEditorName(yytext);
|
|
cs_params = fn_csGetProcedureParams(l_id);
|
|
if (cs_params != "")
|
|
iCount = 0;
|
|
}
|
|
YY_BREAK
|
|
case 99:
|
|
{
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
// before all, check for #defines...
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
M_EXPAND_DEFINE();
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
// M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
if(fn_bIsProcedure(yytext,&(g_clParse.yylval)))
|
|
{
|
|
//ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
l_id = fn_lGetProcedureIdFromEditorName(yytext);
|
|
cs_params = fn_csGetProcedureParams(l_id);
|
|
iCount = 0;
|
|
//END ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
|
|
return CParse::PROCEDURE;
|
|
}
|
|
//ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
if (cs_params.GetLength()!=0 && iCount< cs_params.GetLength())
|
|
{
|
|
switch(cs_params[iCount])
|
|
{
|
|
case 'X':
|
|
{
|
|
iCount++;
|
|
if(fn_bIsFunction(yytext,&(g_clParse.yylval)))
|
|
return CParse::FUNCTION;
|
|
if(fn_bIsDesignerVariable(yytext,&(g_clParse.yylval)))
|
|
return CParse::DESVAR;
|
|
break;
|
|
}
|
|
case 'A':
|
|
iCount++;
|
|
if(fn_bIsMetaAction(yytext,&(g_clParse.yylval)))
|
|
return CParse::METAACTION;
|
|
break;
|
|
case 'L':
|
|
iCount++;
|
|
if(fn_bIsDesignerVariable(yytext,&(g_clParse.yylval)))
|
|
return CParse::DESVAR;
|
|
break;
|
|
case 'V':
|
|
iCount++;
|
|
if(fn_bIsDesignerVariable(yytext,&(g_clParse.yylval)))
|
|
return CParse::DESVAR;
|
|
break;
|
|
case 'P':
|
|
iCount++;
|
|
if(fn_bIsAType(yytext,&(g_clParse.yylval)))
|
|
return CParse::DVTYPE;
|
|
break;
|
|
default:
|
|
// iCount++;
|
|
break;
|
|
}
|
|
|
|
}
|
|
//END ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
|
|
if(fn_bIsFunction(yytext,&(g_clParse.yylval)))
|
|
return CParse::FUNCTION;
|
|
|
|
if(fn_bIsCondition(yytext,&(g_clParse.yylval)))
|
|
return CParse::CONDITION;
|
|
//ANNECY CB
|
|
// if(fn_bIsMetaAction(yytext,&(g_clParse.yylval)))
|
|
// return CParse::METAACTION;
|
|
//END
|
|
if(fn_bIsAType(yytext,&(g_clParse.yylval)))
|
|
return CParse::DVTYPE;
|
|
|
|
if(fn_bIsField(yytext,&(g_clParse.yylval)))
|
|
return CParse::FIELD;
|
|
|
|
if(fn_bIsAConstantInt(yytext,&(g_clParse.yylval)))
|
|
return CParse::CONSTANTINT;
|
|
|
|
if(fn_bIsAConstantReal(yytext,&(g_clParse.yylval)))
|
|
return CParse::CONSTANTREAL;
|
|
|
|
//ANNECY CB
|
|
if(fn_bIsMetaAction(yytext,&(g_clParse.yylval)))
|
|
return CParse::METAACTION;
|
|
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
if (fn_bIsSubr (yytext, & (g_clParse.yylval)))
|
|
return CParse::SUBRREF;
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
//END
|
|
//YOU MUST CALL THIS FUNCTION AT THE END
|
|
if(fn_bIsDesignerVariable(yytext,&(g_clParse.yylval)))
|
|
return CParse::DESVAR;
|
|
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eString,yytext);
|
|
return CParse::STRING;
|
|
}
|
|
YY_BREAK
|
|
case 100:
|
|
{
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
|
|
// before all, check for #defines...
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
M_EXPAND_DEFINE ();
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
// M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
if(fn_bIsAType(yytext,&(g_clParse.yylval)))
|
|
return CParse::DVTYPE;
|
|
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eString,yytext);
|
|
return CParse::STRING;
|
|
}
|
|
YY_BREAK
|
|
case 101:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
|
|
if(strcmp(yytext,"\"\"")==0)
|
|
return CParse::STRING;
|
|
|
|
//Skips first " and last "
|
|
yytext[strlen(yytext)-1]=0;
|
|
yytext++;
|
|
//ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
if (cs_params.GetLength()!=0 && iCount< cs_params.GetLength())
|
|
{
|
|
switch(cs_params[iCount])
|
|
{
|
|
case 'X':
|
|
iCount++;
|
|
if(fn_bIsFunction(yytext,&(g_clParse.yylval)))
|
|
return CParse::FUNCTION;
|
|
break;
|
|
case 'A':
|
|
iCount++;
|
|
if(fn_bIsAnAction(yytext,&(g_clParse.yylval)))
|
|
return CParse::ACTION;
|
|
break;
|
|
case '2':
|
|
iCount++;
|
|
if(fn_bIsMyIntelligenceBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::MYBEHAV;
|
|
break;
|
|
case '1':
|
|
iCount++;
|
|
if(fn_bIsMyReflexBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::MYREFLEX;
|
|
break;
|
|
case '6':
|
|
iCount++;
|
|
if(fn_bIsAKeyButton(yytext,&(g_clParse.yylval)))
|
|
return CParse::KEYBUTTON;
|
|
break;
|
|
case 'P':
|
|
iCount++;
|
|
if(fn_bIsAPerso(yytext,&(g_clParse.yylval)))
|
|
return CParse::PERSO;
|
|
break;
|
|
case '!':
|
|
iCount++;
|
|
if(fn_bIsAPerso(yytext,&(g_clParse.yylval)))
|
|
return CParse::PERSO;
|
|
break;
|
|
case '4':
|
|
{
|
|
iCount++;
|
|
if(fn_bIsAIntelligenceBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::BEHAV;
|
|
break;
|
|
}
|
|
case 'Z':
|
|
{
|
|
iCount++;
|
|
long lZdd=fn_lIsAZdd(yytext,&(g_clParse.yylval));
|
|
if(lZdd==1)
|
|
return CParse::ZDD;
|
|
else
|
|
if(lZdd>1)
|
|
return CParse::SYNTAXERROR;
|
|
break;
|
|
}
|
|
case 'E':
|
|
{
|
|
iCount++;
|
|
long lZde=fn_lIsAZde(yytext,&(g_clParse.yylval));
|
|
if(lZde==1)
|
|
return CParse::ZDE;
|
|
else
|
|
if(lZde>1)
|
|
return CParse::SYNTAXERROR;
|
|
break;
|
|
}
|
|
case 'U':
|
|
{
|
|
iCount++;
|
|
long lZdm=fn_lIsAZdm(yytext,&(g_clParse.yylval));
|
|
if(lZdm==1)
|
|
return CParse::ZDM;
|
|
else
|
|
if(lZdm>1)
|
|
return CParse::SYNTAXERROR;
|
|
break;
|
|
}
|
|
case 'W':
|
|
iCount++;
|
|
if(fn_bIsAWayPoint(yytext,&(g_clParse.yylval)))
|
|
return CParse::WAYPOINT;
|
|
break;
|
|
case '3':
|
|
iCount++;
|
|
if(fn_bIsAReflexBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::REFLEX;
|
|
break;
|
|
case 'M':
|
|
iCount++;
|
|
if(fn_bIsAChannel(yytext,&(g_clParse.yylval)))
|
|
return CParse::CHANNEL;
|
|
break;
|
|
case 'R':
|
|
iCount++;
|
|
if(fn_bIsASector(yytext,&(g_clParse.yylval)))
|
|
return CParse::SECTOR;
|
|
break;
|
|
case 'o':
|
|
iCount++;
|
|
if(fn_bIsALipSynchro(yytext,&(g_clParse.yylval)))
|
|
return CParse::LIPSYNCHRO;
|
|
break;
|
|
case 'J':
|
|
iCount++;
|
|
if(fn_bIsAObjectTable(yytext,&(g_clParse.yylval)))
|
|
return CParse::OBJECTTABLE;
|
|
break;
|
|
case 'G':
|
|
iCount++;
|
|
if(fn_bIsAFamily(yytext,&(g_clParse.yylval)))
|
|
return CParse::FAMILY;
|
|
break;
|
|
case 'C':
|
|
iCount++;
|
|
if(fn_bIsAGameMaterial(yytext,&(g_clParse.yylval)))
|
|
return CParse::GAMEMATERIAL;
|
|
break;
|
|
// case 'C':
|
|
// iCount++;
|
|
// if(fn_bIsALight(yytext,&(g_clParse.yylval)))
|
|
// return CParse::LIGHT;
|
|
// break;
|
|
case '$':
|
|
iCount++;
|
|
if(fn_bIsAGraph(yytext,&(g_clParse.yylval)))
|
|
return CParse::GRAPH;
|
|
break;
|
|
case '#':
|
|
iCount++;
|
|
if(fn_bIsACaps(yytext,&(g_clParse.yylval)))
|
|
return CParse::CAPS;
|
|
break;
|
|
#if 0
|
|
case 'N':
|
|
iCount++;
|
|
if(fn_bIsAPower(yytext,&(g_clParse.yylval)))
|
|
return CParse::POWER;
|
|
break;
|
|
#endif //0 car inutilise dans RM 2
|
|
case 'K':
|
|
iCount++;
|
|
if(fn_bIsAMaskType(yytext,&(g_clParse.yylval)))
|
|
return CParse::MASKTYPE;
|
|
break;
|
|
case 'T':
|
|
iCount++;
|
|
if(fn_bIsAText(yytext,&(g_clParse.yylval)))
|
|
return CParse::TEXT;
|
|
break;
|
|
case 'F':
|
|
iCount++;
|
|
if(fn_bIsASurface(yytext,&(g_clParse.yylval)))
|
|
return CParse::SURFACE;
|
|
break;
|
|
case 'H':
|
|
iCount++;
|
|
if(fn_bIsAEnvironment(yytext,&(g_clParse.yylval)))
|
|
return CParse::ENVIRONMENT;
|
|
break;
|
|
default:
|
|
iCount++;
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
//END ROMTEAM Optimisation (Ionut Grozea 24/04/98)
|
|
|
|
if(fn_bIsAnAction(yytext,&(g_clParse.yylval)))
|
|
return CParse::ACTION;
|
|
|
|
//ANNECY CB
|
|
if(fn_bIsMyIntelligenceBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::MYBEHAV;
|
|
//END
|
|
if(fn_bIsMyReflexBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::MYREFLEX;
|
|
//ANNECY CB
|
|
if(fn_bIsAKeyButton(yytext,&(g_clParse.yylval)))
|
|
return CParse::KEYBUTTON;
|
|
//END
|
|
//ANNECY CB
|
|
// if(fn_bIsMyIntelligenceBehaviour(yytext,&(g_clParse.yylval)))
|
|
// return CParse::MYBEHAV;
|
|
//END
|
|
if(fn_bIsAPerso(yytext,&(g_clParse.yylval)))
|
|
return CParse::PERSO;
|
|
|
|
//ANNECY CB
|
|
if(fn_bIsAIntelligenceBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::BEHAV;
|
|
//END
|
|
//ANNECY CB
|
|
// if(fn_bIsAReflexBehaviour(yytext,&(g_clParse.yylval)))
|
|
// return CParse::REFLEX;
|
|
//END
|
|
//ANNECY CB
|
|
// if(fn_bIsAIntelligenceBehaviour(yytext,&(g_clParse.yylval)))
|
|
// return CParse::BEHAV;
|
|
//END
|
|
long lZdd=fn_lIsAZdd(yytext,&(g_clParse.yylval));
|
|
if(lZdd==1)
|
|
return CParse::ZDD;
|
|
else
|
|
if(lZdd>1)
|
|
return CParse::SYNTAXERROR;
|
|
|
|
long lZde=fn_lIsAZde(yytext,&(g_clParse.yylval));
|
|
if(lZde==1)
|
|
return CParse::ZDE;
|
|
else
|
|
if(lZde>1)
|
|
return CParse::SYNTAXERROR;
|
|
|
|
long lZdm=fn_lIsAZdm(yytext,&(g_clParse.yylval));
|
|
if(lZdm==1)
|
|
return CParse::ZDM;
|
|
else
|
|
if(lZdm>1)
|
|
return CParse::SYNTAXERROR;
|
|
|
|
long lZdr=fn_lIsAZdm(yytext,&(g_clParse.yylval));
|
|
if(lZdr==1)
|
|
return CParse::ZDR;
|
|
else
|
|
if(lZdr>1)
|
|
return CParse::SYNTAXERROR;
|
|
if(fn_bIsAWayPoint(yytext,&(g_clParse.yylval)))
|
|
return CParse::WAYPOINT;
|
|
|
|
//ANNECY CB
|
|
if(fn_bIsAReflexBehaviour(yytext,&(g_clParse.yylval)))
|
|
return CParse::REFLEX;
|
|
//END
|
|
if(fn_bIsAChannel(yytext,&(g_clParse.yylval)))
|
|
return CParse::CHANNEL;
|
|
//ANNECY CB
|
|
// if(fn_bIsASurface(yytext,&(g_clParse.yylval)))
|
|
// return CParse::SURFACE;
|
|
// if(fn_bIsAEnvironment(yytext,&(g_clParse.yylval)))
|
|
// return CParse::ENVIRONMENT;
|
|
//END
|
|
if(fn_bIsASector(yytext,&(g_clParse.yylval)))
|
|
return CParse::SECTOR;
|
|
|
|
if(fn_bIsASuperObject(yytext,&(g_clParse.yylval)))
|
|
return CParse::SUPEROBJECT;
|
|
|
|
if(fn_bIsALipSynchro(yytext,&(g_clParse.yylval)))
|
|
return CParse::LIPSYNCHRO;
|
|
|
|
if(fn_bIsAObjectTable(yytext,&(g_clParse.yylval)))
|
|
return CParse::OBJECTTABLE;
|
|
|
|
if(fn_bIsAFamily(yytext,&(g_clParse.yylval)))
|
|
return CParse::FAMILY;
|
|
|
|
if(fn_bIsAModel(yytext,&(g_clParse.yylval)))
|
|
return CParse::MODEL;
|
|
|
|
if(fn_bIsASoundEvent(yytext,&(g_clParse.yylval)))
|
|
return CParse::SOUNDEVENT;
|
|
|
|
if(fn_bIsAGameMaterial(yytext,&(g_clParse.yylval)))
|
|
return CParse::GAMEMATERIAL;
|
|
|
|
if(fn_bIsALight(yytext,&(g_clParse.yylval)))
|
|
return CParse::LIGHT;
|
|
|
|
if(fn_bIsACaps(yytext,&(g_clParse.yylval)))
|
|
return CParse::CAPS;
|
|
|
|
if(fn_bIsAGraph(yytext,&(g_clParse.yylval)))
|
|
return CParse::GRAPH;
|
|
//ANNECY CB
|
|
// if(fn_bIsAKeyButton(yytext,&(g_clParse.yylval)))
|
|
// return CParse::KEYBUTTON;
|
|
//END
|
|
if(fn_bIsAMaskType(yytext,&(g_clParse.yylval)))
|
|
return CParse::MASKTYPE;
|
|
|
|
#if 0
|
|
if(fn_bIsAPower(yytext,&(g_clParse.yylval)))
|
|
return CParse::POWER;
|
|
#endif //0 car inutilise dans RM 2
|
|
|
|
if(fn_bIsAText(yytext,&(g_clParse.yylval)))
|
|
return CParse::TEXT;
|
|
|
|
if(fn_bIsAParticleGenerator(yytext,&(g_clParse.yylval)))
|
|
return CParse::PARTGEN;
|
|
|
|
if(fn_bIsAState(yytext,&(g_clParse.yylval)))
|
|
return CParse::STATE;
|
|
|
|
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eString,yytext);
|
|
return CParse::STRING;
|
|
}
|
|
YY_BREAK
|
|
case 102:
|
|
{
|
|
if(strcmp(yytext,"\"\"")==0)
|
|
return CParse::STRING;
|
|
|
|
M_COMPUTE_ALL();
|
|
|
|
//Skips first " and last "
|
|
yytext[strlen(yytext)-1]=0;
|
|
yytext++;
|
|
|
|
if(fn_bIsAnAction(yytext,&(g_clParse.yylval)))
|
|
return CParse::ACTION;
|
|
|
|
if(fn_bIsAPerso(yytext,&(g_clParse.yylval)))
|
|
return CParse::PERSO;
|
|
|
|
if(fn_bIsAWayPoint(yytext,&(g_clParse.yylval)))
|
|
return CParse::WAYPOINT;
|
|
|
|
if(fn_bIsACaps(yytext,&(g_clParse.yylval)))
|
|
return CParse::CAPS;
|
|
|
|
if(fn_bIsAGraph(yytext,&(g_clParse.yylval)))
|
|
return CParse::GRAPH;
|
|
|
|
if(fn_bIsAText(yytext,&(g_clParse.yylval)))
|
|
return CParse::TEXT;
|
|
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eString,yytext);
|
|
return CParse::STRING;
|
|
}
|
|
YY_BREAK
|
|
case 103:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eConstant,atol(yytext));
|
|
|
|
return CParse::INT;
|
|
}
|
|
YY_BREAK
|
|
case 104:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
fn_vInitNode(&(g_clParse.yylval),m_lIndex,eReal,atof(yytext));
|
|
|
|
return CParse::REAL;
|
|
}
|
|
YY_BREAK
|
|
case 105:
|
|
{
|
|
M_COMPUTE_ALL();
|
|
return *yytext;
|
|
}
|
|
YY_BREAK
|
|
case 106:
|
|
{
|
|
m_lIndex+=yyleng;
|
|
}
|
|
YY_BREAK
|
|
case 107:
|
|
{
|
|
/*printf("!! %s\n",yytext);*/
|
|
return *yytext;
|
|
}
|
|
YY_BREAK
|
|
case 108:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
// trick to remember the initial state
|
|
m_eBegin = begin_french;
|
|
//yy_start_old = yy_start;
|
|
BEGIN (DEFINE);
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
}
|
|
YY_BREAK
|
|
case 109:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
// trick to remember the initial state
|
|
m_eBegin = begin_english;
|
|
//yy_start_old = yy_start;
|
|
BEGIN (DEFINE);
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
}
|
|
YY_BREAK
|
|
case 110:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
// trick to remember the initial state
|
|
m_eBegin = begin_dsgvar;
|
|
//yy_start_old = yy_start;
|
|
BEGIN (DEFINE);
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
}
|
|
YY_BREAK
|
|
case 111:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
// get the definiton name
|
|
m_csDefineName = yytext;
|
|
// and get the text, too
|
|
BEGIN (DEFINE_TEXT);
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
}
|
|
YY_BREAK
|
|
case 112:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
M_COMPUTE_ALL();
|
|
//End Stefan Dumitrean
|
|
// add the define into the table
|
|
CString csDefineText = yytext;
|
|
m_clDefineList . SetAt (m_csDefineName, csDefineText);
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
}
|
|
YY_BREAK
|
|
case 113:
|
|
{
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Stefan Dumitrean 20-05-98
|
|
m_lIndex+=yyleng;
|
|
//End Stefan Dumitrean
|
|
// go back
|
|
//yy_start = yy_start_old;
|
|
switch (m_eBegin)
|
|
{
|
|
case begin_french:
|
|
BEGIN (FRENCH);
|
|
break;
|
|
case begin_english:
|
|
BEGIN (ENGLISH);
|
|
break;
|
|
case begin_dsgvar:
|
|
BEGIN (DECL_DSG_VAR);
|
|
break;
|
|
}
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
}
|
|
YY_BREAK
|
|
case 114:
|
|
{
|
|
//Stefan Dumitrean 20-05-98
|
|
|
|
m_lIndex+=yyleng;
|
|
//End Stefan Dumitrean
|
|
|
|
}
|
|
YY_BREAK
|
|
case 115:
|
|
ECHO;
|
|
YY_BREAK
|
|
case YY_STATE_EOF(INITIAL):
|
|
case YY_STATE_EOF(ENGLISH):
|
|
case YY_STATE_EOF(FRENCH):
|
|
case YY_STATE_EOF(DECL_DSG_VAR):
|
|
case YY_STATE_EOF(DEFINE):
|
|
case YY_STATE_EOF(DEFINE_TEXT):
|
|
yyterminate();
|
|
|
|
case YY_END_OF_BUFFER:
|
|
{
|
|
/* amount of text matched not including the EOB char */
|
|
int yy_amount_of_matched_text = yy_cp - yy___text - 1;
|
|
|
|
/* undo the effects of YY_DO_BEFORE_ACTION */
|
|
*yy_cp = yy_hold_char;
|
|
|
|
/* note that here we test for yy_c_buf_p "<=" to the position
|
|
* of the first EOB in the buffer, since yy_c_buf_p will
|
|
* already have been incremented past the NUL character
|
|
* (since all states make transitions on EOB to the end-
|
|
* of-buffer state). Contrast this with the test in yyinput().
|
|
*/
|
|
if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
|
|
/* this was really a NUL */
|
|
{
|
|
yy_state_type yy_next_state;
|
|
|
|
yy_c_buf_p = yy___text + yy_amount_of_matched_text;
|
|
|
|
yy_current_state = yy_get_previous_state();
|
|
|
|
/* okay, we're now positioned to make the
|
|
* NUL transition. We couldn't have
|
|
* yy_get_previous_state() go ahead and do it
|
|
* for us because it doesn't know how to deal
|
|
* with the possibility of jamming (and we
|
|
* don't want to build jamming into it because
|
|
* then it will run more slowly)
|
|
*/
|
|
|
|
yy_next_state = yy_try_NUL_trans( yy_current_state );
|
|
|
|
yy_bp = yy___text + YY_MORE_ADJ;
|
|
|
|
if ( yy_next_state )
|
|
{
|
|
/* consume the NUL */
|
|
yy_cp = ++yy_c_buf_p;
|
|
yy_current_state = yy_next_state;
|
|
goto yy_match;
|
|
}
|
|
|
|
else
|
|
{
|
|
/* % code to do backtracking for compressed tables and set up yy_cp goes here */
|
|
yy_cp = yy_last_accepting_cpos;
|
|
yy_current_state = yy_last_accepting_state;
|
|
goto yy_find_action;
|
|
}
|
|
}
|
|
|
|
else switch ( yy_get_next_buffer() )
|
|
{
|
|
case EOB_ACT_END_OF_FILE:
|
|
{
|
|
yy_did_buffer_switch_on_eof = 0;
|
|
|
|
if ( yywrap() )
|
|
{
|
|
/* note: because we've taken care in
|
|
* yy_get_next_buffer() to have set up yy___text,
|
|
* we can now set up yy_c_buf_p so that if some
|
|
* total hoser (like flex itself) wants
|
|
* to call the scanner after we return the
|
|
* YY_NULL, it'll still work - another YY_NULL
|
|
* will get returned.
|
|
*/
|
|
yy_c_buf_p = yy___text + YY_MORE_ADJ;
|
|
|
|
yy_act = YY_STATE_EOF((yy_start - 1) / 2);
|
|
goto do_action;
|
|
}
|
|
|
|
else
|
|
{
|
|
if ( ! yy_did_buffer_switch_on_eof )
|
|
YY_NEW_FILE;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case EOB_ACT_CONTINUE_SCAN:
|
|
yy_c_buf_p = yy___text + yy_amount_of_matched_text;
|
|
|
|
yy_current_state = yy_get_previous_state();
|
|
|
|
yy_cp = yy_c_buf_p;
|
|
yy_bp = yy___text + YY_MORE_ADJ;
|
|
goto yy_match;
|
|
|
|
case EOB_ACT_LAST_MATCH:
|
|
yy_c_buf_p =
|
|
&yy_current_buffer->yy_ch_buf[yy_n_chars];
|
|
|
|
yy_current_state = yy_get_previous_state();
|
|
|
|
yy_cp = yy_c_buf_p;
|
|
yy_bp = yy___text + YY_MORE_ADJ;
|
|
goto yy_find_action;
|
|
}
|
|
break;
|
|
}
|
|
|
|
default:
|
|
#if YY_CLex_DEBUG != 0
|
|
fprintf(stderr, "action # %d\n", yy_act );
|
|
#endif
|
|
YY_FATAL_ERROR(
|
|
"fatal flex scanner internal error--no action found" );
|
|
}
|
|
}
|
|
yyterminate();/* avoid the no return value error message on MS-C7/dos */
|
|
}
|
|
|
|
|
|
/* yy_get_next_buffer - try to read in a new buffer
|
|
*
|
|
* synopsis
|
|
* int yy_get_next_buffer();
|
|
*
|
|
* returns a code representing an action
|
|
* EOB_ACT_LAST_MATCH -
|
|
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
|
|
* EOB_ACT_END_OF_FILE - end of file
|
|
*/
|
|
#ifndef YY_USE_CLASS
|
|
static int yy_get_next_buffer()
|
|
#else
|
|
int YY_CLex_CLASS::yy_get_next_buffer()
|
|
#endif
|
|
{
|
|
register YY_CLex_CHAR *dest = yy_current_buffer->yy_ch_buf;
|
|
register YY_CLex_CHAR *source = yy___text - 1; /* copy prev. char, too */
|
|
register int number_to_move, i;
|
|
int ret_val;
|
|
|
|
if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
|
|
YY_FATAL_ERROR(
|
|
"fatal flex scanner internal error--end of buffer missed" );
|
|
|
|
/* try to read more data */
|
|
|
|
/* first move last chars to start of buffer */
|
|
number_to_move = yy_c_buf_p - yy___text;
|
|
|
|
for ( i = 0; i < number_to_move; ++i )
|
|
*(dest++) = *(source++);
|
|
|
|
if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
|
|
/* don't do the read, it's not guaranteed to return an EOF,
|
|
* just force an EOF
|
|
*/
|
|
yy_n_chars = 0;
|
|
|
|
else
|
|
{
|
|
int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
|
|
|
|
if ( num_to_read > YY_READ_BUF_SIZE )
|
|
num_to_read = YY_READ_BUF_SIZE;
|
|
|
|
else if ( num_to_read <= 0 )
|
|
YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
|
|
|
|
/* read in more data */
|
|
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
|
|
yy_n_chars, num_to_read );
|
|
}
|
|
|
|
if ( yy_n_chars == 0 )
|
|
{
|
|
if ( number_to_move - YY_MORE_ADJ == 1 )
|
|
{
|
|
ret_val = EOB_ACT_END_OF_FILE;
|
|
yy_current_buffer->yy_eof_status = EOF_DONE;
|
|
}
|
|
|
|
else
|
|
{
|
|
ret_val = EOB_ACT_LAST_MATCH;
|
|
yy_current_buffer->yy_eof_status = EOF_PENDING;
|
|
}
|
|
}
|
|
|
|
else
|
|
ret_val = EOB_ACT_CONTINUE_SCAN;
|
|
|
|
yy_n_chars += number_to_move;
|
|
yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
|
|
yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
|
|
|
|
/* yy___text begins at the second character in yy_ch_buf; the first
|
|
* character is the one which preceded it before reading in the latest
|
|
* buffer; it needs to be kept around in case it's a newline, so
|
|
* yy_get_previous_state() will have with '^' rules active
|
|
*/
|
|
|
|
yy___text = &yy_current_buffer->yy_ch_buf[1];
|
|
|
|
return ( ret_val );
|
|
}
|
|
|
|
|
|
/* yy_get_previous_state - get the state just before the EOB char was reached
|
|
*
|
|
* synopsis
|
|
* yy_state_type yy_get_previous_state();
|
|
*/
|
|
|
|
#ifndef YY_USE_CLASS
|
|
static yy_state_type yy_get_previous_state()
|
|
#else
|
|
long YY_CLex_CLASS::yy_get_previous_state_()
|
|
#endif
|
|
{
|
|
register yy_state_type yy_current_state;
|
|
register YY_CLex_CHAR *yy_cp;
|
|
|
|
/* % code to get the start state into yy_current_state goes here */
|
|
register YY_CHAR *yy_bp = yy___text;
|
|
|
|
yy_current_state = yy_start;
|
|
if ( yy_bp[-1] == '\n' )
|
|
++yy_current_state;
|
|
|
|
for ( yy_cp = yy___text + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
|
|
{
|
|
/* % code to find the next state goes here */
|
|
register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
|
|
if ( yy_accept[yy_current_state] )
|
|
{
|
|
yy_last_accepting_state = yy_current_state;
|
|
yy_last_accepting_cpos = yy_cp;
|
|
}
|
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
|
{
|
|
yy_current_state = yy_def[yy_current_state];
|
|
if ( yy_current_state >= 718 )
|
|
yy_c = yy_meta[yy_c];
|
|
}
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
|
}
|
|
|
|
#ifndef YY_USE_CLASS
|
|
return ( yy_current_state );
|
|
#else
|
|
return (long)( yy_current_state );
|
|
#endif
|
|
}
|
|
|
|
|
|
/* yy_try_NUL_trans - try to make a transition on the NUL character
|
|
*
|
|
* synopsis
|
|
* next_state = yy_try_NUL_trans( current_state );
|
|
*/
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
|
|
#else
|
|
static yy_state_type yy_try_NUL_trans( yy_current_state )
|
|
register yy_state_type yy_current_state;
|
|
#endif
|
|
#else
|
|
long YY_CLex_CLASS::yy_try_NUL_trans_(long yy_current_state_)
|
|
#endif
|
|
|
|
{
|
|
#ifndef YY_USE_CLASS
|
|
#else
|
|
yy_state_type yy_current_state=(yy_state_type)yy_current_state_;
|
|
#endif
|
|
register int yy_is_jam;
|
|
/* % code to find the next state, and perhaps do backtracking, goes here */
|
|
register YY_CHAR *yy_cp = yy_c_buf_p;
|
|
|
|
register YY_CHAR yy_c = 1;
|
|
if ( yy_accept[yy_current_state] )
|
|
{
|
|
yy_last_accepting_state = yy_current_state;
|
|
yy_last_accepting_cpos = yy_cp;
|
|
}
|
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
|
{
|
|
yy_current_state = yy_def[yy_current_state];
|
|
if ( yy_current_state >= 718 )
|
|
yy_c = yy_meta[yy_c];
|
|
}
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
|
yy_is_jam = (yy_current_state == 717);
|
|
|
|
#ifndef YY_USE_CLASS
|
|
return ( yy_is_jam ? 0 : yy_current_state );
|
|
#else
|
|
return (long)( yy_is_jam ? 0 : yy_current_state );
|
|
#endif
|
|
}
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
static void yyunput( YY_CLex_CHAR c, register YY_CLex_CHAR *yy_bp )
|
|
#else
|
|
static void yyunput( c, yy_bp )
|
|
YY_CLex_CHAR c;
|
|
register YY_CLex_CHAR *yy_bp;
|
|
#endif
|
|
#else
|
|
void YY_CLex_CLASS::yyunput( YY_CLex_CHAR c, YY_CLex_CHAR *yy_bp )
|
|
#endif
|
|
|
|
{
|
|
register YY_CLex_CHAR *yy_cp = yy_c_buf_p;
|
|
|
|
/* undo effects of setting up yy___text */
|
|
*yy_cp = yy_hold_char;
|
|
|
|
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
|
|
{ /* need to shift things up to make room */
|
|
register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
|
|
register YY_CLex_CHAR *dest =
|
|
&yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
|
|
register YY_CLex_CHAR *source =
|
|
&yy_current_buffer->yy_ch_buf[number_to_move];
|
|
|
|
while ( source > yy_current_buffer->yy_ch_buf )
|
|
*--dest = *--source;
|
|
|
|
yy_cp += dest - source;
|
|
yy_bp += dest - source;
|
|
yy_n_chars = yy_current_buffer->yy_buf_size;
|
|
|
|
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
|
|
YY_FATAL_ERROR( "flex scanner push-back overflow" );
|
|
}
|
|
|
|
if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
|
|
yy_cp[-2] = '\n';
|
|
|
|
*--yy_cp = c;
|
|
|
|
/* note: the formal parameter *must* be called "yy_bp" for this
|
|
* macro to now work correctly
|
|
*/
|
|
YY_DO_BEFORE_ACTION; /* set up yy___text again */
|
|
}
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef __cplusplus
|
|
static int yyinput()
|
|
#else
|
|
static int input()
|
|
#endif
|
|
#else
|
|
int YY_CLex_CLASS::input()
|
|
#endif
|
|
{
|
|
int c;
|
|
YY_CLex_CHAR *yy_cp = yy_c_buf_p;
|
|
|
|
*yy_cp = yy_hold_char;
|
|
|
|
if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
|
|
{
|
|
/* yy_c_buf_p now points to the character we want to return.
|
|
* If this occurs *before* the EOB characters, then it's a
|
|
* valid NUL; if not, then we've hit the end of the buffer.
|
|
*/
|
|
if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
|
|
/* this was really a NUL */
|
|
*yy_c_buf_p = '\0';
|
|
|
|
else
|
|
{ /* need more input */
|
|
yy___text = yy_c_buf_p;
|
|
++yy_c_buf_p;
|
|
|
|
switch ( yy_get_next_buffer() )
|
|
{
|
|
case EOB_ACT_END_OF_FILE:
|
|
{
|
|
if ( yywrap() )
|
|
{
|
|
yy_c_buf_p = yy___text + YY_MORE_ADJ;
|
|
return ( EOF );
|
|
}
|
|
|
|
YY_NEW_FILE;
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef __cplusplus
|
|
return ( yyinput() );
|
|
#else
|
|
return ( input() );
|
|
#endif
|
|
#else
|
|
return ( input() );
|
|
#endif
|
|
}
|
|
break;
|
|
|
|
case EOB_ACT_CONTINUE_SCAN:
|
|
yy_c_buf_p = yy___text + YY_MORE_ADJ;
|
|
break;
|
|
|
|
case EOB_ACT_LAST_MATCH:
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef __cplusplus
|
|
YY_FATAL_ERROR( "unexpected last match in yyinput()" );
|
|
#else
|
|
YY_FATAL_ERROR( "unexpected last match in input()" );
|
|
#endif
|
|
#else
|
|
YY_FATAL_ERROR( "unexpected last match in YY_CLex_CLASS::input()" );
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
c = *yy_c_buf_p;
|
|
yy_hold_char = *++yy_c_buf_p;
|
|
|
|
return ( c );
|
|
}
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
void YY_CLex_RESTART( FILE *input_file )
|
|
#else
|
|
void YY_CLex_RESTART( input_file )
|
|
FILE *input_file;
|
|
#endif
|
|
#else
|
|
void YY_CLex_CLASS::YY_CLex_RESTART ( FILE *input_file )
|
|
#endif
|
|
|
|
{
|
|
YY_CLex_INIT_BUFFER( yy_current_buffer, input_file );
|
|
YY_CLex_LOAD_BUFFER_STATE();
|
|
}
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
void YY_CLex_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer )
|
|
#else
|
|
void YY_CLex_SWITCH_TO_BUFFER( new_buffer )
|
|
YY_BUFFER_STATE new_buffer;
|
|
#endif
|
|
#else
|
|
void YY_CLex_CLASS::YY_CLex_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer )
|
|
#endif
|
|
|
|
{
|
|
if ( yy_current_buffer == new_buffer )
|
|
return;
|
|
|
|
if ( yy_current_buffer )
|
|
{
|
|
/* flush out information for old buffer */
|
|
*yy_c_buf_p = yy_hold_char;
|
|
yy_current_buffer->yy_buf_pos = yy_c_buf_p;
|
|
yy_current_buffer->yy_n_chars = yy_n_chars;
|
|
}
|
|
|
|
yy_current_buffer = new_buffer;
|
|
YY_CLex_LOAD_BUFFER_STATE();
|
|
|
|
/* we don't actually know whether we did this switch during
|
|
* EOF (yywrap()) processing, but the only time this flag
|
|
* is looked at is after yywrap() is called, so it's safe
|
|
* to go ahead and always set it.
|
|
*/
|
|
yy_did_buffer_switch_on_eof = 1;
|
|
}
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
void YY_CLex_LOAD_BUFFER_STATE( void )
|
|
#else
|
|
void YY_CLex_LOAD_BUFFER_STATE()
|
|
#endif
|
|
#else
|
|
void YY_CLex_CLASS::YY_CLex_LOAD_BUFFER_STATE( )
|
|
#endif
|
|
|
|
{
|
|
yy_n_chars = yy_current_buffer->yy_n_chars;
|
|
yy___text = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
|
|
yy___in = yy_current_buffer->yy_input_file;
|
|
yy_hold_char = *yy_c_buf_p;
|
|
}
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
YY_BUFFER_STATE YY_CLex_CREATE_BUFFER( FILE *file, int size )
|
|
#else
|
|
YY_BUFFER_STATE YY_CLex_CREATE_BUFFER( file, size )
|
|
FILE *file;
|
|
int size;
|
|
#endif
|
|
#else
|
|
YY_BUFFER_STATE YY_CLex_CLASS::YY_CLex_CREATE_BUFFER( FILE *file, int size )
|
|
#endif
|
|
|
|
{
|
|
YY_BUFFER_STATE b;
|
|
|
|
b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
|
|
|
|
if ( ! b )
|
|
YY_FATAL_ERROR( "out of dynamic memory in YY_CLex_CREATE_BUFFER()" );
|
|
|
|
b->yy_buf_size = size;
|
|
|
|
/* yy_ch_buf has to be 2 characters longer than the size given because
|
|
* we need to put in 2 end-of-buffer characters.
|
|
*/
|
|
b->yy_ch_buf = (YY_CLex_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
|
|
|
|
if ( ! b->yy_ch_buf )
|
|
YY_FATAL_ERROR( "out of dynamic memory in YY_CLex_CREATE_BUFFER()" );
|
|
|
|
YY_CLex_INIT_BUFFER( b, file );
|
|
|
|
return ( b );
|
|
}
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
void YY_CLex_DELETE_BUFFER( YY_BUFFER_STATE b )
|
|
#else
|
|
void YY_CLex_DELETE_BUFFER( b )
|
|
YY_BUFFER_STATE b;
|
|
#endif
|
|
#else
|
|
void YY_CLex_CLASS::YY_CLex_DELETE_BUFFER( YY_BUFFER_STATE b )
|
|
#endif
|
|
|
|
{
|
|
if ( b == yy_current_buffer )
|
|
yy_current_buffer = (YY_BUFFER_STATE) 0;
|
|
|
|
free( (char *) b->yy_ch_buf );
|
|
free( (char *) b );
|
|
}
|
|
|
|
|
|
#ifndef YY_USE_CLASS
|
|
#ifdef YY_USE_PROTOS
|
|
void YY_CLex_INIT_BUFFER( YY_BUFFER_STATE b, FILE *file )
|
|
#else
|
|
void YY_CLex_INIT_BUFFER( b, file )
|
|
YY_BUFFER_STATE b;
|
|
FILE *file;
|
|
#endif
|
|
#else
|
|
void YY_CLex_CLASS::YY_CLex_INIT_BUFFER( YY_BUFFER_STATE b, FILE *file)
|
|
#endif
|
|
|
|
{
|
|
b->yy_input_file = file;
|
|
|
|
/* we put in the '\n' and start reading from [1] so that an
|
|
* initial match-at-newline will be true.
|
|
*/
|
|
|
|
b->yy_ch_buf[0] = '\n';
|
|
b->yy_n_chars = 1;
|
|
|
|
/* we always need two end-of-buffer characters. The first causes
|
|
* a transition to the end-of-buffer state. The second causes
|
|
* a jam in that state.
|
|
*/
|
|
b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
|
|
b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
|
|
|
|
b->yy_buf_pos = &b->yy_ch_buf[1];
|
|
|
|
b->yy_eof_status = EOF_NOT_SEEN;
|
|
}
|
|
|
|
|
|
//Some useful macros
|
|
#define M_MAKECHAR(a) ((char *)(LPCTSTR(a)))
|
|
|
|
//ANNECY CB
|
|
#define CSTRING_EQ(cs, psz)\
|
|
{\
|
|
cs= psz;\
|
|
}
|
|
//END
|
|
|
|
//MetaAction
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsMetaAction(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsMetaAction(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_lGetMetaActionIdFromEditorName(csString);
|
|
|
|
if(M_ID_IS_VALID(lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eMetaAction,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsMetaAction(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsMetaAction(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Condition
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsCondition(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsCondition(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_lGetConditionIdFromEditorName(csString);
|
|
|
|
if(M_ID_IS_VALID(lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eCondition,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsCondition(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsCondition(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Designer Variable
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsDesignerVariable(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsDesignerVariable(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
//First looks in current dsg var list
|
|
//ANNECY CB
|
|
long lIndex = g_clDsgVarList.m_fn_bIsADesignerVariable(csString) - 1;
|
|
if(lIndex >= 0)
|
|
// if(g_clDsgVarList.m_fn_bIsADesignerVariable(csString))
|
|
{
|
|
// long lIndex=g_clDsgVarList.m_fn_lGetIndexOfADesignerVariable(csString);
|
|
//END
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eDsgVar,lIndex,g_pclCurrentModel);
|
|
|
|
CPA_EdIR_IntermediateCode *pclIntermediateCode=pstReturn->clIntermediateCodeList.GetTail();
|
|
|
|
pclIntermediateCode->m_fn_vSetString(csString);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
{
|
|
//Looks in all models
|
|
CPA_List<CPA_BaseObject> clModelsList;
|
|
g_pclAIInterface->GetMainWorld()->fn_lFindObjects(&clModelsList,"",C_szActorModelTypeName,NO_CRITERIA);
|
|
|
|
POSITION pos=clModelsList.GetHeadPosition();
|
|
BOOL bFound=FALSE;
|
|
long lNoDsgVar=0;
|
|
CPA_Actor *pclModel=NULL;
|
|
while(pos!=NULL && !bFound)
|
|
{
|
|
CPA_Actor *pclActor=(CPA_Actor *)(clModelsList.GetNext(pos));
|
|
|
|
if(pclActor->fn_bIsAvailable())
|
|
{
|
|
pclModel=pclActor;
|
|
|
|
if(pclModel!=g_pclCurrentModel)
|
|
{
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
|
|
CString csIn;
|
|
|
|
if(!pclBrain->m_clListOfDeclarations.IsEmpty())
|
|
{
|
|
//Gets Designer Variable MainBehaviour (first element in the list)
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclBrain->m_clListOfDeclarations.GetHead();
|
|
|
|
//Gets text declaraition
|
|
if(pclMainBehaviour->m_pclBehaviour!=NULL)
|
|
csIn=pclMainBehaviour->m_pclBehaviour->m_fn_csGetRules();
|
|
else
|
|
csIn=pclMainBehaviour->m_csText;
|
|
|
|
csIn=fn_csGetCodeWithoutComments(csIn);
|
|
|
|
//Looks for dsg var in this text
|
|
long lCurrentIndex=0;
|
|
CString csWord=fn_csGetNextWord(csIn,lCurrentIndex);
|
|
lNoDsgVar=0;
|
|
while(!csWord.IsEmpty() && !bFound)
|
|
{
|
|
BOOL bPublic = TRUE;
|
|
|
|
// skip private & public
|
|
if (fn_bIsDsgVarQualifier(csWord))
|
|
{
|
|
bPublic = csWord.CompareNoCase("private");
|
|
csWord=fn_csGetNextWord(csIn,lCurrentIndex);
|
|
}
|
|
|
|
//Gets Type
|
|
tdeDsgVarTypeId eDsgVarTypeId=(tdeDsgVarTypeId)fn_lGetDsgVarTypeIdFromEditorName(csWord);
|
|
|
|
//Gets Name
|
|
csWord=fn_csGetNextWord(csIn,lCurrentIndex);
|
|
|
|
if(csWord.CompareNoCase(csString)==0)
|
|
bFound=TRUE;
|
|
else
|
|
{
|
|
//Skips Value
|
|
fn_csGetNextWord(csIn,lCurrentIndex);
|
|
|
|
if(eDsgVarTypeId==eDsgVarType_Vector)
|
|
{
|
|
//Skips x,y,z components
|
|
fn_csGetNextWord(csIn,lCurrentIndex);
|
|
fn_csGetNextWord(csIn,lCurrentIndex);
|
|
fn_csGetNextWord(csIn,lCurrentIndex);
|
|
}
|
|
|
|
//Skips type
|
|
csWord=fn_csGetNextWord(csIn,lCurrentIndex);
|
|
|
|
lNoDsgVar++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
long lIndex=lNoDsgVar;
|
|
|
|
if(bFound)
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eDsgVar,lIndex,pclModel);
|
|
|
|
CPA_EdIR_IntermediateCode *pclIntermediateCode=pstReturn->clIntermediateCodeList.GetTail();
|
|
|
|
pclIntermediateCode->m_fn_vSetString(csString);
|
|
}
|
|
|
|
return bFound;
|
|
}
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsDesignerVariable(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsDesignerVariable(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ConstantInt
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAConstantInt(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAConstantInt(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_EdIR_Frame *pclMainFrame=g_pclAIInterface->m_pclIRMainFrame;
|
|
|
|
if(pclMainFrame!=NULL)
|
|
{
|
|
if(pclMainFrame->m_clConstantList.m_fn_bIsAConstant(csString))
|
|
{
|
|
CString csValue=pclMainFrame->m_clConstantList.m_fn_csGetValueOfAConstant(csString);
|
|
|
|
if(pclMainFrame->m_clConstantList.m_fn_csGetTypeOfAConstant(csString)==g_c_csInteger)
|
|
{
|
|
long lValue=atol(M_MAKECHAR(csValue));
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eConstantInt,lValue);
|
|
|
|
CPA_EdIR_IntermediateCode *pclIntermediateCode=pstReturn->clIntermediateCodeList.GetTail();
|
|
pclIntermediateCode->m_fn_vSetString(csString);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAConstantInt(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAConstantInt(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ConstantReal
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAConstantReal(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAConstantReal(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_EdIR_Frame *pclMainFrame=g_pclAIInterface->m_pclIRMainFrame;
|
|
|
|
if(pclMainFrame!=NULL)
|
|
{
|
|
if(pclMainFrame->m_clConstantList.m_fn_bIsAConstant(csString))
|
|
{
|
|
CString csValue=pclMainFrame->m_clConstantList.m_fn_csGetValueOfAConstant(csString);
|
|
|
|
if(pclMainFrame->m_clConstantList.m_fn_csGetTypeOfAConstant(csString)==g_c_csDecimal)
|
|
{
|
|
double dfValue=atof(M_MAKECHAR(csValue));
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eConstantReal,dfValue);
|
|
|
|
CPA_EdIR_IntermediateCode *pclIntermediateCode=pstReturn->clIntermediateCodeList.GetTail();
|
|
pclIntermediateCode->m_fn_vSetString(csString);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAConstantReal(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAConstantReal(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Type
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAType(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAType(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_lGetDsgVarTypeIdFromEditorName(csString);
|
|
|
|
if(M_ID_IS_VALID(lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eCreateDsgVar,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAType(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAType(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Function
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsFunction(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsFunction(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_lGetFunctionIdFromEditorName(csString);
|
|
|
|
if(M_ID_IS_VALID(lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eFunction,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsFunction(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsFunction(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Procedure
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsProcedure(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsProcedure(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_lGetProcedureIdFromEditorName(csString);
|
|
|
|
if(M_ID_IS_VALID(lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eProcedure,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsProcedure(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsProcedure(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
//Subr
|
|
/****************************************************************************/
|
|
BOOL fn_bIsSubr(CString &csString,stReturn *pstReturn)
|
|
{
|
|
if (g_pclListOfSubrs -> m_fn_bIsInList (csString))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour = g_pclListOfSubrs -> m_fn_pclGetMainBehaviour(csString);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
long lIndex = (long) pclMainBehaviour;
|
|
fn_vInitNode (pstReturn, g_clLex . m_lIndex, eSubrRef, lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
//return g_pclListOfSubrs -> m_fn_bIsInList (csString);
|
|
}
|
|
|
|
BOOL fn_bIsSubr(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsSubr(gcsGlob,pstReturn);
|
|
}
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
|
|
//Field
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsField(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsField(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_lGetFieldIdFromEditorName(csString);
|
|
|
|
if(M_ID_IS_VALID(lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eField,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsField(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsField(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Known editor object
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAKnownEditorObject(CString &csString,stReturn *pstReturn,char *csTypeName,tdeNodeType eNodeType)
|
|
//BOOL fn_bIsAKnownEditorObject(CString csString,stReturn *pstReturn,CString csTypeName,tdeNodeType eNodeType)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclBaseObject;
|
|
pclBaseObject=g_pclAIInterface->GetMainWorld()->fn_p_oFindObject(M_MAKECHAR(csString),csTypeName);
|
|
|
|
if(pclBaseObject!=NULL)
|
|
{
|
|
if(pclBaseObject->fn_bIsAvailable()==FALSE)
|
|
pclBaseObject->GetEditor()->fn_bLoadBaseObject(pclBaseObject);
|
|
|
|
long lIndex=long(pclBaseObject->GetData());
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eNodeType,lIndex);
|
|
}
|
|
|
|
return (pclBaseObject!=NULL);
|
|
}
|
|
|
|
//Perso (and Always)
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAPerso(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAPerso(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szActorInstanceTypeName,ePerso);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAPerso(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAPerso(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//For ZDD ZDM ZDE ZDR and WAY
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
long fn_lIsAZdxOrAWay(CString &csString,long &lIndex,CString &csObjectType)
|
|
//long fn_lIsAZdxOrAWay(CString csString,long &lIndex,CString &csObjectType)
|
|
//END
|
|
{
|
|
stIndexOfNameInfo stInfo;
|
|
stInfo.csNameOfObject=csString;
|
|
|
|
CPA_DLLBase *pclActorDLL=(CPA_DLLBase*)(g_pclAIInterface->GetMainWorld()->GetObjectDLLWithName(C_szDLLActorName));
|
|
long lResultIndex=pclActorDLL->OnQueryAction(g_pclAIInterface,C_uiActor_GetIndexOfName,(long)&stInfo);
|
|
|
|
csObjectType=stInfo.csObjectType;
|
|
CPA_Actor *pclModel=stInfo.pclModel;
|
|
|
|
switch (lResultIndex)
|
|
{
|
|
case C_wNoNameFound:
|
|
return 0;
|
|
|
|
case C_wMultipleNamesFound:
|
|
AfxMessageBox("Conflict with "+csString+"\nTry to use ListName@ObjectName");
|
|
return 2;
|
|
|
|
case C_wNoNameListFound:
|
|
return 0;
|
|
|
|
case C_wMultipleNameListsFound:
|
|
AfxMessageBox("Conflict with "+csString+"\nTry to use FamilyName@ListName@ObjectName");
|
|
return 2;
|
|
|
|
case C_wNoFamilyFound:
|
|
return 0;
|
|
|
|
case C_wMultipleFamiliesFound:
|
|
AfxMessageBox("PB : FamilyName are not unique !!!");
|
|
return 2;
|
|
|
|
default:
|
|
lIndex=lResultIndex;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
//ZDD
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
long fn_lIsAZdd(CString &csString,stReturn *pstReturn)
|
|
//long fn_lIsAZdd(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CString csObjectType;
|
|
long lIndex;
|
|
long lResult=fn_lIsAZdxOrAWay(csString,lIndex,csObjectType);
|
|
|
|
if(lResult!=1)
|
|
return lResult;
|
|
else
|
|
if(csObjectType==C_szZDdNameListType)
|
|
{
|
|
lIndex++;
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eZdd,lIndex);
|
|
|
|
return 1;
|
|
}
|
|
else
|
|
return 0;
|
|
}
|
|
//ANNECY CB
|
|
long fn_lIsAZdd(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_lIsAZdd(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ZDE
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
long fn_lIsAZde(CString &csString,stReturn *pstReturn)
|
|
//long fn_lIsAZde(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CString csObjectType;
|
|
long lIndex;
|
|
long lResult=fn_lIsAZdxOrAWay(csString,lIndex,csObjectType);
|
|
|
|
if(lResult!=1)
|
|
return lResult;
|
|
else
|
|
if(csObjectType==C_szZDeNameListType)
|
|
{
|
|
lIndex++;
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eZde,lIndex);
|
|
|
|
return 1;
|
|
}
|
|
else
|
|
return 0;
|
|
}
|
|
//ANNECY CB
|
|
long fn_lIsAZde(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_lIsAZde(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ZDM
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
long fn_lIsAZdm(CString &csString,stReturn *pstReturn)
|
|
//long fn_lIsAZdm(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CString csObjectType;
|
|
long lIndex;
|
|
long lResult=fn_lIsAZdxOrAWay(csString,lIndex,csObjectType);
|
|
|
|
if(lResult!=1)
|
|
return lResult;
|
|
else
|
|
if(csObjectType==C_szZDmNameListType)
|
|
{
|
|
lIndex++;
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eZdm,lIndex);
|
|
|
|
return 1;
|
|
}
|
|
else
|
|
return 0;
|
|
}
|
|
//ANNECY CB
|
|
long fn_lIsAZdm(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_lIsAZdm(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ZDM
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
long fn_lIsAZdr(CString &csString,stReturn *pstReturn)
|
|
//long fn_lIsAZdr(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CString csObjectType;
|
|
long lIndex;
|
|
long lResult=fn_lIsAZdxOrAWay(csString,lIndex,csObjectType);
|
|
|
|
if(lResult!=1)
|
|
return lResult;
|
|
else
|
|
if(csObjectType==C_szZDrNameListType)
|
|
{
|
|
lIndex++;
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eZdr,lIndex);
|
|
|
|
return 1;
|
|
}
|
|
else
|
|
return 0;
|
|
}
|
|
//ANNECY CB
|
|
long fn_lIsAZdr(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_lIsAZdr(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//***********************************************************************
|
|
void fn_vSplitName(CString csName,CString &csOwner,CString &csObject)
|
|
{
|
|
int iPos;
|
|
|
|
// extract object
|
|
iPos = csName.ReverseFind('@');
|
|
if (iPos != -1)
|
|
{
|
|
csObject = csName.Right(csName.GetLength()-iPos-1);
|
|
csOwner = csName.Left(iPos);
|
|
}
|
|
else
|
|
{
|
|
csObject = csName;
|
|
}
|
|
}
|
|
|
|
//Action
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAnAction(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAnAction(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
//Looks if it is a action of the current family
|
|
long lIndex=long(((EdActors_EditorActorModel *)g_pclCurrentModel->m_fn_pclGetEditorActor())->m_pclBrain->m_fn_pvGetStateHandle(csString));
|
|
|
|
if(lIndex!=NULL)
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eAction,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
{
|
|
CPA_BaseObject *pclOwner=NO_CRITERIA;
|
|
|
|
//Try to split action name
|
|
CString csFamily;
|
|
CString csAction;
|
|
fn_vSplitName(csString,csFamily,csAction);
|
|
|
|
if(!csFamily.IsEmpty())
|
|
pclOwner=g_pclAIInterface->GetMainWorld()->fn_p_oFindObject(M_MAKECHAR(csFamily),C_szFamilyTypeName);
|
|
|
|
//Looks in other family
|
|
CPA_List<CPA_BaseObject> clObjectLists;
|
|
long lNumActions=g_pclAIInterface->GetMainWorld()->fn_lFindObjects(&clObjectLists,M_MAKECHAR(csAction),C_szActionTypeName,pclOwner);
|
|
|
|
CPA_BaseObject *pclBaseObject=NULL;
|
|
|
|
if(lNumActions==1)
|
|
{
|
|
pclBaseObject=clObjectLists.GetHead();
|
|
|
|
if(pclBaseObject!=NULL)
|
|
{
|
|
if(pclBaseObject->fn_bIsAvailable()==FALSE)
|
|
pclBaseObject->GetEditor()->fn_bLoadBaseObject(pclBaseObject);
|
|
|
|
CPA_Action *pclAction=(CPA_Action *)pclBaseObject;
|
|
|
|
if(pclAction->mfn_p_oGetDefaultState()!=NULL)
|
|
{
|
|
lIndex=long(pclAction->mfn_p_oGetDefaultState()->GetData());
|
|
}
|
|
else
|
|
{
|
|
AfxMessageBox("The action \""+pclAction->GetName()+"\" has no Initial State !!!!");
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eAction,lIndex);
|
|
}
|
|
}
|
|
else
|
|
if(lNumActions>1)
|
|
{
|
|
AfxMessageBox("Conflict with "+csString+"\nTry to use FamilyName@ActionName");
|
|
}
|
|
|
|
return (pclBaseObject!=NULL);
|
|
}
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAnAction(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAnAction(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//WayPoint
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAWayPoint(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAWayPoint(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szWayPointTypeName,eWayPoint);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAWayPoint(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAWayPoint(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Channel
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAChannel(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAChannel(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_DLLBase *pclFamilyDLL=(CPA_DLLBase*)(g_pclAIInterface->GetMainWorld()->GetToolDLLWithName(C_szDLLFamilyName));
|
|
|
|
if(pclFamilyDLL!=NULL)
|
|
{
|
|
CString csFamilyName;
|
|
CString csChannelName;
|
|
fn_vSplitName(csString,csFamilyName,csChannelName);
|
|
|
|
tdstChannelInfoSearch stChannelInfo;
|
|
|
|
if(!csFamilyName.IsEmpty())
|
|
stChannelInfo.p_oFamily=(CPA_Family *)g_pclAIInterface->GetMainWorld()->fn_p_oFindObject(M_MAKECHAR(csFamilyName),C_szFamilyTypeName);
|
|
else
|
|
stChannelInfo.p_oFamily=NULL;
|
|
|
|
stChannelInfo.szChannel=(char *)LPCTSTR(csChannelName);
|
|
stChannelInfo.lIndexOfChannel=0;
|
|
|
|
if(pclFamilyDLL->OnQueryAction(g_pclAIInterface,C_uiGetChannel,(LPARAM)&stChannelInfo)==1)
|
|
{
|
|
long lIndex=stChannelInfo.lIndexOfChannel;
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eModule,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
if(pclFamilyDLL->OnQueryAction(g_pclAIInterface,C_uiGetChannel,(LPARAM)&stChannelInfo)==2)
|
|
{
|
|
AfxMessageBox("Conflict with "+csString+"\nTry to use FamilyName@ObjectName");
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAChannel(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAChannel(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Surface
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsASurface(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsASurface(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szSurfaceTypeName,eSurface);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsASurface(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsASurface(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Environment
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAEnvironment(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAEnvironment(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szEnvironmentTypeName,eEnvironment);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAEnvironment(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAEnvironment(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//LipSynchro
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsALipSynchro(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsALipSynchro(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_DLLBase *pclTLSDLL=(CPA_DLLBase*)(g_pclAIInterface->GetMainWorld()->GetToolDLLWithName(C_szLipSyncDLLName));
|
|
|
|
if(pclTLSDLL!=NULL)
|
|
{
|
|
csString+=".SYN";
|
|
|
|
tdstLipSyn_Info stLipSyn_Info;
|
|
stLipSyn_Info.pFamily=g_pclCurrentModel->m_pub_fn_pclGetFamily();
|
|
stLipSyn_Info.csName=csString;
|
|
|
|
CPA_SaveObject *pclLipSynchro;
|
|
pclLipSynchro=(CPA_SaveObject *)pclTLSDLL->OnQueryAction(g_pclAIInterface,C_uiLoadLipSynchro,(LPARAM)&stLipSyn_Info);
|
|
|
|
if(pclLipSynchro!=NULL)
|
|
{
|
|
long lIndex=long(pclLipSynchro->GetData());
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eLipSynchro,lIndex);
|
|
}
|
|
|
|
return (pclLipSynchro!=NULL);
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsALipSynchro(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsALipSynchro(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Sector
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsASector(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsASector(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_List<CPA_SuperObject> *pclList;
|
|
pclList=g_pclAIInterface->GetMainWorld()->GetInterface()->GetObjectListByType(C_szSectorTypeName);
|
|
|
|
CPA_SuperObject *pclSector=NULL;
|
|
BOOL bFound=FALSE;
|
|
if(pclList!=NULL)
|
|
{
|
|
POSITION pos=pclList->GetHeadPosition();
|
|
while(pos!=NULL && !bFound)
|
|
{
|
|
pclSector=pclList->GetNext(pos);
|
|
|
|
bFound=(pclSector->GetObject()->GetName().CompareNoCase(csString)==0);
|
|
}
|
|
|
|
if(bFound)
|
|
{
|
|
long lIndex=long(pclSector->GetData());
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eSector,lIndex);
|
|
}
|
|
}
|
|
|
|
return (bFound);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsASector(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsASector(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//SuperObject
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsASuperObject(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsASuperObject(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
//ANNECY VL 26/03/98{
|
|
//CPA_SuperObject *pclSuperObject=g_pclAIInterface->GetMainWorld()->GetInterface()->GetSuperObject("All Types",csString);
|
|
CPA_SuperObject *pclSuperObject = (CPA_SuperObject *) g_pclAIInterface->GetMainWorld()->fn_p_oFindObject( csString, "SuperObject" );
|
|
//ENDANNECY VL}
|
|
if(pclSuperObject!=NULL)
|
|
{
|
|
long lIndex=long(pclSuperObject->GetData());
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eSuperObject,lIndex);
|
|
}
|
|
|
|
return (pclSuperObject!=NULL);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsASuperObject(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsASuperObject(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ObjectTable
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAObjectTable(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAObjectTable(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szObjectTableTypeName,eObjectTable);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAObjectTable(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAObjectTable(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Family
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAFamily(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAFamily(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szFamilyTypeName,eFamily);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAFamily(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAFamily(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Model
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAModel(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAModel(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclBaseObject;
|
|
pclBaseObject=g_pclAIInterface->GetMainWorld()->fn_p_oFindObject(M_MAKECHAR(csString),C_szActorModelTypeName);
|
|
|
|
if(pclBaseObject!=NULL)
|
|
{
|
|
if(pclBaseObject->fn_bIsAvailable()==FALSE)
|
|
pclBaseObject->GetEditor()->fn_bLoadBaseObject(pclBaseObject);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eModel,(long)pclBaseObject);
|
|
}
|
|
|
|
return (pclBaseObject!=NULL);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAModel(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAModel(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//SoundEvent
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsASoundEvent(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsASoundEvent(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szSoundEventTypeName,eSoundEvent);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsASoundEvent(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsASoundEvent(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//GameMaterial
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAGameMaterial(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAGameMaterial(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szGameMaterialTypeName,eGameMaterial);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAGameMaterial(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAGameMaterial(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Light
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsALight(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsALight(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szLightTypeName,eLight);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsALight(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsALight(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsACaps(CString &csString, stReturn *pstReturn)
|
|
//BOOL fn_bIsACaps(CString csString, stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lStringLength = csString.GetLength();
|
|
if (lStringLength > 32)
|
|
return FALSE;
|
|
|
|
for (int i = 0 ; i < lStringLength ; i ++)
|
|
{
|
|
char cCharAt = csString.GetAt(i);
|
|
if ( (cCharAt != '0') && (cCharAt != '1') )
|
|
return FALSE;
|
|
}
|
|
|
|
char* dummy;
|
|
unsigned long ulData = strtoul(csString, &dummy, 2);
|
|
fn_vInitNode(pstReturn, g_clLex.m_lIndex, eCaps, (long)ulData);
|
|
|
|
return TRUE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsACaps(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsACaps(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAGraph(CString &csString, stReturn *pstReturn)
|
|
//BOOL fn_bIsAGraph(CString csString, stReturn *pstReturn)
|
|
//END
|
|
{
|
|
WP_tdHandleOfGraph hGraph = WPG_fn_hGetGraph(csString.GetBuffer(255));
|
|
if (hGraph != NULL)
|
|
{
|
|
fn_vInitNode(pstReturn, g_clLex.m_lIndex, eGraph, (long)hGraph);
|
|
}
|
|
|
|
return (hGraph != NULL);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAGraph(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAGraph(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
|
|
//
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsThisBehaviourIsUnique(CString &csString,CString &csBehaviourName,CPA_BaseObject **ppclModel)
|
|
//BOOL fn_bIsThisBehaviourIsUnique(CString csString,CString &csBehaviourName,CPA_BaseObject **ppclModel)
|
|
//END
|
|
{
|
|
//Checks for multiple name
|
|
CString csModelName;
|
|
fn_vSplitName(csString,csModelName,csBehaviourName);
|
|
|
|
*ppclModel=NO_CRITERIA;
|
|
if(!csModelName.IsEmpty())
|
|
{
|
|
*ppclModel=g_pclAIInterface->GetMainWorld()->fn_p_oFindObject(M_MAKECHAR(csModelName),C_szActorModelTypeName);
|
|
|
|
if(*ppclModel==NULL)
|
|
return FALSE;
|
|
}
|
|
|
|
CPA_List<CPA_BaseObject> clBehavioursList;
|
|
long lNumberOfBehaviours;
|
|
lNumberOfBehaviours=g_pclAIInterface->GetMainWorld()->fn_lFindObjects(&clBehavioursList,csBehaviourName,C_szIABehaviourTypeName,*ppclModel);
|
|
|
|
if(lNumberOfBehaviours==0)
|
|
return FALSE;
|
|
|
|
if(lNumberOfBehaviours>1)
|
|
{
|
|
if(csModelName.IsEmpty())
|
|
AfxMessageBox("Conflict with "+csString+"\nTry to use ModelName@BehaviourName");
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
if(*ppclModel==NO_CRITERIA)
|
|
*ppclModel=NULL;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
//Reflex Behaviour
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAReflexBehaviour(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAReflexBehaviour(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclModel;
|
|
|
|
//Checks for multiple name
|
|
CString csBehaviourName;
|
|
if(fn_bIsThisBehaviourIsUnique(csString,csBehaviourName,&pclModel))
|
|
{
|
|
//Checks if it is a reflex behaviour
|
|
if(pclModel!=NULL)
|
|
{
|
|
//The model is known
|
|
CPA_Actor *pclActorModel=(CPA_Actor *)pclModel;
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclActorModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
CPA_EdIR_MainBehaviourList *pclReflexList=&(pclBrain->m_clListOfReflexBehaviours);
|
|
|
|
if(pclReflexList->m_fn_bIsInList(csBehaviourName))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclReflexList->m_fn_pclGetMainBehaviour(csBehaviourName);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
long lIndex=(long)pclMainBehaviour;
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eRfxBehaviour,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
{
|
|
//Gets all models
|
|
CPA_List<CPA_BaseObject> clModelsList;
|
|
g_pclAIInterface->GetMainWorld()->fn_lFindObjects(&clModelsList,"",C_szActorModelTypeName,NO_CRITERIA);
|
|
|
|
POSITION pos=clModelsList.GetHeadPosition();
|
|
long lIndex=-1;
|
|
while(pos!=NULL && lIndex==-1)
|
|
{
|
|
CPA_Actor *pclModel=(CPA_Actor *)(clModelsList.GetNext(pos));
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
CPA_EdIR_MainBehaviourList *pclReflexList=&(pclBrain->m_clListOfReflexBehaviours);
|
|
|
|
if(pclReflexList->m_fn_bIsInList(csBehaviourName))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclReflexList->m_fn_pclGetMainBehaviour(csBehaviourName);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
lIndex=(long)pclMainBehaviour;
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eRfxBehaviour,lIndex);
|
|
}
|
|
}
|
|
|
|
return (lIndex!=-1);
|
|
}
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAReflexBehaviour(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAReflexBehaviour(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Intelligence Behaviour
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAIntelligenceBehaviour(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAIntelligenceBehaviour(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclModel;
|
|
|
|
//Checks for multiple name
|
|
CString csBehaviourName;
|
|
if(fn_bIsThisBehaviourIsUnique(csString,csBehaviourName,&pclModel))
|
|
{
|
|
//Checks if it is a reflex behaviour
|
|
if(pclModel!=NULL)
|
|
{
|
|
//The model is known
|
|
CPA_Actor *pclActorModel=(CPA_Actor *)pclModel;
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclActorModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
CPA_EdIR_MainBehaviourList *pclIntelligenceList=&(pclBrain->m_clListOfIntelligenceBehaviours);
|
|
|
|
if(pclIntelligenceList->m_fn_bIsInList(csBehaviourName))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclIntelligenceList->m_fn_pclGetMainBehaviour(csBehaviourName);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
long lIndex=(long)pclMainBehaviour;
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eIABehaviour,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
{
|
|
//Gets all models
|
|
CPA_List<CPA_BaseObject> clModelsList;
|
|
g_pclAIInterface->GetMainWorld()->fn_lFindObjects(&clModelsList,"",C_szActorModelTypeName,NO_CRITERIA);
|
|
|
|
POSITION pos=clModelsList.GetHeadPosition();
|
|
long lIndex=-1;
|
|
while(pos!=NULL && lIndex==-1)
|
|
{
|
|
CPA_Actor *pclModel=(CPA_Actor *)(clModelsList.GetNext(pos));
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
CPA_EdIR_MainBehaviourList *pclIntelligenceList=&(pclBrain->m_clListOfIntelligenceBehaviours);
|
|
|
|
if(pclIntelligenceList->m_fn_bIsInList(csBehaviourName))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclIntelligenceList->m_fn_pclGetMainBehaviour(csBehaviourName);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
lIndex=(long)pclMainBehaviour;
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eIABehaviour,lIndex);
|
|
}
|
|
}
|
|
|
|
return (lIndex!=-1);
|
|
}
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAIntelligenceBehaviour(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAIntelligenceBehaviour(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Reflex Behaviour (for me)
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsMyReflexBehaviour(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsMyReflexBehaviour(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclModel;
|
|
|
|
//Checks for multiple name
|
|
CString csBehaviourName;
|
|
if(fn_bIsThisBehaviourIsUnique(csString,csBehaviourName,&pclModel))
|
|
{
|
|
CPA_Actor *pclModel=g_pclCurrentModel;
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
CPA_EdIR_MainBehaviourList *pclReflexList=&(pclBrain->m_clListOfReflexBehaviours);
|
|
|
|
if(pclReflexList->m_fn_bIsInList(csBehaviourName))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclReflexList->m_fn_pclGetMainBehaviour(csBehaviourName);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
long lIndex=(long)pclMainBehaviour;
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eRfxBehaviour,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsMyReflexBehaviour(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsMyReflexBehaviour(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Intelligence Behaviour (for me)
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsMyIntelligenceBehaviour(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsMyIntelligenceBehaviour(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclModel;
|
|
|
|
//Checks for multiple name
|
|
CString csBehaviourName;
|
|
if(fn_bIsThisBehaviourIsUnique(csString,csBehaviourName,&pclModel))
|
|
{
|
|
CPA_Actor *pclModel=g_pclCurrentModel;
|
|
CPA_EdIR_Brain *pclBrain=((EdActors_EditorActorModel *)pclModel->m_fn_pclGetEditorActor())->m_pclBrain;
|
|
CPA_EdIR_MainBehaviourList *pclIntelligenceList=&(pclBrain->m_clListOfIntelligenceBehaviours);
|
|
|
|
if(pclIntelligenceList->m_fn_bIsInList(csBehaviourName))
|
|
{
|
|
CPA_EdIR_MainBehaviour *pclMainBehaviour=pclIntelligenceList->m_fn_pclGetMainBehaviour(csBehaviourName);
|
|
|
|
//Keeps the editor pointer
|
|
//Converts it to a engine pointer before engine start
|
|
long lIndex=(long)pclMainBehaviour;
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eIABehaviour,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsMyIntelligenceBehaviour(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsMyIntelligenceBehaviour(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//KeyButton
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAKeyButton(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAKeyButton(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=(long)IPT_fn_hGetEntryActionHandle(M_MAKECHAR(csString));
|
|
|
|
if(IPT_fn_bIsAValidEntryActionHandle((IPT_tdxHandleToEntryElement)lIndex))
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eKeyButton,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAKeyButton(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAKeyButton(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//Mask Type
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAMaskType(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAMaskType(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
CPA_BaseObject *pclMaskType;
|
|
pclMaskType=g_pclAIInterface->GetMainWorld()->fn_p_oFindObject(M_MAKECHAR(csString),C_szMaterialColName);
|
|
|
|
if(pclMaskType!=NULL)
|
|
{
|
|
if(pclMaskType->fn_bIsAvailable()==FALSE)
|
|
pclMaskType->GetEditor()->fn_bLoadBaseObject(pclMaskType);
|
|
|
|
long lIndex=(long)(*(unsigned char *)(pclMaskType->GetData()));
|
|
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eMaskType,lIndex);
|
|
}
|
|
|
|
return (pclMaskType!=NULL);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAMaskType(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAMaskType(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
#if 0
|
|
//Power
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAPower(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAPower(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
long lIndex=fn_uwGetPowerValueFromString(M_MAKECHAR(csString));
|
|
|
|
if(lIndex!=INV_C_uwNotValid)
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,ePower,lIndex);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAPower(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAPower(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
#endif //0 car inutilise dans RM2
|
|
|
|
//Text
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAText(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAText(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
FON_tdxHandleOfText hText = FON_fn_hGetTextHandleWithoutWarning(M_MAKECHAR(csString));
|
|
|
|
if ( hText != FON_C_xInvalidTextHandle )
|
|
{
|
|
fn_vInitNode(pstReturn,g_clLex.m_lIndex,eText,hText);
|
|
|
|
return TRUE;
|
|
}
|
|
else
|
|
return FALSE;
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAText(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAText(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//ParticleGenerator
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAParticleGenerator(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAParticleGenerator(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szPartGenGeneratorName,eParticleGenerator);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAParticleGenerator(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAParticleGenerator(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
//State
|
|
/****************************************************************************/
|
|
//ANNECY CB
|
|
BOOL fn_bIsAState(CString &csString,stReturn *pstReturn)
|
|
//BOOL fn_bIsAState(CString csString,stReturn *pstReturn)
|
|
//END
|
|
{
|
|
return fn_bIsAKnownEditorObject(csString,pstReturn,C_szStateTypeName,eState);
|
|
}
|
|
//ANNECY CB
|
|
BOOL fn_bIsAState(char *csString,stReturn *pstReturn)
|
|
{
|
|
CSTRING_EQ(gcsGlob, csString);
|
|
return fn_bIsAState(gcsGlob,pstReturn);
|
|
}
|
|
//END
|
|
|
|
/****************************************************************************/
|
|
void fn_vInitNode(stReturn *pstReturn,long lOffset,tdeNodeType eNodeType,long lIndex,CPA_Actor *pclModel)
|
|
{
|
|
pstReturn->clIntermediateCodeList=new CPA_EdIR_IntermediateCode(lOffset,eNodeType,lIndex,pclModel);
|
|
}
|
|
|
|
/****************************************************************************/
|
|
void fn_vInitNode(stReturn *pstReturn,long lOffset,tdeNodeType eNodeType,double dfValue)
|
|
{
|
|
pstReturn->clIntermediateCodeList=new CPA_EdIR_IntermediateCode(lOffset,eNodeType,dfValue);
|
|
}
|
|
|
|
/****************************************************************************/
|
|
void fn_vInitNode(stReturn *pstReturn,long lOffset,tdeNodeType eNodeType,CString csString)
|
|
{
|
|
pstReturn->clIntermediateCodeList=new CPA_EdIR_IntermediateCode(lOffset,eNodeType,csString);
|
|
}
|
|
|
|
/****************************************************************************/
|
|
CLex::~CLex()
|
|
{
|
|
if(yy_current_buffer)
|
|
yy_delete_buffer(yy_current_buffer);
|
|
}
|
|
|
|
/****************************************************************************/
|
|
void CLex::yyinit(char *szStringToParse,tdeTypeText eTypeText)
|
|
{
|
|
m_lIndex=0;
|
|
m_lOldIndex=0;
|
|
m_lIndexWithoutSpaceAndTab=0;
|
|
m_lOldMacroIndex=0;
|
|
m_bIsInMacro=FALSE;
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
m_bIsInDefine = FALSE;
|
|
m_clDefineList . RemoveAll ();
|
|
m_clDefineContextStack . m_fn_vDestroyAndRemoveAllEntries ();
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
|
|
m_eTypeText=eTypeText;
|
|
|
|
if(yy_current_buffer)
|
|
yyrestart(NULL);
|
|
m_pcIndex=szStringToParse;
|
|
|
|
if(m_eTypeText==DsgVarText)
|
|
BEGIN(DECL_DSG_VAR);
|
|
else
|
|
if(g_pclAIInterface->M_GetMainWorld()->GetInterface()->fn_csGetCurrentLanguage()=="French")
|
|
BEGIN(FRENCH);
|
|
else
|
|
BEGIN(ENGLISH);
|
|
}
|
|
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
void CPA_EdIR_DefineContextStack :: m_fn_vDestroyAndRemoveAllEntries (void)
|
|
{
|
|
POSITION pos=GetHeadPosition();
|
|
while(pos!=NULL)
|
|
delete GetNext(pos);
|
|
|
|
RemoveAll();
|
|
}
|
|
|
|
void CLex :: m_fn_vEnterContext (char *szStringToParse)
|
|
{
|
|
// get the current context
|
|
CPA_EdIR_DefineContext *pCurrentDefineContext = new CPA_EdIR_DefineContext ();
|
|
pCurrentDefineContext -> m_pcIndex = m_pcIndex;
|
|
pCurrentDefineContext -> m_bufLexContext = yy_current_buffer;
|
|
|
|
// push the current context
|
|
m_clDefineContextStack . AddTail (pCurrentDefineContext);
|
|
|
|
// build the new state
|
|
YY_BUFFER_STATE bufNewContext = yy_create_buffer (NULL, YY_BUF_SIZE);
|
|
|
|
// and activate it
|
|
m_pcIndex = szStringToParse;
|
|
yy_switch_to_buffer (bufNewContext);
|
|
}
|
|
|
|
void CLex :: m_fn_vExitContext (void)
|
|
{
|
|
// cleanup the current state
|
|
yy_delete_buffer (yy_current_buffer);
|
|
|
|
// pop the old context
|
|
CPA_EdIR_DefineContext *pOldDefineContext = m_clDefineContextStack . RemoveTail ();
|
|
|
|
// activate it
|
|
m_pcIndex = pOldDefineContext -> m_pcIndex;
|
|
yy_switch_to_buffer (pOldDefineContext -> m_bufLexContext);
|
|
|
|
// and clean
|
|
delete pOldDefineContext;
|
|
}
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
|
|
#endif //D_ED_IR_ACTIVE
|