MCPcopy Create free account
hub / github.com/YACReader/yacreader / expression

Method expression

YACReaderLibrary/db/query_parser.cpp:307–325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

305}
306
307QueryParser::TreeNode QueryParser::expression()
308{
309 if (tokenType() == Token::Type::word) {
310 auto left = token(true);
311 if (isOperatorToken(tokenType())) {
312 auto expOperator = token(true);
313 if (tokenType() != Token::Type::word && tokenType() != Token::Type::quotedWord) {
314 throw std::invalid_argument("missing right operand");
315 }
316 auto right = token(true);
317
318 return TreeNode("expression", { TreeNode(toLower(left), { }), TreeNode(right, { }) }, expOperator);
319 } else {
320 return TreeNode("expression", { TreeNode("all", { }), TreeNode(left, { }) });
321 }
322 }
323
324 return baseToken();
325}
326
327QueryParser::TreeNode QueryParser::baseToken()
328{

Callers

nothing calls this directly

Calls 1

TreeNodeClass · 0.85

Tested by

no test coverage detected