[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/goahead/server/ejIntrn.h b/ap/app/goahead/server/ejIntrn.h
new file mode 100755
index 0000000..1f1bf93
--- /dev/null
+++ b/ap/app/goahead/server/ejIntrn.h
@@ -0,0 +1,185 @@
+#ifndef _h_EJINTERNAL
+#define _h_EJINTERNAL 1
+
+#include	<ctype.h>
+#include	<stdarg.h>
+#include	<stdlib.h>
+
+#ifdef CE
+#ifndef UEMF
+	#include	<io.h>
+#endif
+#endif
+
+#ifdef LYNX
+	#include	<unistd.h>
+#endif
+
+#ifdef QNX4
+	#include	<dirent.h>
+#endif
+
+#ifdef UEMF
+	#include	"uemf.h"
+#else
+	#include	<param.h>
+	#include	<stat.h>
+	#include	"basic/basicInternal.h"
+	#include	"emf/emfInternal.h"
+#endif
+
+#include		"ej.h"
+
+#define EJ_OFFSET			1		
+#define EJ_MAX_RECURSE		100		
+
+#define EJ_INC				110		
+#define EJ_SCRIPT_INC		1023	
+
+
+
+#define TOK_ERR				-1		
+#define TOK_LPAREN			1		
+#define TOK_RPAREN			2		
+#define TOK_IF				3		
+#define TOK_ELSE			4		
+#define TOK_LBRACE			5		
+#define TOK_RBRACE			6		
+#define TOK_LOGICAL			7		
+#define TOK_EXPR			8		
+#define TOK_SEMI			9		
+#define TOK_LITERAL			10		
+#define TOK_FUNCTION		11		
+#define TOK_NEWLINE			12		
+#define TOK_ID				13		
+#define TOK_EOF				14		
+#define TOK_COMMA			15		
+#define TOK_VAR				16		
+#define TOK_ASSIGNMENT		17		
+#define TOK_FOR				18		
+#define TOK_INC_DEC			19		
+#define TOK_RETURN			20		
+
+#define COND_AND			1		
+#define COND_OR				2		
+#define COND_NOT			3	
+
+#define EXPR_LESS			1		
+#define EXPR_LESSEQ			2		
+#define EXPR_GREATER		3		
+#define EXPR_GREATEREQ		4		
+#define EXPR_EQ				5		
+#define EXPR_NOTEQ			6		
+#define EXPR_PLUS			7		
+#define EXPR_MINUS			8		
+#define EXPR_DIV			9		
+#define EXPR_MOD			10		
+#define EXPR_LSHIFT			11		
+#define EXPR_RSHIFT			12		
+#define EXPR_MUL			13		
+#define EXPR_ASSIGNMENT		14		
+#define EXPR_INC			15		
+#define EXPR_DEC			16		
+#define EXPR_BOOL_COMP		17		
+
+
+#define STATE_ERR				-1			
+#define STATE_EOF				1			
+#define STATE_COND				2			
+#define STATE_COND_DONE			3
+#define STATE_RELEXP			4			
+#define STATE_RELEXP_DONE		5
+#define STATE_EXPR				6			
+#define STATE_EXPR_DONE			7
+#define STATE_STMT				8			
+#define STATE_STMT_DONE			9
+#define STATE_STMT_BLOCK_DONE	10			
+#define STATE_ARG_LIST			11			
+#define STATE_ARG_LIST_DONE		12
+#define STATE_DEC_LIST			16			
+#define STATE_DEC_LIST_DONE		17
+#define STATE_DEC				18
+#define STATE_DEC_DONE			19
+#define STATE_RET				20			
+#define STATE_BEGIN				STATE_STMT
+
+#define FLAGS_EXE				0x1				
+#define FLAGS_VARIABLES			0x2				
+#define FLAGS_FUNCTIONS			0x4				
+
+
+typedef struct {
+	char_t		*fname;							
+	char_t		**args;							
+	int			nArgs;							/* Number of args */
+} ejfunc_t;
+
+typedef struct ejEval {
+	ringq_t		tokbuf;							
+	ringq_t		script;							/* Input script for parsing */
+	char_t		*putBackToken;					
+	int			putBackTokenId;					
+	char_t		*line;							
+	int			lineLength;						
+	int			lineNumber;						
+	int			lineColumn;						
+} ejinput_t;
+
+typedef struct ej {
+	ejinput_t	*input;							
+	sym_fd_t	functions;						
+	sym_fd_t	*variables;						
+	int			variableMax;					
+	ejfunc_t	*func;							
+	char_t		*result;						
+	char_t		*error;							
+	char_t		*token;							
+	int			tid;							/* Current token id */
+	int			eid;							/* Halloc handle */
+	int			flags;							
+	int			userHandle;						/* User defined handle */
+} ej_t;
+
+extern int		ejOpenBlock(int eid);
+extern int		ejCloseBlock(int eid, int vid);
+extern char_t	*ejEvalBlock(int eid, char_t *script, char_t **emsg);
+#ifndef __NO_EJ_FILE
+extern char_t	*ejEvalFile(int eid, char_t *path, char_t **emsg);
+#endif
+extern int		ejRemoveGlobalFunction(int eid, char_t *name);
+extern void		*ejGetGlobalFunction(int eid, char_t *name);
+extern int 		ejSetGlobalFunctionDirect(sym_fd_t functions, char_t *name, 
+					int (*fn)(int eid, void *handle, int argc, char_t **argv));
+extern void 	ejError(ej_t* ep, char_t* fmt, ...);
+extern void		ejSetUserHandle(int eid, int handle);
+extern int		ejGetUserHandle(int eid);
+extern int		ejGetLineNumber(int eid);
+extern char_t	*ejGetResult(int eid);
+extern void		ejSetLocalVar(int eid, char_t *var, char_t *value);
+extern void		ejSetGlobalVar(int eid, char_t *var, char_t *value);
+
+extern int 		ejLexOpen(ej_t* ep);
+extern void 	ejLexClose(ej_t* ep);
+extern int	 	ejLexOpenScript(ej_t* ep, char_t *script);
+extern void 	ejLexCloseScript(ej_t* ep);
+extern void 	ejLexSaveInputState(ej_t* ep, ejinput_t* state);
+extern void 	ejLexFreeInputState(ej_t* ep, ejinput_t* state);
+extern void 	ejLexRestoreInputState(ej_t* ep, ejinput_t* state);
+extern int		ejLexGetToken(ej_t* ep, int state);
+extern void		ejLexPutbackToken(ej_t* ep, int tid, char_t *string);
+
+extern int ejEmfDbRead(int eid, void *handle, int argc, char_t **argv);
+extern int ejEmfDbReadKeyed(int eid, void *handle, int argc, char_t **argv);
+extern int ejEmfDbTableGetNrow(int eid, void *handle, int argc, char_t **argv);
+extern int ejEmfDbDeleteRow(int eid, void *handle, int argc, char_t **argv);
+extern int ejEmfTrace(int eid, void *handle, int argc, char_t **argv);
+extern int ejEmfDbWrite(int eid, void *handle, int argc, char_t **argv);
+extern int ejEmfDbCollectTable(int eid, void *handle, int argc, char_t **argv);
+
+extern sym_fd_t	ejGetVariableTable(int eid);
+extern sym_fd_t	ejGetFunctionTable(int eid);
+
+extern int		ejEmfOpen(int eid);
+extern void		ejEmfClose(int eid);
+#endif /* _h_EJINTERNAL */
+