Index: trunk/extensions/NativePreprocessor/preprocesstoobj.c |
— | — | @@ -652,7 +652,7 @@ |
653 | 653 | } else { |
654 | 654 | // Count is less than the maximum |
655 | 655 | // Skip any gaps in the callback array to find the true largest match |
656 | | - matchingCount = count; |
| 656 | + |
657 | 657 | /* Known rules: If we have three opening braces but only two closing ones, we want the two. |
658 | 658 | * With less than the minimum, matchingCount = 0. |
659 | 659 | */ |
Index: trunk/extensions/NativePreprocessor/nodes.h |
— | — | @@ -259,8 +259,14 @@ |
260 | 260 | } |
261 | 261 | |
262 | 262 | /* Go for part nodes */ |
263 | | - while ( readpos < *nodeStringLen ) { |
264 | | - readpos += NODE_LEN; /* <part> */ |
| 263 | + while ( readpos < *nodeStringLen ) {printf("breakSyntaw(%.*s) %d %d\n", *nodeStringLen, nodeString, readpos, writepos); |
| 264 | + assert( nodeString[readpos] == part_node ); /* <part> node */ |
| 265 | + assert( !memcmp( nodeString + readpos + 8, "00000001", 8 ) ); /* Part nodes contain exactly one character (the pipe) */ |
| 266 | + node->contentLength = 1; |
| 267 | + serializeNode( nodeString + writepos, node ); |
| 268 | + readpos += NODE_LEN; |
| 269 | + writepos += NODE_LEN; |
| 270 | + |
265 | 271 | assert( readpos < *nodeStringLen ); /* All part nodes contain one name node inside */ |
266 | 272 | int nameChildren = getNextSibling( nodeString + readpos ); /* <name> */ |
267 | 273 | readpos += NODE_LEN; |