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

Function parse

test/tools/yulrun.cpp:57–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55{
56
57std::pair<std::shared_ptr<AST const>, std::shared_ptr<AsmAnalysisInfo>> parse(std::string const& _source)
58{
59 YulStack stack(
60 langutil::EVMVersion(),
61 std::nullopt,
62 solidity::frontend::OptimiserSettings::none(),
63 DebugInfoSelection::Default()
64 );
65 if (stack.parseAndAnalyze("--INPUT--", _source))
66 {
67 auto const* evmDialect = dynamic_cast<EVMDialect const*>(&stack.dialect());
68 // TODO: Add EOF support
69 solUnimplementedAssert(evmDialect && !evmDialect->eofVersion(), "No EOF support for yulrun yet.");
70 yulAssert(!Error::hasErrorsWarningsOrInfos(stack.errors()), "Parsed successfully but had errors.");
71 return make_pair(stack.parserResult()->code(), stack.parserResult()->analysisInfo);
72 }
73 else
74 {
75 SourceReferenceFormatter(std::cout, stack, true, false).printErrorInformation(stack.errors());
76 return {};
77 }
78}
79
80void interpret(std::string const& _source, bool _inspect, bool _disableExternalCalls)
81{

Callers 4

parseMethod · 0.70
runStepsMethod · 0.70
runInteractiveMethod · 0.70
interpretFunction · 0.70

Calls 8

EVMVersionClass · 0.85
dialectMethod · 0.80
parserResultMethod · 0.80
printErrorInformationMethod · 0.80
parseAndAnalyzeMethod · 0.45
eofVersionMethod · 0.45
codeMethod · 0.45

Tested by 1

parseMethod · 0.56