// solo function statements // this is such a weird thing... // COMMAND_FUNC expression, expression ) >> // COMMAND_FUNC = << ID ( public override int VisitFunction_statement(YarnSpinnerParser.Function_statementContext context) { char[] lTrim = { '<' }; char[] rTrim = { '(' }; string functionName = context.GetChild(0).GetText().TrimStart(lTrim).TrimEnd(rTrim); this.HandleFunction(functionName, context.expression()); return(0); }
// solo function statements // this is such a weird thing... // COMMAND_FUNC expression, expression ) >> // COMMAND_FUNC = << ID ( public override int VisitFunction_statement(YarnSpinnerParser.Function_statementContext context) { char[] lTrim = { '<' }; char[] rTrim = { '(' }; string functionName = context.GetChild(0).GetText().TrimStart(lTrim).TrimEnd(rTrim); var output = this.HandleFunction(functionName, context.expression()); // failed to handle the function if (output == false) { Yarn.ParseException.Make(context, "Invalid number of parameters for " + functionName); } return 0; }
/// <summary> /// Visit a parse tree produced by <see cref="YarnSpinnerParser.function_statement"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitFunction_statement([NotNull] YarnSpinnerParser.Function_statementContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="YarnSpinnerParser.function_statement"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitFunction_statement([NotNull] YarnSpinnerParser.Function_statementContext context) { }