The syntax is simpler:
queue name on interface bandwidth number queue name1 parent name bandwidth number[ ,K,M,G] default queue name2 parent name bandwidth number[ ,K,M,G] queue name3 parent name bandwidth number[ ,K,M,G]
This is the basic grammar for static shaping.
Note: subqueue definitions name their parent queue; one queue needs to be the default
Some further options enable more dynamic HFSC shaping.