Cannot find architecture name in nested configuration
<p>I'm building a VGA output block that is using nested elements that provide similar interfaces to build up the picture. The <code>configuration</code> then determines the actual screen layout.</p>

<p>So far, I've created one configuration for each block, but I'd really like to use a single, nested configuration. It is allowed in the <a href="https://tams.informatik.uni-hamburg.de/vhdl/tools/grammar/vhdl93-bnf.html" rel="nofollow">BNF</a>, and I've found <a href="http://vhdl.renerta.com/mobile/source/vhd00020.htm" rel="nofollow">example code</a> that uses this, but I cannot get my code to compile.</p>

<p>Inside <code>work</code> there are</p>

<pre><code>entity everything is
    ...
end entity;

architecture syn of everything is
    ...
begin
    gfx : vga;
end architecture;

component source is
    ...
end component;

entity vga is
    ...
end entity;

architecture syn of vga is
    ...
begin
    src : source;
end architecture;

entity testpattern is
    ...
end entity;

architecture syn of testpattern is
    ...
end entity;
</code></pre>

<p>Now I'd like to put all of this together using a <code>configuration</code>:</p>

<pre><code>configuration conf of everything is
    for syn
        for gfx : vga
            use entity work.vga(syn);
            for syn                          -- Error reported here
                for src : source
                    use entity work.testpattern(syn);
                end for;
            end for;
        end for;
    end for;
end configuration;
</code></pre>

<p>I get an error message from Quartus</p>

<pre><code>Error (10392): VHDL Block Specification error at everything.vhd(106): cannot find "syn"
</code></pre>

<p>The BNF says that an unqualified (architecture) name is expected at this point. What is missing here?</p>