You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2001/02/23 07:49:49 UTC
cvs commit: embperl epcomp.c epmain.c epparse.c
richter 01/02/22 22:49:49
Modified: . Tag: Embperl2c epcomp.c epmain.c epparse.c
Log:
Embperl 2 - multiple Syntaxes
Revision Changes Path
No revision
No revision
1.4.2.34 +38 -20 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.4.2.33
retrieving revision 1.4.2.34
diff -u -r1.4.2.33 -r1.4.2.34
--- epcomp.c 2001/02/05 11:18:53 1.4.2.33
+++ epcomp.c 2001/02/23 06:49:49 1.4.2.34
@@ -42,10 +42,13 @@
typedef struct tEmbperlCmd tEmbperlCmd ;
-
-tStringIndex nMaxEmbperlCmd ;
-struct tEmbperlCmd * pEmbperlCmds ;
+struct tEmbperlCompilerInfo
+ {
+ tStringIndex nMaxEmbperlCmd ;
+ tEmbperlCmd * pEmbperlCmds ;
+ } ;
+typedef struct tEmbperlCompilerInfo tEmbperlCompilerInfo ;
/* ------------------------------------------------------------------------ */
/* */
@@ -56,12 +59,20 @@
/* ------------------------------------------------------------------------ */
-int embperl_CompileInit (void)
+int embperl_CompileInit (/*out*/ tEmbperlCompilerInfo * * ppInfo)
{
- ArrayNew (&pEmbperlCmds, 256, sizeof (struct tEmbperlCmd)) ;
- ArraySet (&pEmbperlCmds, 0) ;
- nMaxEmbperlCmd = 1 ;
+ tEmbperlCompilerInfo * pInfo = malloc (sizeof (tEmbperlCompilerInfo)) ;
+
+ if (!pInfo)
+ return rcOutOfMemory ;
+
+
+
+ ArrayNew (&pInfo -> pEmbperlCmds, 256, sizeof (struct tEmbperlCmd)) ;
+ ArraySet (&pInfo -> pEmbperlCmds, 0) ;
+ pInfo -> nMaxEmbperlCmd = 1 ;
+ *ppInfo = pInfo ;
}
@@ -77,18 +88,26 @@
/*in*/ HV * pHash,
/*in*/ int nNodeName,
/*in*/ int nNodeType,
- /*in*/ int nTagSet)
+ /*in*/ int nTagSet,
+ /*in*/ void * * ppInfo)
{
SV * * ppSV ;
AV * pAV ;
tEmbperlCmd * pCmd ;
+ tEmbperlCompilerInfo * pInfo = (tEmbperlCompilerInfo *)*ppInfo ;
+
+ if (!pInfo)
+ embperlCompileInit ((tEmbperlCompilerInfo * *)ppInfo) ;
+ pInfo = (tEmbperlCompilerInfo *)*ppInfo ;
+
+
- ArraySet (&pEmbperlCmds, nNodeName) ;
- if (nMaxEmbperlCmd < nNodeName)
- nMaxEmbperlCmd = nNodeName ;
- pCmd = &pEmbperlCmds[nNodeName] ;
+ ArraySet (&pInfo -> pEmbperlCmds, nNodeName) ;
+ if (pInfo -> nMaxEmbperlCmd < nNodeName)
+ pInfo -> nMaxEmbperlCmd = nNodeName ;
+ pCmd = &pInfo -> pEmbperlCmds[nNodeName] ;
if (pCmd -> bValid)
{
@@ -198,12 +217,12 @@
pCmd -> nNodeType = nNodeType ;
pCmd -> pNext = NULL ;
- pEmbperlCmds[nNodeName].bRemoveNode |= pCmd -> bRemoveNode ;
- pEmbperlCmds[nNodeName].bPerlCodeRemove |= pCmd -> bPerlCodeRemove ;
+ pInfo -> pEmbperlCmds[nNodeName].bRemoveNode |= pCmd -> bRemoveNode ;
+ pInfo -> pEmbperlCmds[nNodeName].bPerlCodeRemove |= pCmd -> bPerlCodeRemove ;
if (pCmd -> nSwitchCodeType)
- pEmbperlCmds[nNodeName].nSwitchCodeType = pCmd -> nSwitchCodeType ;
+ pInfo -> pEmbperlCmds[nNodeName].nSwitchCodeType = pCmd -> nSwitchCodeType ;
if (pCmd -> sMayJump && !pEmbperlCmds[nNodeName].sMayJump)
- pEmbperlCmds[nNodeName].sMayJump = pCmd -> sMayJump ;
+ pInfo -> pEmbperlCmds[nNodeName].sMayJump = pCmd -> sMayJump ;
if (r -> bDebug & dbgParse)
lprintf (r, "[%d]EPCOMP: InitItem %s (#%d) perlcode=%s (num=%d) perlcodeend=%s\n",
@@ -1125,6 +1144,7 @@
int nAttr = 0 ;
int nStartCodeOffset = 0 ;
int nCheckpointCodeOffset = 0 ;
+ tEmbperlCompilerInfo * pInfo = (tEmbperlCompilerInfo *)(r -> pTokenTable -> pCompilerInfo) ;
if (pCurrReq -> bDebug & dbgParse)
@@ -1135,9 +1155,9 @@
nNdx = Node_selfNodeNameNdx (pNode) ;
- if (nNdx <= nMaxEmbperlCmd)
+ if (nNdx <= pInfo -> nMaxEmbperlCmd)
{
- pCmd = pCmdHead = &pEmbperlCmds[nNdx] ;
+ pCmd = pCmdHead = &pInfo -> EmbperlCmds[nNdx] ;
//??if (pCmd -> nNodeType != pNode -> nType)
// pCmd = NULL ;
}
@@ -2158,5 +2178,3 @@
}
-
-
1.75.4.22 +1 -1 embperl/epmain.c
Index: epmain.c
===================================================================
RCS file: /home/cvs/embperl/epmain.c,v
retrieving revision 1.75.4.21
retrieving revision 1.75.4.22
diff -u -r1.75.4.21 -r1.75.4.22
--- epmain.c 2000/12/19 09:11:03 1.75.4.21
+++ epmain.c 2001/02/23 06:49:49 1.75.4.22
@@ -1583,7 +1583,7 @@
#ifdef EP2
DomInit () ;
- embperl_CompileInit () ;
+ //embperl_CompileInit () ;
if ((pTokenHash = perl_get_hv (sTokenHashName, TRUE)) == NULL)
1.4.2.5 +10 -9 embperl/Attic/epparse.c
Index: epparse.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epparse.c,v
retrieving revision 1.4.2.4
retrieving revision 1.4.2.5
diff -u -r1.4.2.4 -r1.4.2.5
--- epparse.c 2000/10/18 06:51:47 1.4.2.4
+++ epparse.c 2001/02/23 06:49:49 1.4.2.5
@@ -45,6 +45,7 @@
int numTokens ; /* number of tokens in above table */
int bLSearch ; /* when set perform a linear, instead of a binary search */
struct tToken * pContainsToken ;/* pointer to the token that has a pContains defined (could be only one per table) */
+ void * pCompierInfo ; /* stores tables of the compiler */
} ;
@@ -96,7 +97,8 @@
int CheckProcInfo (/*i/o*/ register req * r,
/*in*/ HV * pHash,
- /*in*/ struct tToken * pToken)
+ /*in*/ struct tToken * pToken,
+ /*in*/ struct tTokenTable * pTokenTable)
{
@@ -137,9 +139,9 @@
}
if (strcmp (pKey, "embperl") == 0)
- embperl_CompileInitItem (r, (HV *)(SvRV (pSVValue)), pToken -> nNodeName, pToken -> nNodeType, 1) ;
+ embperl_CompileInitItem (r, (HV *)(SvRV (pSVValue)), pToken -> nNodeName, pToken -> nNodeType, 1, &pTokenTable -> pCompilerInfo) ;
else if (strncmp (pKey, "embperl#", 8) == 0 && (n = atoi (pKey+8)) > 0)
- embperl_CompileInitItem (r, (HV *)(SvRV (pSVValue)), pToken -> nNodeName, pToken -> nNodeType, n) ;
+ embperl_CompileInitItem (r, (HV *)(SvRV (pSVValue)), pToken -> nNodeName, pToken -> nNodeType, n, &pTokenTable -> pCompilerInfo) ;
}
}
@@ -339,7 +341,8 @@
if (r -> bDebug & dbgBuildToken)
- lprintf (r, "[%d]TOKEN: %s ... %s unesc=%d nodetype=%d, cdatatype=%d, nodename=%s\n", r -> nPid, p -> sText, p -> pContains?sContains:p -> sEndText, p -> bUnescape, p -> nNodeType, p -> nCDataType, p -> sNodeName?p -> sNodeName:"<null>") ;
+ lprintf (r, "[%d]TOKEN: %s ... %s unesc=%d nodetype=%d, cdatatype=%d, nodename=%s\n", r -> nPid, p -> sText, p -> pContains?sContains:p -> sEndText, p -> bUnescape, p -> nNodeType, p -> nCDataType, p -> sNodeName?p -> sNodeName:"<nul
+l>") ;
if (p -> sNodeName)
p -> nNodeName = String2Ndx (p -> sNodeName, strlen (p -> sNodeName)) ;
@@ -347,7 +350,7 @@
p -> nNodeName = String2Ndx (p -> sText, strlen (p -> sText)) ;
- if ((rc = CheckProcInfo (r, pHash, p)) != ok)
+ if ((rc = CheckProcInfo (r, pHash, p, pTokenTable)) != ok)
return rc ;
@@ -607,7 +610,8 @@
level-- ;
}
/* add token as node */
- if (!(xNewNode = Node_appendChild (pDomTree, pToken -> nNodeType, (nCDataType == ntypAttrValue && pToken -> nNodeType != ntypAttr)?(pToken -> nForceType?2:1):0, pNodeName, strlen (pNodeName), xParentNode, level, GetLineNoOf (r, pCurrTokenStart))))
+ if (!(xNewNode = Node_appendChild (pDomTree, pToken -> nNodeType, (nCDataType == ntypAttrValue && pToken -> nNodeType != ntypAttr)?(pToken -> nForceType?2:1):0, pNodeName, strlen (pNodeName), xParentNode, level, GetLineNoOf (r, pC
+urrTokenStart))))
{
r -> Buf.pCurrPos = pCurrTokenStart ;
@@ -744,6 +748,3 @@
return ok ;
}
-
-
-