Branch: Tag:

2005-03-16

2005-03-16 00:44:31 by Martin Nilsson <mani@lysator.liu.se>

Several fixes.

Rev: src/modules/Parser/pike_tokenizer.h:1.2

16:    pos++;    break;    } -  /* fallthrough. */ +  break; +     case '0':    if( data[pos+1]=='x' || data[pos+1]=='X' )    {
46:    case '9':    while(pos<len && data[pos]>='0' && data[pos]<='9') pos++;    if( pos == len ) break; -  if(data[pos]=='.') +  if(data[pos]=='.' && data[pos+1]>='0' && data[pos+1]<='9')    {    pos++;    while(pos<len && data[pos]>='0' && data[pos]<='9') pos++;
71:    switch(data[pos+1]) {    case '<':    case '>': -  if(data[pos+2]==data[pos+1]) pos++; +  pos++; +  if(data[pos+1]==data[pos]) pos++;    break;    case '-': -  if(data[pos+2]=='>') pos++; +  pos++; +  if(data[pos+1]=='>') pos++;    break;    case '(': -  if(data[pos+2]==')') pos++; +  pos++; +  if(data[pos+1]==')') pos++;    break;    case '[': -  if(data[pos+2]==']') pos++; +  pos++; +  if(data[pos+1]=='.') pos++; +  if(data[pos+1]=='.') pos++; +  if(data[pos+1]==']') pos++;    break; -  +  case '/': case '%': case '*': case '&': case '|': +  case '^': +  case '+': case '!': +  pos++; +  break;    } -  if(data[pos+2]=='=') pos++; +  if(data[pos+1]=='=') pos++;    break;      
110:    case '{': case '}':    case '[': case ']':    case '(': case ')': -  case ';': case ':': +  case ';':    case ',': case '?':    case '@': /* Hm. Pike specific if I ever saw one. */    break; /* all done, one character token */    -  +  case ':': +  if( data[pos+1] == ':' ) pos++; +  break; +     case '<':    if( data[pos+1] == '<' ) pos++;    if( data[pos+1] == '=' ) pos++;    break;       case '-': -  if( data[pos+1] == '>' ) pos++; +  if( data[pos+1] == '-' ) pos++;    else    { -  if( data[pos+1] == '-' ) pos++; +  if( data[pos+1] == '>' ) pos++;    if( data[pos+1] == '=' ) pos++;    }    break;
204:    }    break;    +  case 0: +  goto failed_to_find_end; +     default:    if( m_isidchar( data[pos] ) )    {