MCPcopy Create free account
hub / github.com/carbonengine/trinity / CreateParser

Method CreateParser

trinity/Controllers/Tr2ControllerExpression.cpp:543–563  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

541}
542
543std::string Tr2ControllerExpression::CreateParser( const char* expression, const CcpParser::FunctionView& extraFunctions )
544{
545 CcpParser::Externals externals;
546 CcpParser::VariableView varViews[] = { m_controller->GetVariableView() };
547 externals.variables = varViews;
548 CcpParser::FunctionView funcViews[2] = { extraFunctions, s_functions };
549 externals.functions = { funcViews, 2 };
550 ParserObserver observer;
551 observer.m_variables = varViews[0];
552 auto parsed = CcpParser::Parse( expression, externals, m_program, &observer );
553 if( parsed )
554 {
555 m_controller->EnsureTempArenaSize( m_program.GetTempArenaSize() );
556 m_variableMask = observer.m_maskOverflow || observer.m_hasNonPureFunctions ? 0ull : observer.m_mask;
557 return std::string();
558 }
559 else
560 {
561 return ToString( parsed, expression );
562 }
563}
564
565std::pair<bool, float> Tr2ControllerExpression::Eval( void* extraBuffer ) const
566{

Callers

nothing calls this directly

Calls 4

ParseFunction · 0.85
ToStringFunction · 0.50
GetVariableViewMethod · 0.45
EnsureTempArenaSizeMethod · 0.45

Tested by

no test coverage detected