cmd/compile/internal/syntax: provide BadExpr where needed, call correct error handler
cmd/compile/internal/syntax: provide BadExpr where needed, call correct error handler

- For "if" statements without a condition, provide a BadExpr rather than nil
  (clients expect IfStmt.Cond != nil since the parser is taking care of
  reporting a missing condition).

- For 3-index slice expressions, also provide BadExpr where an index is
  required but missing.

- Declare a parser-local error method to hide the embedded error method
  so we don't use it by mistake.

Accidentally found while adjusting prototype parser to work for generics.

Change-Id: Iacc211cc60869be05efe9ae630d65dff1dac00a0
Reviewed-on: https://go-review.googlesource.com/c/go/+/261218
Trust: Robert Griesemer <a6752097faebf1f02d80107d77a9be009089afe3@golang.org>
Reviewed-by: Matthew Dempsky <e56ac2c500064424afac424d4b5e53bd0570a731@google.com>

CAFxX/go,golang/go,nawawi/go,cloudflare/go,nawawi/go,golang/go,golang/go,CAFxX/go,nawawi/go,cloudflare/go,cloudflare/go,golang/go,cloudflare/go,CAFxX/go,nawawi/go,golang/go,nawawi/go,golang/go,CAFxX/go,nawawi/go,CAFxX/go,CAFxX/go,golang/go,CAFxX/go,cloudflare/go,golang/go,nawawi/go,cloudflare/go,nawawi/go,CAFxX/go,cloudflare/go,cloudflare/go