I've run across msbuild syntax that I don't understand. The following snippet is from another question about making a custom msbuild task
<GenerateDesignerDC
InputFiles="@(dbml)"
OutputFiles="@(dbml->'$(IntermediateOutputPath)%(FileName).designer.cs')">
...
What does @(dbml->'$(IntermediateOutputPath)%(FileName).designer.cs') mean? The @ sign usually references the files in an ItemGroup; what does the -> arrow inside an @(...) mean?
What is this little language (with the @s, $s, %s, ->, etc.) used for substitutions into the attributes of build tasks called?