有看头的写法:
case 0:
{
switch(c)
{
case ' ':
case '\t':
{
continue; //skip spaces
break;
}
case '\n':
case '\r':
{
++m_line;//new line
m_row=0;
continue;
break;
}
case '\t':
{
m_row+=8;//tab
continue;
break;
}
case '(':
{
tok = LEFT_PARENTHESIS;
state = -1;
break;
}
case ')':
{
tok = RIGHT_PARENTHESIS;
state = -1;
break;
}
case '+':
{
tok = ADD;
state=-1;
break;
}
case '-':
{
tok = SUB;
state = -1;
break;
}
case '*':
{
tok = MUL;
state = -1;
break;
}
case '/':
{
tok = DIVIDE;
state = -1;
break;
}
break;
}
}
显示简单的写法:
case ' ':{ continue; break; }
case '(':{ token=LEFT_PARENTHESIS; state=-1; break; }
case ')':{ token=RIGHT_PARENTHESIS;state =-1; break; }
case '\'':{ token = QUOTE; state = -1; break; }
case '+':{ token = ADD; state = -1; break; }
case '-':{ token = SUB; state = -1; break; }
case '*':{ token = MUL; state = -1; break; }
case '/':{ token = DIVIDE; state = -1; break; }
case '\"':{ token = DOUBLE_QUOTE; state = -1; break; }
case '|':{ token = OR; state = -1; break; }
case '!':{ token = NOT; state = -1; break; }
case '&':{ token = AND; state = -1; break; }
case '>':{ token = GREAT; state = -1; break; }
case '<':{ token = BELOW; state = -1; break; }
case '=':{ token = EQUAL; state = -1; break; }