syntax error in while writing multipass surface shader

Please tell me why this shader is not valid. I get a syntax error pointing to line “#pragma surface surf Lambert”.
when i comment out that line the syntax error disappears but i don’t get the correct output.

You can find the original shader at Unity - Manual: Surface Shader examples
I only added a pass{} block.

  Shader "Example/Diffuse Simple" {
    SubShader 
    {
      Tags { "RenderType" = "Opaque" }
      
      pass
      {
      	CGPROGRAM
      	#pragma surface surf Lambert
      	struct Input {
          float4 color : COLOR;
      	};
      	void surf (Input IN, inout SurfaceOutput o) {
          o.Albedo = 1;
      	}
      	ENDCG
      }
    }
    Fallback "Diffuse"
  }

Surface shaders cannot be located inside a pass block. You can have multiple surface shaders alongside multiple pass blocks, and everything should work fine, but as soon as you put a surface shader inside a pass block, it does not compile. See this thread for more info:
http://forum.unity3d.com/threads/96393-Achieving-a-multi-pass-effect-with-a-Surface-Shader