MCPcopy Create free account
hub / github.com/argotorg/solidity / parseExpression

Method parseExpression

libsmtutil/SMTLib2Parser.cpp:42–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40}
41
42SMTLib2Expression SMTLib2Parser::parseExpression() {
43 skipWhitespace();
44 if (token() == '(')
45 {
46 advance();
47 skipWhitespace();
48 std::vector<SMTLib2Expression> subExpressions;
49 while (token() != 0 && token() != ')')
50 {
51 subExpressions.emplace_back(parseExpression());
52 skipWhitespace();
53 }
54 if (token() != ')')
55 throw ParsingException{};
56 // Simulate whitespace because we do not want to read the next token since it might block.
57 m_token = ' ';
58 return {std::move(subExpressions)};
59 } else
60 return {parseToken()};
61}
62
63std::string SMTLib2Parser::parseToken() {
64 std::string result;

Callers 2

parseValuesFromResponseFunction · 0.45

Calls 2

skipWhitespaceFunction · 0.85
parseExpressionFunction · 0.85

Tested by

no test coverage detected