Basic toString for easy pretty-printing.
The sub-trees created by sub-rules parsing.
Indices for the matched part (from the very beginning of the first match to the last char of the last match.
The input string that generated the parse tree. Stored here for the parse tree to be passed to other expressions, as input.
The matched input's parts. Some expressions match at more than one place, hence matches is an array.
The node name
Indicates whether a parsing was successful or not
The basic parse tree, as used throughout the project. You can define your own parse tree node, but respect the basic layout.