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/10/30 10:05:55 UTC
cvs commit: embperl/test/html if.htm table.htm
richter 01/10/30 01:05:55
Modified: . Tag: Embperl2c epdom.c epdom.h
test/cmp Tag: Embperl2c table.htm
test/html Tag: Embperl2c if.htm table.htm
Log:
Embperl 2 - tree structure rewrite
Revision Changes Path
No revision
No revision
1.4.2.62 +84 -21 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.4.2.61
retrieving revision 1.4.2.62
diff -u -r1.4.2.61 -r1.4.2.62
--- epdom.c 2001/10/29 20:07:12 1.4.2.61
+++ epdom.c 2001/10/30 09:05:54 1.4.2.62
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epdom.c,v 1.4.2.61 2001/10/29 20:07:12 richter Exp $
+# $Id: epdom.c,v 1.4.2.62 2001/10/30 09:05:54 richter Exp $
#
###################################################################################*/
@@ -1161,6 +1161,8 @@
pRunNode -> xPrev = pPrevNode -> xNdx ;
pPrevNode -> xNext = pRunNode -> xNdx ;
+ pRunNode -> bFlags |= nflgNewLevelPrev ;
+ pPrevNode -> bFlags |= nflgNewLevelNext ;
if (pCurrReq -> bDebug & dbgCheckpoint)
lprintf (pCurrReq, "[%d]Checkpoint: jump forward DomTree=%d Index=%d Node=%d(%d) Line=%d -> Index=%d Node=%d(%d) Line=%d SVs=%d\n",
@@ -1183,6 +1185,8 @@
pRunNode -> xPrev = pPrevNode -> xNdx ;
pPrevNode -> xNext = pRunNode -> xNdx ;
pPrevNode -> xChilds = 0 ;
+ pRunNode -> bFlags |= nflgNewLevelPrev ;
+ pPrevNode -> bFlags |= nflgNewLevelNext ;
if (pCurrReq -> bDebug & dbgCheckpoint)
lprintf (pCurrReq, "[%d]Checkpoint: jump forward last child DomTree=%d Index=%d Node=%d(%d) Line=%d -> Index=%d Node=%d(%d) Line=%d SVs=%d\n",
@@ -1200,6 +1204,8 @@
pCompileParent = Node_selfCondCloneNode (pDomTree, pCompileParent, r -> nCurrRepeatLevel) ;
pRunParent -> xPrev = pCompileParent -> xNdx ;
pCompileParent -> xNext = pRunParent -> xNdx ;
+ pRunParent -> bFlags |= nflgNewLevelPrev ;
+ pCompileParent -> bFlags |= nflgNewLevelNext ;
}
else
{
@@ -1207,17 +1213,22 @@
int nRun = Attr_selfAttrNum(((tAttrData *)pRunParent)) ;
int i ;
+ pCompileParent2 = Node_selfLevel (pDomTree, pCompileParent2 -> xNdx, r -> nCurrRepeatLevel) ;
pCompileParent2 = Node_selfCondCloneNode (pDomTree, pCompileParent2, r -> nCurrRepeatLevel) ;
for (i = nRun - 1 ; i > nCompile; i--)
{
- tAttrData * pAttr = Element_selfGetNthAttribut (pDomTree, pCompileParent2, i) ;
- /* lprintf (r, "remove attr #%d flags=%x node=%d\n", i, pAttr -> bFlags, pAttr ->xNdx) ; */
+ if (pCurrReq -> bDebug & dbgCheckpoint)
+ {
+ tAttrData * pAttr = Element_selfGetNthAttribut (pDomTree, pCompileParent2, i) ;
+ lprintf (r, "[%d]Checkpoint: remove attr #%d flags=%x attr=%d node=%d\n", pCurrReq -> nPid, i, pAttr -> bFlags, pAttr ->xNdx, pCompileParent2 -> xNdx) ;
+ }
Element_selfRemoveNthAttribut (pDomTree, pCompileParent2, r -> nCurrRepeatLevel, i) ;
}
}
pPrevNode -> xNext = Node_selfFirstChild (pDomTree, pCompileParent, r -> nCurrRepeatLevel) -> xNdx ;
+ pPrevNode -> bFlags |= nflgNewLevelNext ;
if (pCurrReq -> bDebug & dbgCheckpoint)
lprintf (pCurrReq, "[%d]Checkpoint: jump forward2 DomTree=%d Index=%d Node=%d(%d),%d,%d Line=%d -> Index=%d Node=%d(%d),%d,%d Line=%d SVs=%d\n",
pCurrReq -> nPid, r -> xCurrDomTree, nCompileCheckpoint,
@@ -1261,6 +1272,7 @@
tNodeData * pCompileParent = NodeAttr_selfParentNode (pDomTree, pCompileNode, r -> nCurrRepeatLevel) ;
tNodeData * pRunParent = NodeAttr_selfParentNode (pDomTree, pRunNode, r -> nCurrRepeatLevel) ;
+ tNodeData * pRunParent2 = NodeAttr_selfParentNode (pDomTree, pRunParent, r -> nCurrRepeatLevel) ;
if (pPrevNode)
pPrevNode = Node_selfCondCloneNode (pDomTree, pPrevNode, r -> nCurrRepeatLevel) ;
@@ -1277,6 +1289,8 @@
pRunNode -> xPrev = pPrevNode -> xNdx ;
pPrevNode -> xNext = pRunNode -> xNdx ;
+ pRunNode -> bFlags |= nflgNewLevelPrev ;
+ pPrevNode -> bFlags |= nflgNewLevelNext ;
if (pCurrReq -> bDebug & dbgCheckpoint)
lprintf (pCurrReq, "[%d]Checkpoint: jump backward DomTree=%d Index=%d Node=%d RepeatLevel=%d Line=%d -> Index=%d Node=%d Line=%d SVs=%d\n", pCurrReq -> nPid, r -> xCurrDomTree, nCompileCheckpoint, pPrevNode -> xNdx, r -> nCurrRepeatLevel, pPrevNode -> nLinenumber, nRunCheckpoint, pRunNode -> xNdx, pRunNode -> nLinenumber, sv_count) ;
@@ -1284,7 +1298,6 @@
}
else if (xNode_selfLevelNull(pDomTree,pPrevNode) == xNode_selfLevelNull(pDomTree,pRunParent))
{
- /*
if (pCurrReq -> bDebug & dbgCheckpoint)
lprintf (pCurrReq, "[%d]Checkpoint: jump backward2 DomTree=%d Index=%d Node=%d(%d),%d(%d) Line=%d -> Index=%d Node=%d(%d),%d(%d) Line=%d SVs=%d\n",
pCurrReq -> nPid, r -> xCurrDomTree,
@@ -1294,7 +1307,6 @@
nRunCheckpoint, pRunNode -> xNdx, xNode_selfLevelNull(pDomTree,pRunNode),
pRunParent -> xNdx, xNode_selfLevelNull(pDomTree,pRunParent),
pRunNode -> nLinenumber, sv_count) ;
- */
pPrevNode = Node_selfLastChild (pDomTree, pPrevNode, r -> nCurrRepeatLevel) ;
pPrevNode = Node_selfCondCloneNode (pDomTree, pPrevNode, r -> nCurrRepeatLevel) ;
@@ -1303,6 +1315,8 @@
pRunNode = Node_selfCondCloneNode (pDomTree, pRunNode, r -> nCurrRepeatLevel) ;
pRunNode -> xPrev = pPrevNode -> xNdx ;
pPrevNode -> xNext = pRunNode -> xNdx ;
+ pRunNode -> bFlags |= nflgNewLevelPrev ;
+ pPrevNode -> bFlags |= nflgNewLevelNext ;
pCheckpointStatus -> xJumpFromNode = pPrevNode -> xNdx ;
pCheckpointStatus -> xJumpToNode = pRunNode -> xNdx ;
@@ -1313,6 +1327,38 @@
nRunCheckpoint, pRunNode -> xNdx, xNode_selfLevelNull(pDomTree,pRunNode), pRunNode -> nLinenumber, sv_count) ;
}
+ else if (xNode_selfLevelNull(pDomTree,pPrevNode) == xNode_selfLevelNull(pDomTree,pRunParent2))
+ {
+ if (pCurrReq -> bDebug & dbgCheckpoint)
+ lprintf (pCurrReq, "[%d]Checkpoint: jump backward2 DomTree=%d Index=%d Node=%d(%d),%d(%d) Line=%d -> Index=%d Node=%d(%d),%d(%d) Line=%d SVs=%d\n",
+ pCurrReq -> nPid, r -> xCurrDomTree,
+ nCompileCheckpoint, pPrevNode -> xNdx, xNode_selfLevelNull(pDomTree,pPrevNode),
+ pCompileParent -> xNdx, xNode_selfLevelNull(pDomTree,pCompileParent),
+ pPrevNode -> nLinenumber,
+ nRunCheckpoint, pRunNode -> xNdx, xNode_selfLevelNull(pDomTree,pRunNode),
+ pRunParent -> xNdx, xNode_selfLevelNull(pDomTree,pRunParent),
+ pRunNode -> nLinenumber, sv_count) ;
+ pPrevNode = Node_selfLastChild (pDomTree, pPrevNode, r -> nCurrRepeatLevel) ;
+ pPrevNode = Node_selfLastChild (pDomTree, pPrevNode, r -> nCurrRepeatLevel) ;
+ pPrevNode = Node_selfCondCloneNode (pDomTree, pPrevNode, r -> nCurrRepeatLevel) ;
+
+ r -> nCurrRepeatLevel++ ;
+
+ pRunNode = Node_selfCondCloneNode (pDomTree, pRunNode, r -> nCurrRepeatLevel) ;
+ pRunNode -> xPrev = pPrevNode -> xNdx ;
+ pPrevNode -> xNext = pRunNode -> xNdx ;
+ pRunNode -> bFlags |= nflgNewLevelPrev ;
+ pPrevNode -> bFlags |= nflgNewLevelNext ;
+ pCheckpointStatus -> xJumpFromNode = pPrevNode -> xNdx ;
+ pCheckpointStatus -> xJumpToNode = pRunNode -> xNdx ;
+
+ if (pCurrReq -> bDebug & dbgCheckpoint)
+ lprintf (pCurrReq, "[%d]Checkpoint: jump backward last child 2 DomTree=%d Index=%d Node=%d(%d) RepeatLevel=%d Line=%d -> Index=%d Node=%d(%d) Line=%d SVs=%d\n",
+ pCurrReq -> nPid, r -> xCurrDomTree,
+ nCompileCheckpoint, pPrevNode -> xNdx, xNode_selfLevelNull(pDomTree,pPrevNode), r -> nCurrRepeatLevel, pPrevNode -> nLinenumber,
+ nRunCheckpoint, pRunNode -> xNdx, xNode_selfLevelNull(pDomTree,pRunNode), pRunNode -> nLinenumber, sv_count) ;
+
+ }
else
{
if (pCurrReq -> bDebug & dbgCheckpoint)
@@ -1516,6 +1562,7 @@
{
tRepeatLevelLookup * pLookupLevelNode ;
+ tLookupItem * pLookup ;
pLookupLevelNode = pDomTree -> pLookup[xNode].pLookupLevel ;
if (pLookupLevelNode)
@@ -1523,7 +1570,13 @@
register tRepeatLevelLookupItem * pLookupLevelNodeLevel = &pLookupLevelNode -> items[nLevel & pLookupLevelNode -> nMask] ;
register tNodeData * pLnNode = pLookupLevelNodeLevel -> pNode ;
if (!pLnNode)
- return ((struct tNodeData *)(DomTree_self(pDomTree -> xSourceNdx) -> pLookup[xNode].pLookup)) ;
+ {
+ pLookup = DomTree_self(pDomTree -> xSourceNdx) -> pLookup ;
+ if (ArrayGetSize(pLookup) > xNode)
+ return ((struct tNodeData *)(pLookup[xNode].pLookup)) ;
+ else
+ return ((struct tNodeData *)(pDomTree -> pLookup[xNode].pLookup)) ;
+ }
if (pLnNode -> nRepeatLevel == nLevel)
return pLnNode ;
while (pLookupLevelNodeLevel = pLookupLevelNodeLevel -> pNext)
@@ -1534,8 +1587,12 @@
}
}
+
+ pLookup = DomTree_self(pDomTree -> xSourceNdx) -> pLookup ;
+ if (ArrayGetSize(pLookup) > xNode)
+ return ((struct tNodeData *)(pLookup[xNode].pLookup)) ;
- return ((struct tNodeData *)(DomTree_self(pDomTree -> xSourceNdx) -> pLookup[xNode].pLookup)) ;
+ return ((struct tNodeData *)(pDomTree -> pLookup[xNode].pLookup)) ;
}
@@ -2608,7 +2665,7 @@
{
if (pNode -> xChilds)
- return Node_selfNotNullLevel (pDomTree, Node_selfFirstChild (pDomTree, pNode, nRepeatLevel) -> xPrev, nRepeatLevel) ;
+ return Node_selfLevel (pDomTree, Node_selfFirstChild (pDomTree, pNode, nRepeatLevel) -> xPrev, nRepeatLevel) ;
return 0 ;
}
@@ -2674,13 +2731,16 @@
if (pNode -> xNext == pNode -> xNdx)
return NULL ;
- if ((pParent = Node_selfNotNullLevel (pDomTree, pNode -> xParent, nRepeatLevel)) != NULL)
+ if ((pParent = Node_self (pDomTree, pNode -> xParent)) != NULL)
{
if (pParent -> xChilds == pNode -> xNext)
return NULL ;
}
- pNxt = Node_selfNotNullLevel (pDomTree, pNode -> xNext, nRepeatLevel) ;
+ if (pNode -> bFlags & nflgNewLevelNext)
+ pNxt = Node_self (pDomTree, pNode -> xNext) ;
+ else
+ pNxt = Node_selfLevel (pDomTree, pNode -> xNext, nRepeatLevel) ;
if (!pParent)
{
@@ -2712,7 +2772,7 @@
if (pNode -> xNext == pNode -> xNdx)
return 0 ;
- pParent = Node_selfNotNullLevel (pDomTree, pNode -> xParent, nRepeatLevel) ;
+ pParent = Node_self (pDomTree, pNode -> xParent, nRepeatLevel) ;
if (pParent -> xChilds == pNode -> xNext)
return 0 ;
@@ -2739,11 +2799,14 @@
if (pNode -> xPrev == pNode -> xNdx)
return 0 ;
- pParent = Node_selfNotNullLevel (pDomTree, pNode -> xParent, nRepeatLevel) ;
+ pParent = Node_self (pDomTree, pNode -> xParent, nRepeatLevel) ;
if (pParent -> xChilds == pNode -> xNdx)
return 0 ;
- return Node_selfNotNullLevel (pDomTree, pNode -> xPrev, nRepeatLevel) ;
+ if (pNode -> bFlags & nflgNewLevelPrev)
+ return Node_self (pDomTree, pNode -> xPrev) ;
+ else
+ return Node_selfLevel (pDomTree, pNode -> xPrev, nRepeatLevel) ;
}
@@ -2768,7 +2831,7 @@
if (pNode -> xPrev == pNode -> xNdx)
return 0 ;
- pParent = Node_selfNotNullLevel (pDomTree, pNode -> xParent, nRepeatLevel) ;
+ pParent = Node_self (pDomTree, pNode -> xParent) ;
if (pParent -> xChilds == pNode -> xNdx)
return 0 ;
@@ -2841,11 +2904,9 @@
{
tRepeatLevel nRepeatLevel = *pRepeatLevel ;
- tNodeData * pNode = Node_selfLevel (pDomTree, xNode, nRepeatLevel) ;
-
+ tNodeData * pNode = Node_self (pDomTree, xNode) ;
+ tNodeData * pLast ;
- if (pNode -> nType != ntypAttr && pNode -> nRepeatLevel)
- nRepeatLevel = pNode -> nRepeatLevel ;
if (pNode -> nType == ntypDocumentFraq)
{
@@ -2863,9 +2924,6 @@
while (pNode)
{
- if (pNode -> nRepeatLevel)
- nRepeatLevel = pNode -> nRepeatLevel ;
-
if (pCurrReq -> bDebug & dbgOutput)
lprintf (r, "[%d]toString: Node=%d(%d) RepeatLevel=%d type=%d flags=%x text=>%s<= (#%d) SVs=%d\n", r -> nPid, pNode -> xNdx, xNode_selfLevelNull(pDomTree,pNode), nRepeatLevel, pNode -> nType, pNode -> bFlags, Ndx2String (pNode -> nText), pNode -> nText, sv_count) ;
@@ -3034,7 +3092,12 @@
}
+ pLast = pNode ;
pNode = Node_selfNextSibling (pDomTree, pNode, nRepeatLevel) ;
+
+ if (pNode && pLast -> bFlags & nflgNewLevelNext)
+ nRepeatLevel = pNode -> nRepeatLevel ;
+
}
*pRepeatLevel = nRepeatLevel ;
1.4.2.38 +5 -3 embperl/Attic/epdom.h
Index: epdom.h
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.h,v
retrieving revision 1.4.2.37
retrieving revision 1.4.2.38
diff -u -r1.4.2.37 -r1.4.2.38
--- epdom.h 2001/10/29 20:07:12 1.4.2.37
+++ epdom.h 2001/10/30 09:05:54 1.4.2.38
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epdom.h,v 1.4.2.37 2001/10/29 20:07:12 richter Exp $
+# $Id: epdom.h,v 1.4.2.38 2001/10/30 09:05:54 richter Exp $
#
###################################################################################*/
@@ -135,7 +135,9 @@
nflgOK = 1,
nflgEscUrl = 2,
nflgEscChar = 4,
- nflgIgnore = 8,
+ nflgIgnore = 8, /**< Ignore this node */
+ nflgNewLevelNext = 16, /**< Next sibling has new RepeatLevel */
+ nflgNewLevelPrev = 32, /**< Previous sibling has new RepeatLevel */
nflgSubCheckpoint= 128
} ;
@@ -518,5 +520,5 @@
/*out*/ char * * ppAttr) ;
-#define NodeAttr_selfParentNode(pDomTree,pNode,nLevel) (pNode->nType == ntypAttr?Attr_selfNode(((tAttrData *)pNode)):(Node_selfLevel(pDomTree,(pNode)->xParent,nLevel)))
+#define NodeAttr_selfParentNode(pDomTree,pNode,nLevel) (pNode->nType == ntypAttr?Attr_selfNode(((tAttrData *)pNode)):(Node_self(pDomTree,(pNode)->xParent,nLevel)))
No revision
No revision
1.5.6.5 +57 -6 embperl/test/cmp/table.htm
Index: table.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/table.htm,v
retrieving revision 1.5.6.4
retrieving revision 1.5.6.5
diff -u -r1.5.6.4 -r1.5.6.5
--- table.htm 2001/03/26 10:29:18 1.5.6.4
+++ table.htm 2001/10/30 09:05:54 1.5.6.5
@@ -20,7 +20,6 @@
<P>$tabmode = default <P>
-
<table>
<tr>
<td>a1/1</td>
@@ -114,11 +113,11 @@
</table>
<table></table>
-^-<table>
-^- <tr></tr>
-^-</table>
-^-
-^-
+<table>
+ <tr></tr>
+</table>
+
+
<table border="1" width="100%">
<tr>
<td>a1/1 </td>
@@ -508,6 +507,58 @@
<td align="center"><font size="+1">World</font></td>
</tr>
</table>
+
+
+<table border="14"><tr><td>a1/1</td></tr><tr><td>a2/1</td></tr><tr><td>a3/1</td></tr></table>
+<table border="15"><tr><td>a3/1</td><td>a3/2</td><td>a3/3</td></tr></table>
+<table border="16"><tr><td>a1/1</td></tr> <tr><td>a2/1</td><td>a2/2</td></tr> <tr><td>a3/1</td><td>a3/2</td><td>a3/3</td></tr> </table>
+
+<table border="17">
+ <tr>
+ <td>a1/1</td>
+ <td>
+ <img src="/icons/iiilogo_narrow_else.gif" WIDTH="5" HEIGHT="0" BORDER="0" ALT="iii logo" >
+ </td>
+ </tr>
+
+ <tr>
+ <td>a2/1</td>
+ <td>
+ <img src="/icons/iiilogo_narrow_else.gif" WIDTH="5" HEIGHT="1" BORDER="0" ALT="iii logo" >
+ </td>
+ </tr>
+
+ <tr>
+ <td>a3/1</td>
+ <td>
+ <img src="/icons/iiilogo_narrow_else.gif" WIDTH="5" HEIGHT="2" BORDER="0" ALT="iii logo" >
+ </td>
+ </tr>
+</table>
+
+<table>
+ <tr>
+ <td>a1/1</td>
+ </tr>
+
+ <tr>
+ <td>a2/1</td>
+ </tr>
+
+ <tr>
+ <td>a3/1</td>
+ </tr>
+</table>
+<table>
+ <tr>
+ <td>a3/1</td>
+
+ <td>a3/2</td>
+
+ <td>a3/3</td>
+ </tr>
+</table>
+
</body>
</html>
No revision
No revision
1.3.6.3 +0 -1 embperl/test/html/if.htm
Index: if.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/if.htm,v
retrieving revision 1.3.6.2
retrieving revision 1.3.6.3
diff -u -r1.3.6.2 -r1.3.6.3
--- if.htm 2000/09/14 05:08:33 1.3.6.2
+++ if.htm 2001/10/30 09:05:54 1.3.6.3
@@ -1,4 +1,3 @@
-
<html>
<head>
<title>IF Metacommand in Embperl</title>
1.4.6.9 +38 -1 embperl/test/html/table.htm
Index: table.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/table.htm,v
retrieving revision 1.4.6.8
retrieving revision 1.4.6.9
diff -u -r1.4.6.8 -r1.4.6.9
--- table.htm 2001/10/29 20:07:13 1.4.6.8
+++ table.htm 2001/10/30 09:05:54 1.4.6.9
@@ -40,7 +40,6 @@
<P>$tabmode = default <P>
-
<table>
<tr>
<td>[+ $a[$row][0] +]</td>
@@ -248,6 +247,44 @@
<td align="center"><font size="+1">[+ $multi[$row][$col] +]</font></td>
</tr>
</table>
+
+
+<table border="14"><tr><td>[+ $a[$row][0] +]</td></tr></table>
+<table border="15"><tr><td>[+ $a[2][$col] +]</td></tr></table>
+<table border="16"><tr><td>[+ $a[$row][$col] +]</td></tr> </table>
+
+<table border="17">
+ <tr>
+ <td>[+ $a[$icon_height=$row][0] +]</td>
+ <td>
+ [- $icon_width = 5 ; -]
+
+ <IMG
+ [$ if (($server_type eq "iii")) $]
+ SRC="/i/www.[+ $server_type +]/[+ $badge || "iiilogo_narrow_if" +].gif" WIDTH="[+ $icon_width +]" HEIGHT="[+ $icon_height +]" BORDER="0"
+ [$ else $]
+ SRC="/icons/[+ $badge || "iiilogo_narrow_else" +].gif" WIDTH="[+ $icon_width +]" HEIGHT="[+ $icon_height +]" BORDER="0"
+ [$ endif $]
+ [$ if ($badge eq "iit") $]
+ ALT="iit logo"
+ [$ else $]
+ ALT="iii logo"
+ [$ endif $]>
+ </td>
+ </tr>
+</table>
+
+<table>
+ <tr>
+ <td>[+ $a[$row][0] +]</td>
+ </tr>
+</table>
+<table>
+ <tr>
+ <td>[+ $a[2][$col] +]</td>
+ </tr>
+</table>
+
</body>
</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org