From 35cf9b5ed4b9d4843230bd17018fdbe22814af6c Mon Sep 17 00:00:00 2001 From: Arity-T Date: Wed, 28 May 2025 12:07:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B8=D0=BD=D0=BA=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=20=D0=B8?= =?UTF-8?q?=20=D0=B4=D0=B5=D0=BA=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=20?= =?UTF-8?q?=D0=B2=20=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab4/cmilan/src/scanner.cpp | 26 ++++++++++++++++++++++---- lab4/cmilan/src/scanner.h | 4 +++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/lab4/cmilan/src/scanner.cpp b/lab4/cmilan/src/scanner.cpp index 29f5474..4d269d0 100644 --- a/lab4/cmilan/src/scanner.cpp +++ b/lab4/cmilan/src/scanner.cpp @@ -28,6 +28,8 @@ static const char * tokenNames_[] = { "'('", "')'", "';'", + "'++'", + "'--'", }; void Scanner::nextToken() @@ -185,15 +187,31 @@ void Scanner::nextToken() //Знаки операций. Для "+"/"-" получим лексему операции типа сложнения, и соответствующую операцию. //для "*" - лексему операции типа умножения case '+': - token_ = T_ADDOP; - arithmeticValue_ = A_PLUS; nextChar(); + + // Ищем оператор инкремента + if(ch_ == '+') { + token_ = T_INC; + nextChar(); + } + else { + token_ = T_ADDOP; + arithmeticValue_ = A_PLUS; + } break; case '-': - token_ = T_ADDOP; - arithmeticValue_ = A_MINUS; nextChar(); + + // Ищем оператор декремента + if(ch_ == '-') { + token_ = T_DEC; + nextChar(); + } + else { + token_ = T_ADDOP; + arithmeticValue_ = A_MINUS; + } break; case '*': diff --git a/lab4/cmilan/src/scanner.h b/lab4/cmilan/src/scanner.h index 15d1523..d0a677a 100644 --- a/lab4/cmilan/src/scanner.h +++ b/lab4/cmilan/src/scanner.h @@ -29,7 +29,9 @@ enum Token { T_CMP, // Сводная лексема для операторов отношения T_LPAREN, // Открывающая скобка T_RPAREN, // Закрывающая скобка - T_SEMICOLON // ";" + T_SEMICOLON, // ";" + T_INC, // Оператор инкремента + T_DEC // Оператор декремента }; // Функция tokenToString возвращает описание лексемы.