diff --git a/src/keyboard_input/input_parser.cpp b/src/keyboard_input/input_parser.cpp index 3fe16e5..ecbdd17 100644 --- a/src/keyboard_input/input_parser.cpp +++ b/src/keyboard_input/input_parser.cpp @@ -57,6 +57,8 @@ std::optional getFunctionNumber( const char& character ) } } +std::optional checkIfLegalCapitalLiteral( std::string input ) {} + std::vector ParseKeyboardInputsToTokens( const std::string inputs ) { std::vector tokens{}; @@ -106,6 +108,16 @@ std::vector ParseKeyboardInputsToTokens( const std::string inputs ) break; } } + + std::string characters = ""; + characters.push_back( *ch ); + while ( auto a = checkIfLegalCapitalLiteral( characters ) ) + { + } + // while not recognized character + // ++ch + // if end break + // add token } return tokens; diff --git a/test/keyboard_input/tst_parsertest.cpp b/test/keyboard_input/tst_parsertest.cpp index 8279a9a..eef2bc0 100644 --- a/test/keyboard_input/tst_parsertest.cpp +++ b/test/keyboard_input/tst_parsertest.cpp @@ -28,6 +28,8 @@ private slots: void shouldExitEarlyFunctionKey(); void releaseHeldKeys(); + + void capitalLiterals(); }; const std::string alphabet = "abcdefghijklmnopqrstuvxyz"; @@ -195,6 +197,93 @@ void ParserTest::releaseHeldKeys() QVERIFY( t == e ); } +void ParserTest::capitalLiterals() +{ + auto t = ParseKeyboardInputsToTokens( "BACKSPACE" ); + auto e = std::vector( { Token::KEY_BACKSPACE } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "SPACE" ); + e = std::vector( { Token::KEY_SPACE } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "TAB" ); + e = std::vector( { Token::KEY_TAB } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "ESC" ); + e = std::vector( { Token::KEY_ESC } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "INS" ); + e = std::vector( { Token::KEY_INS } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "DEL" ); + e = std::vector( { Token::KEY_DEL } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "END" ); + e = std::vector( { Token::KEY_END } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "PGDN" ); + e = std::vector( { Token::KEY_PGDN } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "PGUP" ); + e = std::vector( { Token::KEY_PGUP } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "CAPS" ); + e = std::vector( { Token::KEY_CAPS } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "PRNSCRN" ); + e = std::vector( { Token::KEY_PRNSCRN } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "PAUSE" ); + e = std::vector( { Token::KEY_PAUSE } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "SCRLOCK" ); + e = std::vector( { Token::KEY_SCRLOCK } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "LEFTARROW" ); + e = std::vector( { Token::KEY_LEFTARROW } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "RIGHTARROW" ); + e = std::vector( { Token::KEY_RIGHTARROW } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "UPARROW" ); + e = std::vector( { Token::KEY_UPARROW } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "DOWNARROW" ); + e = std::vector( { Token::KEY_DOWNARROW } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "KPSLASH" ); + e = std::vector( { Token::KEY_KPSLASH } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "KPSTAR" ); + e = std::vector( { Token::KEY_KPSTAR } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "KPMINUS" ); + e = std::vector( { Token::KEY_KPMINUS } ); + QVERIFY( t == e ); + + t = ParseKeyboardInputsToTokens( "KPPLUS" ); + e = std::vector( { Token::KEY_KPPLUS } ); + QVERIFY( t == e ); +} + QTEST_APPLESS_MAIN( ParserTest ) #include "tst_parsertest.moc"