Warn about textual substitution of labels in normal semantic nodes

This is a warning for something that just bit me:

```
exponent_edit_descriptor <- letter:[ED] width:unsigned_integer
                            "." fractional_digits:unsigned_integer
                            exponent_digits:( ~"E" unsigned_integer )?
{
  exponent_digits = exponent_digits.first || :default
  ExponentEditDescriptor.new(
    width,
    fractional_digits,
    exponent_digits: exponent_digits,
    letter: letter
  )
}
```

After substitution, the semantic rule became:

```
exponent_edit_descriptor <- letter:[ED] width:unsigned_integer
                            "." fractional_digits:unsigned_integer
                            exponent_digits:( ~"E" unsigned_integer )?
{
  exponent_digits = exponent_digits.first || :default
  ExponentEditDescriptor.new(
    width,
    fractional_digits,
    r0_4: r0_4,
    r0_0: r0_0
  )
}
```

with the error message "unknown keywords: r0_4, r0_0".  Confusion resulted.