Building custom effects give "Unexpected token" errors

I have a number of custom effects files that all give “Unexpected token” errors when I try to build them. I suspect that the error line numbers are off because the errors are hard to understand.
The .fx files have include`statements too. Commenting them out makes little difference though.
All of the files could compile under XNA.

Here is one file:

float2   ViewportSize;
uniform const float2   WindowPosition;

uniform const bool UseIntegerPositions;

Texture spriteSheetTexture;
sampler spriteSheetTextureSampler = sampler_state { texture = <spriteSheetTexture> ; magfilter = LINEAR; minfilter = LINEAR; mipfilter=LINEAR; AddressU = wrap; AddressV = wrap;};

uniform const float AlphaAdjustment; 

//#include "SpriteShader.fxh"
//#include "OutlineShader.fxh"

struct VertexShaderInput
{
    float3 Position         : POSITION0;
    float2 TextureCoords    : TEXCOORD0;    
    float3 WorldPosition	: POSITION1;  
    float4 TintColor		: TEXCOORD1;    
};

struct VertexShaderOutput
{
    float4 Position			: POSITION0;
    float2 TextureCoords    : TEXCOORD0;
    float4 TintColor		: TEXCOORD1;   
};

struct PixelShaderOutput
{
    float4 Color : COLOR0;
};



float3 MoveToScreenSpace(VertexShaderInput input)
{	
	float3 position = input.Position;
    
	 // FROM SPRITEBATCH:
    // Half pixel offset for correct texel centering.
    if (UseIntegerPositions)
    {
		position.xy -= 0.5;
	}

	// Viewport adjustment.
	position.xy /= ViewportSize;
	position.xy *= float2(2, -2);
	position.xy -= float2(1, -1);
   
    // SCREEN SPACE:
    //output.Position = float4(position, 1);    
    
    return position;
}

VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
    VertexShaderOutput output;
    
    if (UseIntegerPositions)
    {	// not when scrolling...       
		input.Position = round(input.Position); // Important(?) use discrete pixel positions to avoid blurryness...
    }
    
    // translate: 
	input.Position += input.WorldPosition;		  
    
    input.Position.xy -= WindowPosition;
    
    output.Position = float4(MoveToScreenSpace(input), 1);    
  //  output.Position = float4(input.Position, 1);
    
    output.TextureCoords = input.TextureCoords;
    output.TintColor = input.TintColor;
    
    return output;  
}

	
	


PixelShaderOutput PixelShaderFunction(VertexShaderOutput input, uniform const bool debugLighting) : COLOR0
{
	PixelShaderOutput Output;
   
   /* Output.Color = tex2D(spriteSheetTextureSampler, input.TextureCoords);    
    Output.Color *= input.TintColor; */
    
	float4 colorToBlend = tex2D(spriteSheetTextureSampler, input.TextureCoords);
	colorToBlend *= input.TintColor; 

	/* apply normal map lighting: */
	colorToBlend = ApplyLighting(colorToBlend, input.TextureCoords, debugLighting, colorToBlend.w);

	Output.Color = colorToBlend;

    return Output;
}

PixelShaderOutput PixelShaderOutlineFunction(VertexShaderOutput input, uniform const bool debugLighting) : COLOR0
{
    // Look up the texture and normalmap values.
	PixelShaderOutput output;

	//sampler texSampler = spriteSheetTextureSampler;
	//float2 texc = input.TextureCoords;
	//float4 Color = GetOutlineColor(texSampler, texc, input.TintColor);

	// #MONOCHANGE
	float2 texc = input.TextureCoords;
	float4 Color = GetOutlineColor(spriteSheetTextureSampler, texc, input.TintColor);

	Color.a *= input.TintColor.a;
	Color.rgb *= input.TintColor.a;
	 if(Color.a == 0)
	 {
		discard;
	 }
	 output.Color = Color;
	return output;

}


technique RenderGroundSprites
{
    pass Pass1
    {        
		VertexShader = compile vs_4_0_level_9_1 /*vs_1_1*/ VertexShaderFunction();
		PixelShader = compile ps_4_0_level_9_1 PixelShaderFunction(false);
    }
}

technique RenderOutlineGroundSprites
{
    pass Pass1
    {        
		VertexShader = compile vs_4_0_level_9_1 /*vs_1_1*/ VertexShaderFunction();
		PixelShader = compile ps_4_0_level_9_1 /*ps_2_0*/ PixelShaderOutlineFunction(false);
    }
}

    technique RenderGroundSpritesDebugLighting
    {
        pass Pass1
        {        
    		VertexShader = compile vs_4_0_level_9_1 /*vs_1_1*/ VertexShaderFunction();
    		PixelShader = compile ps_4_0_level_9_1 /*ps_2_0*/ PixelShaderFunction(true);
        }
    }`

Here are the errors. I cannot run the MonoGame project before I manage to compile the fx files, since MonoGame won’t accept the .xnb output from XNA.
:
Unexpected token ‘f’ found. Expected CloseParenthesis
RoadsAndPaths.fx(134,62) : Unexpected token ‘f’ found. Expected CloseBracket
RoadsAndPaths.fx(134,62) : Unexpected token ‘f’ found. Expected CloseBracket
RoadsAndPaths.fx(143,70) : Unexpected token ‘f’ found. Expected CloseParenthesis
RoadsAndPaths.fx(143,70) : Unexpected token ‘f’ found. Expected CloseBracket
RoadsAndPaths.fx(143,70) : Unexpected token ‘f’ found. Expected CloseBracket
RoadsAndPaths.fx(152,63) : Unexpected token ‘t’ found. Expected CloseParenthesis
RoadsAndPaths.fx(152,63) : Unexpected token ‘t’ found. Expected CloseBracket
RoadsAndPaths.fx(152,63) : Unexpected token ‘t’ found. Expected CloseBracket

I think this is one of the lines that cause the error:

PixelShader = compile ps_4_0_level_9_1 PixelShaderOutlineFunction(false);

The ‘false’ argument is causing the error…’

I think this explains the errors:

It took a lot longer to find it because the line numbers in the errors are misleading.