Lines Matching defs:token

87     const TokenSequence &token, std::size_t firstToken, std::size_t tokens) {
96 CharBlock tok{token.TokenAt(firstToken + j)};
100 result.Put(it->second, token.GetTokenProvenance(j));
104 result.Put(token, firstToken + j, 1);
109 std::size_t Definition::GetArgumentIndex(const CharBlock &token) const {
110 if (token.size() >= 2 && token[0] == '~') {
111 return static_cast<size_t>(token[1] - 'A');
122 const CharBlock &token{tokens.TokenAt(j)};
123 std::size_t bytes{token.size()};
125 char ch{token[k]};
180 constexpr bool IsDefinedKeyword(CharBlock token) {
181 return token.size() == 7 && (token[0] == 'd' || token[0] == 'D') &&
182 ToLowerCaseLetters(token.ToString()) == "defined";
192 CharBlock token{replacement_.TokenAt(j)};
193 std::size_t bytes{token.size()};
195 char ch{token.OnlyNonBlank()};
206 if (bytes == 2 && token[0] == '~') { // argument substitution
207 std::size_t index{GetArgumentIndex(token)};
231 // followed by the token-pasting operator ## in the replacement text,
249 token.ToString() == "__VA_ARGS__") {
259 } else if (bytes == 10 && isVariadic_ && token.ToString() == "__VA_OPT__" &&
267 char ch{token.OnlyNonBlank()};
320 CharBlock token{input.TokenAt(j)};
321 if (!token.empty() && IsLegalIdentifierStart(token[0]) &&
322 (IsNameDefined(token) || (inIfExpression && IsDefinedKeyword(token)))) {
363 CharBlock token{input.TokenAt(j)};
364 if (token.IsBlank() || !IsLegalIdentifierStart(token[0])) {
369 auto it{definitions_.find(token)};
473 CharBlock token{input.TokenAt(k)};
474 char ch{token.OnlyNonBlank()};
841 bool Preprocessor::IsNameDefined(const CharBlock &token) {
842 return definitions_.find(token) != definitions_.end();
845 bool Preprocessor::IsFunctionLikeDefinition(const CharBlock &token) {
846 auto it{definitions_.find(token)};
918 static std::int64_t ExpressionValue(const TokenSequence &token,
996 std::size_t tokens{token.SizeInTokens()};
1000 Message{token.GetProvenanceRange(), "incomplete expression"_err_en_US};
1006 std::string t{token.TokenAt(opAt).ToString()};
1016 *error = Message{token.GetTokenProvenanceRange(opAt),
1029 ToLowerCaseLetters(token.TokenAt(*atToken + 1).ToString()) == "not" &&
1030 token.TokenAt(*atToken + 2).ToString() == ".") {
1038 *error = Message{token.GetTokenProvenanceRange(opAt),
1044 *error = Message{token.GetTokenProvenanceRange(opAt),
1050 left = ExpressionValue(token, operandPrecedence[op], atToken, error);
1056 if (*atToken < tokens && token.TokenAt(*atToken).OnlyNonBlank() == ')') {
1061 *error = Message{token.GetProvenanceRange(),
1065 token.GetTokenProvenanceRange(*atToken), "expected ')'"_err_en_US};
1090 t = token.TokenAt(*atToken).ToString();
1092 token.TokenAt(*atToken + 2).ToString() == ".") {
1093 t += ToLowerCaseLetters(token.TokenAt(*atToken + 1).ToString()) + '.';
1108 ExpressionValue(token, operandPrecedence[op], atToken, error)};
1117 *error = Message{token.GetTokenProvenanceRange(opAt),
1127 *error = Message{token.GetTokenProvenanceRange(opAt),
1139 *error = Message{token.GetTokenProvenanceRange(opAt),
1147 token.GetTokenProvenanceRange(opAt), "division by zero"_err_en_US};
1156 token.GetTokenProvenanceRange(opAt), "modulus by zero"_err_en_US};
1164 *error = Message{token.GetTokenProvenanceRange(opAt),
1171 *error = Message{token.GetTokenProvenanceRange(opAt),
1178 *error = Message{token.GetTokenProvenanceRange(opAt),
1185 *error = Message{token.GetTokenProvenanceRange(opAt),
1226 if (*atToken >= tokens || token.TokenAt(*atToken).ToString() != ":") {
1227 *error = Message{token.GetTokenProvenanceRange(opAt),
1233 ExpressionValue(token, operandPrecedence[op], atToken, error)};
1314 provenance, "bad token '%s' in #line directive"_err_en_US, tstr);