Syntax 1
Note the following:
- You can have multiple hosts.
- Hosts are always rendered in the front of the system.
- Orbitals are rendered in the order as they are defined.
- Satellites will be attached to the last orbital defined. Intendations are optional but recommended for readability.
system: [title_def] (host_def | orbital_def | sattelite_def)*
title_def: "T" LABEL
host_def: "H" host_class host_size
host_class: /[OBAFGKM]/
host_size: NUM
orbital_def: "O" orbital_type orbital_size
| "O" orbital_type orbital_size orbital_label
| "O" orbital_type orbital_size "[" orbital_rings "]"
| "O" orbital_type orbital_size orbital_label "[" orbital_rings "]"
orbital_rings: "rings=" NUM
orbital_type: /Pl|As|Ex/
orbital_size: NUM
orbital_label: LABEL
sattelite_def: "S" sattelite_type sattelite_size [sattelite_label]
sattelite_type: /Mn|St/
sattelite_size: NUM
sattelite_label: LABEL
NUM: /[0-9]+/
LABEL: /"[^"]+"/
1. Provided as EBNF