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 ;
       }
  -
  -
  -