parser: Fix sees()

+ Introduce scope_above() which only looks for scope blocks above the
  given syntax tree node
! Only the first scope lookup should use scope(), all subsequent ones
  should use scope_above() in order to eventually terminate.

Signed-off-by: Max Reitz <xanclic@niwohlos.org>
specs: Report errors

+ Catch error exceptions and report the appropriate messages

Signed-off-by: Max Reitz <xanclic@niwohlos.org>
parser: Move SV handler prototype include

* Move it up, so manually written functions can make use of the
  generated SV handlers

Signed-off-by: Max Reitz <xanclic@niwohlos.org>
parser: Make simple-template-ids class-names

* A simple-template-id is a valid class-name, as long as it resolves to
  a class-name. Since we're unable to check that right now, just accept
  every simple-template-id as a valid class-name.

Signed-off-by: Max Reitz <xanclic@niwohlos.org>
syntax: Use class-name in class-head-name

* The standard says to use class-name in class-head-name, so do it. This
  also allows partial specialization by giving a simple-template-id as
  the class-name. However, we have to keep accepting every identifier
  here, just as we did until now.

Signed-off-by: Max Reitz <xanclic@niwohlos.org>
Fix indentation

! Fix indentation in try blocks

Signed-off-by: Max Reitz <xanclic@niwohlos.org>
specs: Add parserspec::ex4

+ An example enable_if implementation

Signed-off-by: Max Reitz <xanclic@niwohlos.org>