VirtualBox

Ignore:
Timestamp:
Jan 2, 2015 12:43:14 PM (10 years ago)
Author:
vboxsync
Message:

VBoxDTrace: Fixes for dtrace -lv - id_or_type() would unput(EOF). (r78)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_lex.l

    r53699 r53701  
    5555                        result = (int)fread(buf, 1, max_size, yypcb->pcb_fileptr); \
    5656                        if (!result && ferror(yypcb->pcb_fileptr)) \
    57                                 YY_FATAL_ERROR("input in flex scanner failed"); \
     57                      longjmp(yypcb->pcb_jmpbuf, EDT_FIO); \
     58                                /*YY_FATAL_ERROR("input in flex scanner failed");*/ \
    5859                } else { \
    5960                        size_t off = yypcb->pcb_strptr - yypcb->pcb_string; \
     
    6566                                memcpy(buf, yypcb->pcb_strptr, result); \
    6667                                yypcb->pcb_strptr += result; \
    67             fprintf(stderr, "yy_input -> %d '%.*s'\n", result, result, buf); /* REMOVE ME */ \
     68            /*fprintf(stderr, "yy_input -> %d '%.*s'\n", result, result, buf);*/ \
    6869         } else { \
    6970            buf[0] = '\0'; \
    70             result = (YYSTATE) == S0; \
    71             fprintf(stderr, "yy_input -> %d\n", result); /* REMOVE ME */ \
     71            result = 0; \
     72            /*fprintf(stderr, "yy_input -> %d\n", result);*/ \
    7273         } \
    7374                } \
     
    519520                                tok = DT_TOK_DIV;
    520521
    521                         unput(c);
     522                        if (c != EOF) unput(c);
    522523                        return (tok);
    523524                }
     
    599600<S0>{RGX_WS}    ; /* discard */
    600601<S0>"\\"\n      ; /* discard */
    601     /* VBOX - START */
    602 <S0>"\0" {
    603             fprintf(stderr, "<S0>\\0\n");
    604             return (DT_TOK_EOF);
    605          }
    606     /* VBOX - END */
    607602<S0>.           yyerror("syntax error near \"%c\"\n", yytext[0]);
    608603
     
    610605<S1>"*/"        BEGIN(yypcb->pcb_cstate);
    611606 /* VBOX - START */
    612 <S1>"\0"        yyerror("end-of-file encountered before matching */\n");
     607<S1><<EOF>>     yyerror("end-of-file encountered before matching */\n");
    613608 /* VBOX - END */
    614609<S1>.|\n        ; /* discard */
     
    671666
    672667<S2>{RGX_WS}    ; /* discard */
    673  /* VBOX - START */
    674 <S2>"\0" {
    675             fprintf(stderr, "<S2>\\0\n");
    676             return (DT_TOK_EOF);
    677          }
    678  /* VBOX - END */
    679668<S2>.           yyerror("syntax error near \"%c\"\n", yytext[0]);
    680669
     
    707696
    708697 /* VBOX - BEGIN */
    709 <S3>"\0"        yyerror("end-of-file encountered before end of control line\n");
     698<S3><<EOF>>     yyerror("end-of-file encountered before end of control line\n");
    710699 /* VBOX - END */
    711700<S3>.           yyerror("syntax error near \"%c\"\n", yytext[0]);
     
    767756#ifndef USING_FLEX
    768757        yysptr = yysbuf;
     758#else
     759   yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
    769760#endif
    770761}
     
    838829                if ((c1 = input()) == c0)
    839830                        ttok = DT_TOK_IDENT;
    840                 unput(c1);
     831                if (c1 != EOF) unput(c1);
    841832                break;
    842833
     
    844835                if ((c1 = input()) != c0)
    845836                        ttok = DT_TOK_IDENT;
    846                 unput(c1);
     837                if (c1 != EOF) unput(c1);
    847838                break;
    848839        case '[':
     
    859850        }
    860851
    861         unput(c0);
     852        if (c0 != EOF) unput(c0);
    862853        return (ttok);
    863854}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette