summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2005-06-03 07:56:41 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:17:26 -0500
commit65d685c722ecf51bf84bb24af66c1f30c33b3b96 (patch)
treec8879021519c2a2d28be761e8cea4393e5b33d04
parent0253adcab3157ec73cc96ad74b19faa2c87e067a (diff)
downloadsamba-65d685c722ecf51bf84bb24af66c1f30c33b3b96.tar.gz
samba-65d685c722ecf51bf84bb24af66c1f30c33b3b96.tar.bz2
samba-65d685c722ecf51bf84bb24af66c1f30c33b3b96.zip
r7214: Undo my interpreter patch. Tridge thought of a much better way to do it
that doesn't involve any changes to ejs at all. (This used to be commit 7b49711ecb87e8618be5ae934ffed5995408b748)
-rw-r--r--source4/lib/ejs/ejs.c4
-rw-r--r--source4/lib/ejs/ejsInternal.h5
-rw-r--r--source4/lib/ejs/ejsLex.c20
-rw-r--r--source4/lib/ejs/ejsParser.c27
4 files changed, 4 insertions, 52 deletions
diff --git a/source4/lib/ejs/ejs.c b/source4/lib/ejs/ejs.c
index d0eaf6e389..41af795370 100644
--- a/source4/lib/ejs/ejs.c
+++ b/source4/lib/ejs/ejs.c
@@ -418,10 +418,8 @@ int ejsEvalScript(EjsId eid, char *script, MprVar *vp, char **emsg)
endlessLoopTest = NULL;
ep->exitStatus = 0;
- ejsParse(ep, EJS_STATE_BEGIN, EJS_FLAGS_EXE); /* Skip over #! */
-
do {
- state = ejsParse(ep, EJS_STATE_STMT, EJS_FLAGS_EXE);
+ state = ejsParse(ep, EJS_STATE_BEGIN, EJS_FLAGS_EXE);
if (state == EJS_STATE_RET) {
state = EJS_STATE_EOF;
diff --git a/source4/lib/ejs/ejsInternal.h b/source4/lib/ejs/ejsInternal.h
index 2f776b8b79..4d54c4e8c6 100644
--- a/source4/lib/ejs/ejsInternal.h
+++ b/source4/lib/ejs/ejsInternal.h
@@ -100,7 +100,7 @@ extern "C" {
#define EJS_TOK_IN 26 /* in */
#define EJS_TOK_FUNCTION 27 /* function */
#define EJS_TOK_NUMBER 28 /* Number */
-#define EJS_TOK_HASHBANG 29 /* #!/path/to/interpreter */
+
/*
* Expression operators
*/
@@ -150,7 +150,8 @@ extern "C" {
#define EJS_STATE_DEC 18 /* Declaration statement */
#define EJS_STATE_DEC_DONE 19
#define EJS_STATE_RET 20 /* Return statement */
-#define EJS_STATE_BEGIN 21 /* Start of script */
+
+#define EJS_STATE_BEGIN EJS_STATE_STMT
/*
* General parsing flags.
diff --git a/source4/lib/ejs/ejsLex.c b/source4/lib/ejs/ejsLex.c
index 81f56b092e..b0d6483c2a 100644
--- a/source4/lib/ejs/ejsLex.c
+++ b/source4/lib/ejs/ejsLex.c
@@ -674,26 +674,6 @@ static int getLexicalToken(Ejs *ep, int state)
inputPutback(ep, c);
return EJS_TOK_NUMBER;
- case '#':
- if (ip->lineNumber == 1) {
- if ((c = inputGetc(ep)) < 0) {
- ejsError(ep, "Syntax Error");
- return EJS_TOK_ERR;
- }
- if (c != '!') {
- ejsError(ep, "Syntax Error");
- return EJS_TOK_ERR;
- }
- while ((c = inputGetc(ep)) != -1) {
- if (c == '\r' || c == '\n')
- break;
- tokenAddChar(ep, c);
- }
- return EJS_TOK_HASHBANG;
- }
-
- /* Fall through to default handling */
-
default:
/*
* Identifiers or a function names
diff --git a/source4/lib/ejs/ejsParser.c b/source4/lib/ejs/ejsParser.c
index 942b08272e..17fe0ce98a 100644
--- a/source4/lib/ejs/ejsParser.c
+++ b/source4/lib/ejs/ejsParser.c
@@ -67,7 +67,6 @@ static int parseId(Ejs *ep, int state, int flags, char **id,
static int parseInc(Ejs *ep, int state, int flags);
static int parseIf(Ejs *ep, int state, int flags, int *done);
static int parseStmt(Ejs *ep, int state, int flags);
-static int parseHashBang(Ejs *ep, int state, int flags);
static void removeNewlines(Ejs *ep, int state);
static void updateResult(Ejs *ep, int state, int flags, MprVar *vp);
@@ -82,12 +81,6 @@ int ejsParse(Ejs *ep, int state, int flags)
switch (state) {
/*
- * The very start of a script.
- */
- case EJS_STATE_BEGIN:
- state = parseHashBang(ep, state, flags);
- break;
- /*
* Any statement, function arguments or conditional expressions
*/
case EJS_STATE_STMT:
@@ -149,26 +142,6 @@ int ejsParse(Ejs *ep, int state, int flags)
/******************************************************************************/
/*
- * Parse a #!/path/to/interpreter line which we just throw away.
- */
-
-static int parseHashBang(Ejs *ep, int state, int flags)
-{
- int tid;
-
- /* Look for #! */
-
- tid = ejsLexGetToken(ep, state);
-
- if (tid != EJS_TOK_HASHBANG) {
- ejsLexPutbackToken(ep, tid, ep->token);
- }
-
- return EJS_STATE_STMT;
-}
-
-/******************************************************************************/
-/*
* Parse any statement including functions and simple relational operations
*/