Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Parser/listnode.c

    r2 r391  
    1313PyNode_ListTree(node *n)
    1414{
    15         listnode(stdout, n);
     15    listnode(stdout, n);
    1616}
    1717
     
    2121listnode(FILE *fp, node *n)
    2222{
    23         level = 0;
    24         atbol = 1;
    25         list1node(fp, n);
     23    level = 0;
     24    atbol = 1;
     25    list1node(fp, n);
    2626}
    2727
     
    2929list1node(FILE *fp, node *n)
    3030{
    31         if (n == 0)
    32                 return;
    33         if (ISNONTERMINAL(TYPE(n))) {
    34                 int i;
    35                 for (i = 0; i < NCH(n); i++)
    36                         list1node(fp, CHILD(n, i));
    37         }
    38         else if (ISTERMINAL(TYPE(n))) {
    39                 switch (TYPE(n)) {
    40                 case INDENT:
    41                         ++level;
    42                         break;
    43                 case DEDENT:
    44                         --level;
    45                         break;
    46                 default:
    47                         if (atbol) {
    48                                 int i;
    49                                 for (i = 0; i < level; ++i)
    50                                         fprintf(fp, "\t");
    51                                 atbol = 0;
    52                         }
    53                         if (TYPE(n) == NEWLINE) {
    54                                 if (STR(n) != NULL)
    55                                         fprintf(fp, "%s", STR(n));
    56                                 fprintf(fp, "\n");
    57                                 atbol = 1;
    58                         }
    59                         else
    60                                 fprintf(fp, "%s ", STR(n));
    61                         break;
    62                 }
    63         }
    64         else
    65                 fprintf(fp, "? ");
     31    if (n == 0)
     32        return;
     33    if (ISNONTERMINAL(TYPE(n))) {
     34        int i;
     35        for (i = 0; i < NCH(n); i++)
     36            list1node(fp, CHILD(n, i));
     37    }
     38    else if (ISTERMINAL(TYPE(n))) {
     39        switch (TYPE(n)) {
     40        case INDENT:
     41            ++level;
     42            break;
     43        case DEDENT:
     44            --level;
     45            break;
     46        default:
     47            if (atbol) {
     48                int i;
     49                for (i = 0; i < level; ++i)
     50                    fprintf(fp, "\t");
     51                atbol = 0;
     52            }
     53            if (TYPE(n) == NEWLINE) {
     54                if (STR(n) != NULL)
     55                    fprintf(fp, "%s", STR(n));
     56                fprintf(fp, "\n");
     57                atbol = 1;
     58            }
     59            else
     60                fprintf(fp, "%s ", STR(n));
     61            break;
     62        }
     63    }
     64    else
     65        fprintf(fp, "? ");
    6666}
Note: See TracChangeset for help on using the changeset viewer.