/// <summary> /// Executes parsing in the given context. /// </summary> /// <param name="context">The context.</param> /// <returns>The resulting parse node.</returns> protected override ParseNode ExecuteCore(ParseContext context) { ParseScope scope = context.BeginScope(isChild); if (initializer != null) initializer(scope); var node = expression.Execute(context); if (finalizer != null) finalizer(scope); context.EndScope(scope); return node; }