| 72 | } |
| 73 | |
| 74 | void isKeyword() const { |
| 75 | |
| 76 | const char code[] = "for a int delete true"; |
| 77 | |
| 78 | { |
| 79 | const SimpleTokenList tokenlist(code, Standards::Language::C); |
| 80 | |
| 81 | ASSERT_EQUALS(true, tokenlist.front()->isKeyword()); |
| 82 | ASSERT_EQUALS(true, tokenlist.front()->isControlFlowKeyword()); |
| 83 | ASSERT_EQUALS(false, tokenlist.front()->next()->isKeyword()); |
| 84 | ASSERT_EQUALS(false, tokenlist.front()->next()->isControlFlowKeyword()); |
| 85 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(2)->isKeyword()); |
| 86 | ASSERT_EQUALS(true, tokenlist.front()->tokAt(2)->tokType() == Token::eType); |
| 87 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(2)->isControlFlowKeyword()); |
| 88 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(3)->isKeyword()); |
| 89 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(3)->isControlFlowKeyword()); |
| 90 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(4)->isKeyword()); |
| 91 | ASSERT_EQUALS(true, tokenlist.front()->tokAt(4)->isLiteral()); |
| 92 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(4)->isControlFlowKeyword()); |
| 93 | } |
| 94 | { |
| 95 | const SimpleTokenList tokenlist(code); |
| 96 | |
| 97 | ASSERT_EQUALS(true, tokenlist.front()->isKeyword()); |
| 98 | ASSERT_EQUALS(true, tokenlist.front()->isControlFlowKeyword()); |
| 99 | ASSERT_EQUALS(false, tokenlist.front()->next()->isKeyword()); |
| 100 | ASSERT_EQUALS(false, tokenlist.front()->next()->isControlFlowKeyword()); |
| 101 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(2)->isKeyword()); |
| 102 | ASSERT_EQUALS(true, tokenlist.front()->tokAt(2)->tokType() == Token::eType); |
| 103 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(2)->isControlFlowKeyword()); |
| 104 | ASSERT_EQUALS(true, tokenlist.front()->tokAt(3)->isKeyword()); |
| 105 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(3)->isControlFlowKeyword()); |
| 106 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(4)->isKeyword()); |
| 107 | ASSERT_EQUALS(true, tokenlist.front()->tokAt(4)->isLiteral()); |
| 108 | ASSERT_EQUALS(false, tokenlist.front()->tokAt(4)->isControlFlowKeyword()); |
| 109 | } |
| 110 | |
| 111 | { |
| 112 | const char code2[] = "_Generic"; // C11 keyword |
| 113 | const SimpleTokenList tokenlist(code2); // default settings use latest standard |
| 114 | ASSERT_EQUALS(false, tokenlist.front()->isKeyword()); |
| 115 | } |
| 116 | |
| 117 | { |
| 118 | const char code2[] = "_Generic"; // C11 keyword |
| 119 | const SimpleTokenList tokenlist(code2, Standards::Language::C); // default settings use latest standard |
| 120 | ASSERT_EQUALS(true, tokenlist.front()->isKeyword()); |
| 121 | } |
| 122 | |
| 123 | { |
| 124 | const char code2[] = "_Generic"; // C11 keyword |
| 125 | const Settings s = settingsBuilder().c(Standards::C89).build(); |
| 126 | TokenList tokenlist(s, Standards::Language::C); |
| 127 | tokenlist.appendFileIfNew("a.c"); |
| 128 | ASSERT(tokenlist.createTokensFromString(code2)); |
| 129 | ASSERT_EQUALS(false, tokenlist.front()->isKeyword()); |
| 130 | } |
| 131 |
nothing calls this directly
no test coverage detected