pike.git / src / lex.c

version» Context lines:

pike.git/src/lex.c:378:    return BASEOF(h, reserved, link)->token;   }            /*** input routines ***/   struct inputstate   {    struct inputstate *next;    int fd; -  char *data; +  unsigned char *data;    INT32 buflen;    INT32 pos;    int dont_free_data;       int (*my_getc)();    int (*gobble)(int);    int (*look)();    void (*my_ungetc)(int);    void (*ungetstr)(char *,INT32);   };
pike.git/src/lex.c:604:    i->ungetstr=prot_memory_ungetstr;    i->my_ungetc=prot_memory_ungetc;    return i;   }      /*** FILE input ***/      #define READAHEAD 8192   static int file_getc()   { -  char buf[READAHEAD]; +  unsigned char buf[READAHEAD];    int got;    do {    got=read(istate->fd, buf, READAHEAD);    if(got > 0)    {    default_ungetstr(buf, got);    return istate->my_getc();    }    else if(got==0 || errno != EINTR)    {
pike.git/src/lex.c:1076:    lvl=1;    while(lvl)    {    switch(GETC())    {    case '/':    if(GOBBLE('*'))    {    do{    SKIPTO('*'); +  if(LOOK()==MY_EOF) +  { +  yyerror("Unexpected end of file while skipping comment."); +  return; +  }    }while(!GOBBLE('/'));    }    continue;       case MY_EOF:    yyerror("Unexpected end of file while skipping.");    return;       case '\\':    GETC();
pike.git/src/lex.c:1500:    return '|';       case '^':    if(GOBBLE('=')) return F_XOR_EQ;    return '^';       case '*':    if(GOBBLE('=')) return F_MULT_EQ;    return '*';    +  case (unsigned)('·'&0xff): +  if(GOBBLE('=')) return F_MULT_EQ; +  return F_MULT; +     case '%':    if(GOBBLE('=')) return F_MOD_EQ;    return '%';       case '/':    if(GOBBLE('*'))    {    do{    SKIPTO('*'); -  }while(!GOBBLE('/')); +  if(LOOK()==MY_EOF) +  { +  yyerror("Unexpected end of file while skipping comment."); +  return 0; +  } +  } while(!GOBBLE('/'));    continue;    }else if(GOBBLE('/'))    {    SKIPUPTO('\n');    continue;    } -  +  /* Fallthrough */ +  case ((unsigned)('÷'&0xff)):    if(GOBBLE('=')) return F_DIV_EQ;    return '/';       case '=':    if(GOBBLE('=')) return F_EQ;    return '=';       case '<':    if(GOBBLE('<'))    {
pike.git/src/lex.c:1543:    if(GOBBLE(')')) return F_MULTISET_END;    if(GOBBLE('=')) return F_GE;    if(GOBBLE('>'))    {    if(GOBBLE('=')) return F_RSH_EQ;    return F_RSH;    }    return '>';       case '!': +  case 0xac: /* ('¬') */    if(GOBBLE('=')) return F_NE;    return F_NOT;       case '(':    if(GOBBLE('<')) return F_MULTISET_START;    return '(';       case '?':    case ',':    case '~':