ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
solidity_grammar.cpp File Reference

Implementation of Solidity grammar classification functions. More...

#include <fmt/core.h>
#include <solidity-frontend/solidity_convert.h>
#include <solidity-frontend/solidity_grammar.h>
#include <set>
#include <util/message/message.h>
Include dependency graph for solidity_grammar.cpp:

Namespaces

namespace  SolidityGrammar

Macros

#define ENUM_TO_STR(s)
#define SOL_ENUM_TO_STR(s)

Functions

ContractBodyElementT SolidityGrammar::get_contract_body_element_t (const nlohmann::json &element)
const char * SolidityGrammar::contract_body_element_to_str (ContractBodyElementT type)
bool SolidityGrammar::is_address_member_call (const nlohmann::json &expr)
bool SolidityGrammar::is_sol_library_function (const int ref_id)
TypeNameT SolidityGrammar::get_type_name_t (const nlohmann::json &type_name)
const char * SolidityGrammar::type_name_to_str (TypeNameT type)
ElementaryTypeNameT SolidityGrammar::get_elementary_type_name_t (const nlohmann::json &type_name)
const char * SolidityGrammar::elementary_type_name_to_str (ElementaryTypeNameT type)
unsigned int SolidityGrammar::uint_type_name_to_size (ElementaryTypeNameT type)
unsigned int SolidityGrammar::int_type_name_to_size (ElementaryTypeNameT type)
unsigned int SolidityGrammar::bytesn_type_name_to_size (ElementaryTypeNameT type)
ParameterListT SolidityGrammar::get_parameter_list_t (const nlohmann::json &type_name)
const char * SolidityGrammar::parameter_list_to_str (ParameterListT type)
BlockT SolidityGrammar::get_block_t (const nlohmann::json &block)
const char * SolidityGrammar::block_to_str (BlockT type)
StatementT SolidityGrammar::get_statement_t (const nlohmann::json &stmt)
const char * SolidityGrammar::statement_to_str (StatementT type)
ExpressionT SolidityGrammar::get_expression_t (const nlohmann::json &expr)
ExpressionT SolidityGrammar::get_unary_expr_operator_t (const nlohmann::json &expr, bool uo_pre)
ExpressionT SolidityGrammar::get_expr_operator_t (const nlohmann::json &expr)
const char * SolidityGrammar::expression_to_str (ExpressionT type)
FunctionDeclRefT SolidityGrammar::get_func_decl_ref_t (const nlohmann::json &decl)
const char * SolidityGrammar::func_decl_ref_to_str (FunctionDeclRefT type)
ImplicitCastTypeT SolidityGrammar::get_implicit_cast_type_t (const std::string &cast)
const char * SolidityGrammar::implicit_cast_type_to_str (ImplicitCastTypeT type)
VisibilityT SolidityGrammar::get_access_t (const nlohmann::json &ast_node)
const char * SolidityGrammar::sol_type_to_str (SolType t)
SolType SolidityGrammar::str_to_sol_type (const std::string &s)
SolType SolidityGrammar::elementary_to_sol_type (ElementaryTypeNameT t)
bool SolidityGrammar::is_uint_type (SolType t)
bool SolidityGrammar::is_int_type (SolType t)
bool SolidityGrammar::is_integer_type (SolType t)
bool SolidityGrammar::is_bytesN_type (SolType t)
bool SolidityGrammar::is_bytes_type (SolType t)
bool SolidityGrammar::is_address_type (SolType t)

Variables

const std::unordered_map< std::string, ElementaryTypeNameT > SolidityGrammar::uint_string_to_type_map
const std::unordered_map< ElementaryTypeNameT, unsigned int > SolidityGrammar::uint_size_map
const std::map< std::string, ElementaryTypeNameT > SolidityGrammar::int_string_to_type_map
const std::map< ElementaryTypeNameT, unsigned int > SolidityGrammar::int_size_map
const std::unordered_map< std::string, ElementaryTypeNameT > SolidityGrammar::bytesn_to_type_map
const std::map< ElementaryTypeNameT, unsigned int > SolidityGrammar::bytesn_size_map

Detailed Description

Implementation of Solidity grammar classification functions.

Maps solc JSON AST node fields (type strings, operator tokens, node kinds) to the corresponding SolidityGrammar enums. Includes lookup tables for all uint/int bit-widths, operator-token mapping, and string-to-enum conversions.

Macro Definition Documentation

◆ ENUM_TO_STR

#define ENUM_TO_STR ( s)
Value:
case s: \
{ \
return #s; \
}

◆ SOL_ENUM_TO_STR

#define SOL_ENUM_TO_STR ( s)
Value:
case SolType::s: \
return #s;