minor changes to compiler

- parts of the rules can be separated by one or more spaces
- tag hierarchy indeces are handled dynamically