--- linuxsampler/trunk/src/scriptvm/tree.cpp 2020/08/06 11:45:24 3803 +++ linuxsampler/trunk/src/scriptvm/tree.cpp 2020/08/06 12:15:02 3804 @@ -501,15 +501,33 @@ return STMT_SUCCESS; } -EventHandler::EventHandler(StatementsRef statements) { +Subroutine::Subroutine(StatementsRef statements) { this->statements = statements; +} + +void Subroutine::dump(int level) { + printIndents(level); + printf("Subroutine {\n"); + statements->dump(level+1); + printIndents(level); + printf("}\n"); +} + +UserFunction::UserFunction(StatementsRef statements) + : Subroutine(statements) +{ +} + +EventHandler::EventHandler(StatementsRef statements) + : Subroutine(statements) +{ usingPolyphonics = statements->isPolyphonic(); } void EventHandler::dump(int level) { printIndents(level); printf("EventHandler {\n"); - statements->dump(level+1); + Subroutine::dump(level+1); printIndents(level); printf("}\n"); } @@ -1818,9 +1836,9 @@ printf(")\n"); } -StatementsRef ParserContext::userFunctionByName(const String& name) { +UserFunctionRef ParserContext::userFunctionByName(const String& name) { if (!userFnTable.count(name)) { - return StatementsRef(); + return UserFunctionRef(); } return userFnTable.find(name)->second; }