All pastes #573365 Raw Edit

Anonymous

public c v1 · immutable
·published 2007-06-18 03:43 UTC
rendered paste body
    switch (c)    {      case '\n':        break;      case '{' :        Write_Token (LEFT_CURLY_TOKEN, col);        break;      case '}' :        Write_Token (RIGHT_CURLY_TOKEN, col);        break;      case '@' :        Write_Token (AT_TOKEN, col);        break;      case '&' :        Write_Token (AMPERSAND_TOKEN, col);        break;      case '`' :        Write_Token (BACK_QUOTE_TOKEN, col);        break;      case '\\':        Write_Token (BACK_SLASH_TOKEN, col);        break;      case '|' :        Write_Token (BAR_TOKEN, col);        break;      case ':' :        Write_Token (COLON_TOKEN, col);        break;      case ',' :        Write_Token (COMMA_TOKEN, col);        break;      case '-' :        Write_Token (DASH_TOKEN, col);        break;      case '$' :        Write_Token (DOLLAR_TOKEN, col);        break;      case '=' :        Write_Token (EQUALS_TOKEN, col);        break;      case '!' :        c2 = Echo_getc();        if (c2 == (int)'=')        {          Write_Token (REL_NE_TOKEN, col);        }        else        {          Echo_ungetc(c2);          Write_Token (EXCLAMATION_TOKEN, col);        }        break;      case '#' :        Parse_Directive(true);        /* Write_Token (HASH_TOKEN, col);*/        break;      case '^' :        Write_Token (HAT_TOKEN, col);        break;      case '<' :        c2 = Echo_getc();        if (c2 == (int)'=')        {          Write_Token (REL_LE_TOKEN, col);        }        else        {          Echo_ungetc(c2);          Write_Token (LEFT_ANGLE_TOKEN, col);        }        break;      case '(' :        Write_Token (LEFT_PAREN_TOKEN, col);        break;      case '[' :        Write_Token (LEFT_SQUARE_TOKEN, col);        break;      case '%' :        Write_Token (PERCENT_TOKEN, col);        break;      case '+' :        Write_Token (PLUS_TOKEN, col);        break;      case '?' :        Write_Token (QUESTION_TOKEN, col);        break;      case '>' :        c2 = Echo_getc();        if (c2 == (int)'=')        {          Write_Token (REL_GE_TOKEN, col);        }        else        {          Echo_ungetc(c2);          Write_Token (RIGHT_ANGLE_TOKEN, col);        }        break;      case ')' :        Write_Token (RIGHT_PAREN_TOKEN, col);        break;      case ']' :        Write_Token (RIGHT_SQUARE_TOKEN, col);        break;      case ';' : /* Parser doesn't use it, so let's ignore it */        Write_Token (SEMI_COLON_TOKEN, col);        break;      case '\'':        Write_Token (SINGLE_QUOTE_TOKEN, col);        break;        /* enable C++ style commenting */      case '/' :        c2 = Echo_getc();        if(c2 != (int) '/' && c2 != (int) '*')        {          Echo_ungetc(c2);          Write_Token (SLASH_TOKEN, col);          break;        }        if(c2 == (int)'*')        {          Parse_C_Comments();          break;        }        while(c2 != (int)'\n')        {          c2=Echo_getc();          if(c2==EOF)          {            Echo_ungetc(c2);            break;          }        }        break;      case '*' :        Write_Token (STAR_TOKEN, col);        break;      case '~' :        Write_Token (TILDE_TOKEN, col);        break;      case '"' :        Parse_String_Literal ();        break;      case '0':      case '1':      case '2':      case '3':      case '4':      case '5':      case '6':      case '7':      case '8':      case '9':      case '.':        Echo_ungetc(c);        if (Read_Float () != true)          return;        break;      case 'a':      case 'b':      case 'c':      case 'd':      case 'e':      case 'f':      case 'g':      case 'h':      case 'i':      case 'j':      case 'k':      case 'l':      case 'm':      case 'n':      case 'o':      case 'p':      case 'q':      case 'r':      case 's':      case 't':      case 'u':      case 'v':      case 'w':      case 'x':      case 'y':      case 'z':      case 'A':      case 'B':      case 'C':      case 'D':      case 'E':      case 'F':      case 'G':      case 'H':      case 'I':      case 'J':      case 'K':      case 'L':      case 'M':      case 'N':      case 'O':      case 'P':      case 'Q':      case 'R':      case 'S':      case 'T':      case 'U':      case 'V':      case 'W':      case 'X':      case 'Y':      case 'Z':      case '_':        Echo_ungetc(c);        Read_Symbol ();        break;      case '\t':      case '\r':      case '\032':   /* Control Z - EOF on many systems */      case '\0':        break;      default:        Error("Illegal character in input file, value is %02x.", c);        break;    }  }