Ignore:
Timestamp:
Mar 19, 2014, 11:11:30 AM (11 years ago)
Author:
dmik
Message:

python: Update vendor to 2.7.6.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • python/vendor/current/Parser/pgenmain.c

    r2 r388  
    3131Py_Exit(int sts)
    3232{
    33         exit(sts);
     33    exit(sts);
    3434}
    3535
     
    3737main(int argc, char **argv)
    3838{
    39         grammar *g;
    40         FILE *fp;
    41         char *filename, *graminit_h, *graminit_c;
    42        
    43         if (argc != 4) {
    44                 fprintf(stderr,
    45                         "usage: %s grammar graminit.h graminit.c\n", argv[0]);
    46                 Py_Exit(2);
    47         }
    48         filename = argv[1];
    49         graminit_h = argv[2];
    50         graminit_c = argv[3];
    51         g = getgrammar(filename);
    52         fp = fopen(graminit_c, "w");
    53         if (fp == NULL) {
    54                 perror(graminit_c);
    55                 Py_Exit(1);
    56         }
    57         if (Py_DebugFlag)
    58                 printf("Writing %s ...\n", graminit_c);
    59         printgrammar(g, fp);
    60         fclose(fp);
    61         fp = fopen(graminit_h, "w");
    62         if (fp == NULL) {
    63                 perror(graminit_h);
    64                 Py_Exit(1);
    65         }
    66         if (Py_DebugFlag)
    67                 printf("Writing %s ...\n", graminit_h);
    68         printnonterminals(g, fp);
    69         fclose(fp);
    70         Py_Exit(0);
    71         return 0; /* Make gcc -Wall happy */
     39    grammar *g;
     40    FILE *fp;
     41    char *filename, *graminit_h, *graminit_c;
     42
     43    if (argc != 4) {
     44        fprintf(stderr,
     45            "usage: %s grammar graminit.h graminit.c\n", argv[0]);
     46        Py_Exit(2);
     47    }
     48    filename = argv[1];
     49    graminit_h = argv[2];
     50    graminit_c = argv[3];
     51    g = getgrammar(filename);
     52    fp = fopen(graminit_c, "w");
     53    if (fp == NULL) {
     54        perror(graminit_c);
     55        Py_Exit(1);
     56    }
     57    if (Py_DebugFlag)
     58        printf("Writing %s ...\n", graminit_c);
     59    printgrammar(g, fp);
     60    fclose(fp);
     61    fp = fopen(graminit_h, "w");
     62    if (fp == NULL) {
     63        perror(graminit_h);
     64        Py_Exit(1);
     65    }
     66    if (Py_DebugFlag)
     67        printf("Writing %s ...\n", graminit_h);
     68    printnonterminals(g, fp);
     69    fclose(fp);
     70    Py_Exit(0);
     71    return 0; /* Make gcc -Wall happy */
    7272}
    7373
     
    7575getgrammar(char *filename)
    7676{
    77         FILE *fp;
    78         node *n;
    79         grammar *g0, *g;
    80         perrdetail err;
    81        
    82         fp = fopen(filename, "r");
    83         if (fp == NULL) {
    84                 perror(filename);
    85                 Py_Exit(1);
    86         }
    87         g0 = meta_grammar();
    88         n = PyParser_ParseFile(fp, filename, g0, g0->g_start,
    89                       (char *)NULL, (char *)NULL, &err);
    90         fclose(fp);
    91         if (n == NULL) {
    92                 fprintf(stderr, "Parsing error %d, line %d.\n",
    93                         err.error, err.lineno);
    94                 if (err.text != NULL) {
    95                         size_t i;
    96                         fprintf(stderr, "%s", err.text);
    97                         i = strlen(err.text);
    98                         if (i == 0 || err.text[i-1] != '\n')
    99                                 fprintf(stderr, "\n");
    100                         for (i = 0; i < err.offset; i++) {
    101                                 if (err.text[i] == '\t')
    102                                         putc('\t', stderr);
    103                                 else
    104                                         putc(' ', stderr);
    105                         }
    106                         fprintf(stderr, "^\n");
    107                         PyObject_FREE(err.text);
    108                 }
    109                 Py_Exit(1);
    110         }
    111         g = pgen(n);
    112         if (g == NULL) {
    113                 printf("Bad grammar.\n");
    114                 Py_Exit(1);
    115         }
    116         return g;
     77    FILE *fp;
     78    node *n;
     79    grammar *g0, *g;
     80    perrdetail err;
     81
     82    fp = fopen(filename, "r");
     83    if (fp == NULL) {
     84        perror(filename);
     85        Py_Exit(1);
     86    }
     87    g0 = meta_grammar();
     88    n = PyParser_ParseFile(fp, filename, g0, g0->g_start,
     89                  (char *)NULL, (char *)NULL, &err);
     90    fclose(fp);
     91    if (n == NULL) {
     92        fprintf(stderr, "Parsing error %d, line %d.\n",
     93            err.error, err.lineno);
     94        if (err.text != NULL) {
     95            size_t i;
     96            fprintf(stderr, "%s", err.text);
     97            i = strlen(err.text);
     98            if (i == 0 || err.text[i-1] != '\n')
     99                fprintf(stderr, "\n");
     100            for (i = 0; i < err.offset; i++) {
     101                if (err.text[i] == '\t')
     102                    putc('\t', stderr);
     103                else
     104                    putc(' ', stderr);
     105            }
     106            fprintf(stderr, "^\n");
     107            PyObject_FREE(err.text);
     108        }
     109        Py_Exit(1);
     110    }
     111    g = pgen(n);
     112    if (g == NULL) {
     113        printf("Bad grammar.\n");
     114        Py_Exit(1);
     115    }
     116    return g;
    117117}
    118118
     
    121121PyErr_Occurred()
    122122{
    123         return 0;
     123    return 0;
    124124}
    125125
     
    127127Py_FatalError(const char *msg)
    128128{
    129         fprintf(stderr, "pgen: FATAL ERROR: %s\n", msg);
    130         Py_Exit(1);
     129    fprintf(stderr, "pgen: FATAL ERROR: %s\n", msg);
     130    Py_Exit(1);
    131131}
    132132
     
    136136PyOS_Readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt)
    137137{
    138         size_t n = 1000;
    139         char *p = (char *)PyMem_MALLOC(n);
    140         char *q;
    141         if (p == NULL)
    142                 return NULL;
    143         fprintf(stderr, "%s", prompt);
    144         q = fgets(p, n, sys_stdin);
    145         if (q == NULL) {
    146                 *p = '\0';
    147                 return p;
    148         }
    149         n = strlen(p);
    150         if (n > 0 && p[n-1] != '\n')
    151                 p[n-1] = '\n';
    152         return (char *)PyMem_REALLOC(p, n+1);
     138    size_t n = 1000;
     139    char *p = (char *)PyMem_MALLOC(n);
     140    char *q;
     141    if (p == NULL)
     142        return NULL;
     143    fprintf(stderr, "%s", prompt);
     144    q = fgets(p, n, sys_stdin);
     145    if (q == NULL) {
     146        *p = '\0';
     147        return p;
     148    }
     149    n = strlen(p);
     150    if (n > 0 && p[n-1] != '\n')
     151        p[n-1] = '\n';
     152    return (char *)PyMem_REALLOC(p, n+1);
    153153}
    154154
     
    157157Py_UniversalNewlineFgets(char *buf, int n, FILE *stream, PyObject *fobj)
    158158{
    159         return fgets(buf, n, stream);
     159    return fgets(buf, n, stream);
    160160}
    161161
     
    166166PySys_WriteStderr(const char *format, ...)
    167167{
    168         va_list va;
     168    va_list va;
    169169
    170         va_start(va, format);
    171         vfprintf(stderr, format, va);
    172         va_end(va);
     170    va_start(va, format);
     171    vfprintf(stderr, format, va);
     172    va_end(va);
    173173}
Note: See TracChangeset for help on using the changeset viewer.