Добавил инкремент и декремент в лексер
This commit is contained in:
@@ -28,6 +28,8 @@ static const char * tokenNames_[] = {
|
|||||||
"'('",
|
"'('",
|
||||||
"')'",
|
"')'",
|
||||||
"';'",
|
"';'",
|
||||||
|
"'++'",
|
||||||
|
"'--'",
|
||||||
};
|
};
|
||||||
|
|
||||||
void Scanner::nextToken()
|
void Scanner::nextToken()
|
||||||
@@ -185,15 +187,31 @@ void Scanner::nextToken()
|
|||||||
//Знаки операций. Для "+"/"-" получим лексему операции типа сложнения, и соответствующую операцию.
|
//Знаки операций. Для "+"/"-" получим лексему операции типа сложнения, и соответствующую операцию.
|
||||||
//для "*" - лексему операции типа умножения
|
//для "*" - лексему операции типа умножения
|
||||||
case '+':
|
case '+':
|
||||||
token_ = T_ADDOP;
|
|
||||||
arithmeticValue_ = A_PLUS;
|
|
||||||
nextChar();
|
nextChar();
|
||||||
|
|
||||||
|
// Ищем оператор инкремента
|
||||||
|
if(ch_ == '+') {
|
||||||
|
token_ = T_INC;
|
||||||
|
nextChar();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
token_ = T_ADDOP;
|
||||||
|
arithmeticValue_ = A_PLUS;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '-':
|
case '-':
|
||||||
token_ = T_ADDOP;
|
|
||||||
arithmeticValue_ = A_MINUS;
|
|
||||||
nextChar();
|
nextChar();
|
||||||
|
|
||||||
|
// Ищем оператор декремента
|
||||||
|
if(ch_ == '-') {
|
||||||
|
token_ = T_DEC;
|
||||||
|
nextChar();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
token_ = T_ADDOP;
|
||||||
|
arithmeticValue_ = A_MINUS;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '*':
|
case '*':
|
||||||
|
|||||||
@@ -29,7 +29,9 @@ enum Token {
|
|||||||
T_CMP, // Сводная лексема для операторов отношения
|
T_CMP, // Сводная лексема для операторов отношения
|
||||||
T_LPAREN, // Открывающая скобка
|
T_LPAREN, // Открывающая скобка
|
||||||
T_RPAREN, // Закрывающая скобка
|
T_RPAREN, // Закрывающая скобка
|
||||||
T_SEMICOLON // ";"
|
T_SEMICOLON, // ";"
|
||||||
|
T_INC, // Оператор инкремента
|
||||||
|
T_DEC // Оператор декремента
|
||||||
};
|
};
|
||||||
|
|
||||||
// Функция tokenToString возвращает описание лексемы.
|
// Функция tokenToString возвращает описание лексемы.
|
||||||
|
|||||||
Reference in New Issue
Block a user